{
  "chargePointChangeAvailability": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointChangeOwner": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointCheckTariffDisplaySupport": {
    "202": {
      "schema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true
          },
          "message": {
            "type": "string",
            "example": "Tariff & cost display enabled successfully."
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "406": {
      "schema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": false
          },
          "message": {
            "type": "string",
            "example": "Charge point does not support tariff & cost display messages."
          }
        }
      }
    },
    "408": {
      "schema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": false
          },
          "message": {
            "type": "string",
            "example": "Charge point did not respond. Ensure it is online and try again."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointClearCache": {
    "202": {
      "schema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          }
        },
        "required": [
          "success"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "406": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message describing why the charge point rejected the action"
          }
        },
        "required": [
          "message"
        ]
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointClearChargingProfile": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointDisconnect": {
    "202": {
      "schema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          }
        },
        "required": [
          "success"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointGetCompositeSchedule": {
    "202": {
      "schema": {
        "type": "object",
        "required": [
          "status"
        ],
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "Accepted"
            ],
            "description": "Accepted (schedule returned)."
          },
          "connectorId": {
            "type": "integer",
            "description": "The connector the schedule applies to."
          },
          "scheduleStart": {
            "type": "string",
            "format": "date-time",
            "description": "Start time of the composite schedule."
          },
          "chargingSchedule": {
            "type": "object",
            "description": "The schedule details.",
            "properties": {
              "duration": {
                "type": "integer",
                "description": "Duration of the schedule in seconds."
              },
              "startSchedule": {
                "type": "string",
                "format": "date-time",
                "description": "Start of the schedule."
              },
              "chargingRateUnit": {
                "type": "string",
                "enum": [
                  "A",
                  "W"
                ],
                "description": "Unit of the limit values: A (amperes) or W (watts)."
              },
              "minChargingRate": {
                "type": "number",
                "description": "Minimum charging rate supported, in the unit specified by chargingRateUnit."
              },
              "chargingSchedulePeriod": {
                "type": "array",
                "description": "List of schedule periods.",
                "items": {
                  "type": "object",
                  "required": [
                    "startPeriod",
                    "limit"
                  ],
                  "properties": {
                    "startPeriod": {
                      "type": "integer",
                      "description": "Offset from scheduleStart in seconds."
                    },
                    "limit": {
                      "type": "number",
                      "description": "Power or current limit during this period, in the unit specified by chargingRateUnit."
                    },
                    "numberPhases": {
                      "type": "integer",
                      "description": "Number of phases that can be used for charging."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "406": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "408": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "424": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointGetDiagnostics": {
    "202": {
      "schema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "requestId": {
            "type": "number",
            "description": "The ID of the get status notification request. Notifications about the uplaod status will also contain this identifier"
          },
          "fileName": {
            "type": "string",
            "description": "The file name that will be uploaded to the destination used for this request - either the location supplied in the request or the destination configured on the charge point's operator"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "412": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointGetLocalListVersion": {
    "200": {
      "schema": {
        "type": "object",
        "required": [
          "versionNumber"
        ],
        "properties": {
          "versionNumber": {
            "type": "integer",
            "minimum": 1,
            "description": "Current local list version number"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "406": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "408": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "424": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointGetSecurityLog": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "status": {
                "type": "string"
              },
              "file_name": {
                "type": "string"
              },
              "logType": {
                "type": "string",
                "enum": [
                  "SecurityLog"
                ]
              },
              "chargePointId": {
                "type": "integer"
              }
            },
            "required": [
              "id",
              "logType",
              "chargePointId"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointMoveEvsesToSatellite": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointReserve": {
    "202": {
      "schema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "reservationId": {
            "type": "number",
            "description": "The numeric representation of the reservation id being started"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointResetSecurityProfile": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointReset": {
    "202": {
      "schema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointSendCustomOcpp": {
    "200": {
      "schema": {
        "type": "object",
        "additionalProperties": true,
        "description": "Raw response from the charge point without transformation"
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "408": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "424": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointSendDataTransfer": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "Accepted",
              "Rejected",
              "UnknownMessageId",
              "UnknownVendorId"
            ]
          },
          "data": {
            "type": "string",
            "nullable": true
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointSetChargingProfile": {
    "202": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The ID of the charging profile that was applied"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointStartChargingSessionWithoutEvse": {
    "202": {
      "schema": {
        "type": "object",
        "required": [
          "success",
          "authorizationId"
        ],
        "properties": {
          "success": {
            "type": "boolean",
            "description": "When the action is successful the value would be true. When the action is rejected the value would be false and additional information would be provided in the message property."
          },
          "authorizationId": {
            "type": "number",
            "nullable": true,
            "description": "The numeric representation of the authorization. You need this in order to request session details."
          },
          "message": {
            "type": "string",
            "description": "Additional information, only displayed when the action is rejected."
          },
          "errorCode": {
            "type": "string",
            "enum": [
              "BILLING_NOT_ASSOCIATED",
              "BILLING_NOT_PARTNER_ASSOCIATED",
              "INTERNAL_ISSUE",
              "CHARGING_NOT_ALLOWED",
              "LOCATION_IS_CLOSED",
              "USER_VALIDATION_NOT_COMPLETE",
              "TERMS_NOT_ACCEPTED",
              "USER_IS_DISABLED",
              "SUBSCRIPTION_REQUIRED",
              "SESSION_ALREADY_RUNNING",
              "PREVIOUS_SESSION_NOT_PAID",
              "UNPAID_SUBSCRIPTION_FEES",
              "ACCESS_RESTRICTED"
            ],
            "description": "Reason for the error causing the session to fail starting:\n  * `BILLING_NOT_ASSOCIATED` - The selected corporate billing is not associated with the user\n  * `BILLING_NOT_PARTNER_ASSOCIATED` - The selected corporate billing is allowed on EVSEs that are not associated with the partner\n  * `INTERNAL_ISSUE` - Internal issue\n  * `CHARGING_NOT_ALLOWED` - The tariff does not allow to charge on this evse\n  * `LOCATION_IS_CLOSED` - Charge point's location is closed\n  * `USER_VALIDATION_NOT_COMPLETE` - Either your email or phone is not verified or your profile is not completed\n  * `TERMS_NOT_ACCEPTED` - User hasn't accepted latest Terms\n  * `USER_IS_DISABLED` - Your account is disabled\n  * `SUBSCRIPTION_REQUIRED` - You do not have an active subscription for this charging point\n  * `SESSION_ALREADY_RUNNING` - Having another running session is not allowed\n  * `PREVIOUS_SESSION_NOT_PAID` - Cannot start new session before paying the previous one\n  * `UNPAID_SUBSCRIPTION_FEES` - Cannot start a session when you have unpaid post-paid subscription fees\n  * `ACCESS_RESTRICTED` - You do not have access to this charge point\n"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointStartChargingSession": {
    "202": {
      "schema": {
        "type": "object",
        "required": [
          "success",
          "sessionId",
          "authorizationId"
        ],
        "properties": {
          "success": {
            "type": "boolean",
            "description": "When the action is successful the value would be true. When the action is rejected the value would be false and additional information would be provided in the message property."
          },
          "sessionId": {
            "type": "number",
            "nullable": true,
            "description": "The numeric representation of the session id being started. You need this in order to request session stop."
          },
          "authorizationId": {
            "type": "number",
            "nullable": true,
            "description": "The numeric representation of the authorization. You need this in order to request session details."
          },
          "message": {
            "type": "string",
            "description": "Additional information, only displayed when the action is rejected."
          },
          "errorCode": {
            "type": "string",
            "enum": [
              "BILLING_NOT_ASSOCIATED",
              "BILLING_NOT_PARTNER_ASSOCIATED",
              "INTERNAL_ISSUE",
              "SESSION_EXISTS",
              "CHARGING_NOT_ALLOWED",
              "LOCATION_IS_CLOSED",
              "USER_VALIDATION_NOT_COMPLETE",
              "TERMS_NOT_ACCEPTED",
              "USER_IS_DISABLED",
              "SUBSCRIPTION_REQUIRED",
              "SESSION_ALREADY_RUNNING",
              "PREVIOUS_SESSION_NOT_PAID",
              "UNPAID_SUBSCRIPTION_FEES",
              "ACCESS_RESTRICTED",
              "PAYMENT_METHOD_REQUIRED",
              "CANNOT_BILL_PAYMENT_METHOD",
              "CORPORATE_ACCOUNT_LIMIT_REACHED",
              "corporate_billing_policy_inactive",
              "corporate_billing_limit_exceeded",
              "CANNOT_USE_EXPIRED_PAYMENT_METHOD",
              "CANNOT_USE_PAYMENT_METHOD",
              "PAYMENT_NO_FUNDS"
            ],
            "description": "Reason for the error causing the session to fail starting:\n  * `BILLING_NOT_ASSOCIATED` - The selected corporate billing is not associated with the user\n  * `BILLING_NOT_PARTNER_ASSOCIATED` - The selected corporate billing is allowed on EVSEs that are not associated with the partner\n  * `INTERNAL_ISSUE` - Internal issue\n  * `SESSION_EXISTS` - Session already exists\n  * `CHARGING_NOT_ALLOWED` - The tariff does not allow to charge on this evse\n  * `LOCATION_IS_CLOSED` - Charge point's location is closed\n  * `USER_VALIDATION_NOT_COMPLETE` - Either your email or phone is not verified or your profile is not completed\n  * `TERMS_NOT_ACCEPTED` - User hasn't accepted latest Terms\n  * `USER_IS_DISABLED` - Your account is disabled\n  * `SUBSCRIPTION_REQUIRED` - You do not have an active subscription for this charging point\n  * `SESSION_ALREADY_RUNNING` - Having another running session is not allowed\n  * `PREVIOUS_SESSION_NOT_PAID` - Cannot start new session before paying the previous one\n  * `UNPAID_SUBSCRIPTION_FEES` - Cannot start a session when you have unpaid post-paid subscription fees\n  * `ACCESS_RESTRICTED` - You do not have access to this charge point\n  * `PAYMENT_METHOD_REQUIRED` - Cannot start a session without a payment method\n  * `CANNOT_BILL_PAYMENT_METHOD` - The payment method either is invalid or the partner does not allow billing\n  * `CORPORATE_ACCOUNT_LIMIT_REACHED` - Corporate billing is not allowed, corporate billing is not set up, corporate billing limit is reached or your payment method has insufficient funds.\n  * `corporate_billing_policy_inactive` - The assigned corporate billing policy is inactive, so corporate billing cannot be used for the new session.\n  * `corporate_billing_limit_exceeded` - The partner-wide or individual corporate billing limit has been reached.\n  * `CANNOT_USE_EXPIRED_PAYMENT_METHOD` - The payment method has expired\n  * `CANNOT_USE_PAYMENT_METHOD` - Payment method is not allowed or your subscription is cancelled\n  * `PAYMENT_NO_FUNDS` - The current balance is below the needed minimum amount or there are not enough funds in the credit card (works only if you use Stripe)\n"
          },
          "rejectedPaymentMethodErrorCode": {
            "type": "string",
            "enum": [
              "corporate_billing_policy_inactive",
              "cannot_use_payment_method"
            ],
            "description": "The reason the requested payment method was rejected before the session start fell back to the user's default payment method."
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Human-readable explanation of the throttle that triggered the 429."
          }
        },
        "required": [
          "message"
        ]
      }
    }
  },
  "chargePointStopChargingSession": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointSyncConfiguration": {
    "202": {
      "schema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "requestId": {
            "type": "number",
            "description": "The ID of the sync configuration notification request. Notifications about the synced configuration will also contain this identifier"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointTriggerMessageChargePoint": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointEvseUnlock": {
    "202": {
      "schema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "nullable": true
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointChangeSharingCode": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointDeleteCertificate": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointInstallCertificate": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointSetConfiguration": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointSetSecurityProfile": {
    "202": {
      "schema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Indicates whether the operation was accepted"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "406": {
      "schema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": false
          },
          "message": {
            "type": "string",
            "description": "Descriptive error message explaining why the transition failed. Possible messages include:\n- Cannot transition from security profile 2 to 1. Only raising the profile is allowed.\n- Cannot set security profile to 2. Charge point does not support security profiles.\n- Cannot set security profile to 2. Charge point's maximum supported level is 1.\n",
            "example": "Cannot transition from security profile 2 to 1. Only raising the profile is allowed."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointGetInstalledCertificateIds": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointUpdateFirmware": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitAttachChargePoint": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitDetachChargePoint": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitSetChargePointPriority": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitSetChargePointEvsePriority": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitSetCircuitSocPriority": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitSetSessionBoost": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitSetSessionPriority": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "configurationTemplateApplyToChargePoints": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "configurationTemplateBulkCreateVariables": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "electricityMeterReportConsumption": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "energyCouponTemplateDeactivate": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "energyCouponRedeemCode": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "operatorId",
              "code",
              "type",
              "status",
              "energyWh",
              "remainingEnergyWh",
              "evseType",
              "restrictions",
              "createdAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "userId": {
                "type": "integer",
                "description": "The ID of the user the coupon is assigned to. Only present when the coupon is assigned to a user."
              },
              "code": {
                "type": "string",
                "description": "Unique coupon code"
              },
              "type": {
                "type": "string",
                "enum": [
                  "subscription",
                  "support_grant",
                  "manual_single",
                  "promotional",
                  "top_up_bonus"
                ],
                "description": "Energy coupon type. Only `support_grant` and `manual_single` can be created via the API. The remaining types are created automatically by the system.\n- **subscription**: Automatically created from a subscription plan\n- **support_grant**: Created by an operator as a support grant\n- **manual_single**: Manually created single-use coupon\n- **promotional**: Created as part of a promotional campaign\n- **top_up_bonus**: Bonus coupon from a top-up\n",
                "example": "support_grant"
              },
              "status": {
                "type": "string",
                "enum": [
                  "unredeemed",
                  "inactive",
                  "active",
                  "locked",
                  "fully_consumed",
                  "expired",
                  "cancelled"
                ],
                "description": "Energy coupon status:\n- **unredeemed**: Not yet assigned to a user\n- **inactive**: Waiting to become valid (valid from date is in the future)\n- **active**: Currently usable for charging sessions\n- **locked**: Locked by an ongoing charging session\n- **fully_consumed**: All energy has been consumed\n- **expired**: Validity period has passed\n- **cancelled**: Manually cancelled\n",
                "example": "active"
              },
              "energyWh": {
                "type": "integer",
                "description": "Total energy amount in watt-hours"
              },
              "remainingEnergyWh": {
                "type": "integer",
                "description": "Remaining energy amount in watt-hours"
              },
              "evseType": {
                "deprecated": true,
                "description": "EVSE type restriction for the energy coupon:\n- **ac**: Coupon can only be used at AC charging stations\n- **dc**: Coupon can only be used at DC charging stations\n- **any**: Coupon can be used at any charging station type\n",
                "type": "string",
                "enum": [
                  "ac",
                  "dc",
                  "any"
                ],
                "example": "any"
              },
              "validFrom": {
                "type": "string",
                "format": "date",
                "description": "Uses the YYYY-MM-DD date format."
              },
              "validTo": {
                "type": "string",
                "format": "date",
                "description": "Uses the YYYY-MM-DD date format."
              },
              "externalId": {
                "type": "string",
                "maxLength": 255,
                "description": "An optional external identifier for integration purposes"
              },
              "restrictions": {
                "type": "object",
                "description": "Restrictions that limit where and by whom coupons can be used. All sub-restrictions are always returned.\n",
                "properties": {
                  "personalChargePointsOnly": {
                    "type": "boolean",
                    "description": "When true, coupons can only be used at personal (home) charge points."
                  },
                  "evseType": {
                    "description": "EVSE type restriction for the energy coupon:\n- **ac**: Coupon can only be used at AC charging stations\n- **dc**: Coupon can only be used at DC charging stations\n- **any**: Coupon can be used at any charging station type\n",
                    "type": "string",
                    "enum": [
                      "ac",
                      "dc",
                      "any"
                    ],
                    "example": "any"
                  },
                  "countryRestriction": {
                    "type": "object",
                    "description": "Allow/deny charge points in specific countries.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No country restriction.\n- **allow**: Only countries in the list are allowed.\n- **deny**: Countries in the list are denied.\n"
                      },
                      "countries": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "AF",
                            "AX",
                            "AL",
                            "DZ",
                            "AS",
                            "AD",
                            "AO",
                            "AI",
                            "AQ",
                            "AG",
                            "AR",
                            "AM",
                            "AW",
                            "AU",
                            "AT",
                            "AZ",
                            "BS",
                            "BH",
                            "BD",
                            "BB",
                            "BY",
                            "BE",
                            "BZ",
                            "BJ",
                            "BM",
                            "BT",
                            "BO",
                            "BQ",
                            "BA",
                            "BW",
                            "BV",
                            "BR",
                            "IO",
                            "BN",
                            "BG",
                            "BF",
                            "BI",
                            "KH",
                            "CM",
                            "CA",
                            "CV",
                            "KY",
                            "CF",
                            "TD",
                            "CL",
                            "CN",
                            "CX",
                            "CC",
                            "CO",
                            "KM",
                            "CG",
                            "CD",
                            "CK",
                            "CR",
                            "CI",
                            "HR",
                            "CU",
                            "CW",
                            "CY",
                            "CZ",
                            "DK",
                            "DJ",
                            "DM",
                            "DO",
                            "EC",
                            "EG",
                            "SV",
                            "GQ",
                            "ER",
                            "EE",
                            "ET",
                            "FK",
                            "FO",
                            "FJ",
                            "FI",
                            "FR",
                            "GF",
                            "PF",
                            "TF",
                            "GA",
                            "GM",
                            "GE",
                            "DE",
                            "GH",
                            "GI",
                            "GR",
                            "GL",
                            "GD",
                            "GP",
                            "GU",
                            "GT",
                            "GG",
                            "GN",
                            "GW",
                            "GY",
                            "HT",
                            "HM",
                            "VA",
                            "HN",
                            "HK",
                            "HU",
                            "IS",
                            "IN",
                            "ID",
                            "IR",
                            "IQ",
                            "IE",
                            "IM",
                            "IL",
                            "IT",
                            "JM",
                            "JP",
                            "JE",
                            "JO",
                            "KZ",
                            "KE",
                            "KI",
                            "KP",
                            "KR",
                            "XK",
                            "KW",
                            "KG",
                            "LA",
                            "LV",
                            "LB",
                            "LS",
                            "LR",
                            "LY",
                            "LI",
                            "LT",
                            "LU",
                            "MO",
                            "MK",
                            "MG",
                            "MW",
                            "MY",
                            "MV",
                            "ML",
                            "MT",
                            "MH",
                            "MQ",
                            "MR",
                            "MU",
                            "YT",
                            "MX",
                            "FM",
                            "MD",
                            "MC",
                            "MN",
                            "ME",
                            "MS",
                            "MA",
                            "MZ",
                            "MM",
                            "NA",
                            "NR",
                            "NP",
                            "NL",
                            "NC",
                            "NZ",
                            "NI",
                            "NE",
                            "NG",
                            "NU",
                            "NF",
                            "MP",
                            "NO",
                            "OM",
                            "PK",
                            "PW",
                            "PS",
                            "PA",
                            "PG",
                            "PY",
                            "PE",
                            "PH",
                            "PN",
                            "PL",
                            "PT",
                            "PR",
                            "QA",
                            "RE",
                            "RO",
                            "RU",
                            "RW",
                            "BL",
                            "SH",
                            "KN",
                            "LC",
                            "MF",
                            "PM",
                            "VC",
                            "WS",
                            "SM",
                            "ST",
                            "SA",
                            "SN",
                            "RS",
                            "SC",
                            "SL",
                            "SG",
                            "SX",
                            "SK",
                            "SI",
                            "SB",
                            "SO",
                            "ZA",
                            "GS",
                            "SS",
                            "ES",
                            "LK",
                            "SD",
                            "SR",
                            "SJ",
                            "SZ",
                            "SE",
                            "CH",
                            "SY",
                            "TW",
                            "TJ",
                            "TZ",
                            "TH",
                            "TL",
                            "TG",
                            "TK",
                            "TO",
                            "TT",
                            "TN",
                            "TR",
                            "TM",
                            "TC",
                            "TV",
                            "UG",
                            "UA",
                            "AE",
                            "GB",
                            "US",
                            "UM",
                            "UY",
                            "UZ",
                            "VU",
                            "VE",
                            "VN",
                            "VG",
                            "VI",
                            "WF",
                            "EH",
                            "YE",
                            "ZM",
                            "ZW"
                          ]
                        },
                        "description": "List of ISO 3166-1 alpha-2 country codes. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "partnerRestriction": {
                    "type": "object",
                    "description": "Allow/deny charge points owned by specific partners, or exclude all roaming charge points.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny",
                          "exclude_roaming"
                        ],
                        "description": "- **none**: No partner restriction.\n- **allow**: Only partners in the list are allowed.\n- **deny**: Partners in the list are denied.\n- **exclude_roaming**: Roaming charge points cannot be used. Partner list is ignored.\n"
                      },
                      "partnerIds": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        },
                        "description": "List of partner IDs. Empty when type is none or exclude_roaming."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "locationRestriction": {
                    "type": "object",
                    "description": "Allow/deny specific locations.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No location restriction.\n- **allow**: Only locations in the list are allowed.\n- **deny**: Locations in the list are denied.\n"
                      },
                      "locationIds": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        },
                        "description": "List of location IDs. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "locationTagRestriction": {
                    "type": "object",
                    "description": "Allow/deny locations by tag name.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No location tag restriction.\n- **allow**: Only locations with these tags are allowed.\n- **deny**: Locations with these tags are denied.\n"
                      },
                      "locationTagNames": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "List of location tag names. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "userGroupRestriction": {
                    "type": "object",
                    "description": "Allow/deny specific user groups.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No user group restriction.\n- **allow**: Only users in these groups are allowed.\n- **deny**: Users in these groups are denied.\n"
                      },
                      "userGroupIds": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        },
                        "description": "List of user group IDs. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "minSessionEnergyWh": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Minimum session energy in watt-hours required for the coupon to be applicable."
                  },
                  "maxSessionEnergyWh": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Maximum session energy in watt-hours for the coupon to be applicable."
                  }
                }
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "410": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "412": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "423": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "424": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "425": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "energyCouponCancel": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "evseBulkAssignTariffGroups": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "evseStartChargingWithEvseId": {
    "202": {
      "schema": {
        "type": "object",
        "required": [
          "success",
          "sessionId",
          "authorizationId"
        ],
        "properties": {
          "success": {
            "type": "boolean",
            "description": "When the action is successful the value would be true. When the action is rejected the value would be false and additional information would be provided in the message property."
          },
          "sessionId": {
            "type": "number",
            "nullable": true,
            "description": "The numeric representation of the session id being started. You need this in order to request session stop."
          },
          "authorizationId": {
            "type": "number",
            "nullable": true,
            "description": "The numeric representation of the authorization. You need this in order to request session details."
          },
          "message": {
            "type": "string",
            "description": "Additional information, only displayed when the action is rejected."
          },
          "errorCode": {
            "type": "string",
            "enum": [
              "BILLING_NOT_ASSOCIATED",
              "BILLING_NOT_PARTNER_ASSOCIATED",
              "INTERNAL_ISSUE",
              "SESSION_EXISTS",
              "CHARGING_NOT_ALLOWED",
              "LOCATION_IS_CLOSED",
              "USER_VALIDATION_NOT_COMPLETE",
              "TERMS_NOT_ACCEPTED",
              "USER_IS_DISABLED",
              "SUBSCRIPTION_REQUIRED",
              "SESSION_ALREADY_RUNNING",
              "PREVIOUS_SESSION_NOT_PAID",
              "UNPAID_SUBSCRIPTION_FEES",
              "ACCESS_RESTRICTED",
              "PAYMENT_METHOD_REQUIRED",
              "CANNOT_BILL_PAYMENT_METHOD",
              "CORPORATE_ACCOUNT_LIMIT_REACHED",
              "corporate_billing_policy_inactive",
              "corporate_billing_limit_exceeded",
              "CANNOT_USE_EXPIRED_PAYMENT_METHOD",
              "CANNOT_USE_PAYMENT_METHOD",
              "PAYMENT_NO_FUNDS"
            ],
            "description": "Reason for the error causing the session to fail starting:\n  * `BILLING_NOT_ASSOCIATED` - The selected corporate billing is not associated with the user\n  * `BILLING_NOT_PARTNER_ASSOCIATED` - The selected corporate billing is allowed on EVSEs that are not associated with the partner\n  * `INTERNAL_ISSUE` - Internal issue\n  * `SESSION_EXISTS` - Session already exists\n  * `CHARGING_NOT_ALLOWED` - The tariff does not allow to charge on this evse\n  * `LOCATION_IS_CLOSED` - Charge point's location is closed\n  * `USER_VALIDATION_NOT_COMPLETE` - Either your email or phone is not verified or your profile is not completed\n  * `TERMS_NOT_ACCEPTED` - User hasn't accepted latest Terms\n  * `USER_IS_DISABLED` - Your account is disabled\n  * `SUBSCRIPTION_REQUIRED` - You do not have an active subscription for this charging point\n  * `SESSION_ALREADY_RUNNING` - Having another running session is not allowed\n  * `PREVIOUS_SESSION_NOT_PAID` - Cannot start new session before paying the previous one\n  * `UNPAID_SUBSCRIPTION_FEES` - Cannot start a session when you have unpaid post-paid subscription fees\n  * `ACCESS_RESTRICTED` - You do not have access to this charge point\n  * `PAYMENT_METHOD_REQUIRED` - Cannot start a session without a payment method\n  * `CANNOT_BILL_PAYMENT_METHOD` - The payment method either is invalid or the partner does not allow billing\n  * `CORPORATE_ACCOUNT_LIMIT_REACHED` - Corporate billing is not allowed, corporate billing is not set up, corporate billing limit is reached or your payment method has insufficient funds.\n  * `corporate_billing_policy_inactive` - The assigned corporate billing policy is inactive, so corporate billing cannot be used for the new session.\n  * `corporate_billing_limit_exceeded` - The partner-wide or individual corporate billing limit has been reached.\n  * `CANNOT_USE_EXPIRED_PAYMENT_METHOD` - The payment method has expired\n  * `CANNOT_USE_PAYMENT_METHOD` - Payment method is not allowed or your subscription is cancelled\n  * `PAYMENT_NO_FUNDS` - The current balance is below the needed minimum amount or there are not enough funds in the credit card (works only if you use Stripe)\n"
          },
          "rejectedPaymentMethodErrorCode": {
            "type": "string",
            "enum": [
              "corporate_billing_policy_inactive",
              "cannot_use_payment_method"
            ],
            "description": "The reason the requested payment method was rejected before the session start fell back to the user's default payment method."
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Human-readable explanation of the throttle that triggered the 429."
          }
        },
        "required": [
          "message"
        ]
      }
    }
  },
  "evseTriggerMessage": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "changeFlexibilityAssetStatus": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "enabled",
              "disabled"
            ]
          },
          "endsAt": {
            "type": "string",
            "format": "date-time",
            "description": "ISO 8601 formatted date. If an end date is set the asset will be automatically disabled at that time. Historical time series and forecasts are not generated after the end date."
          }
        },
        "required": [
          "status"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "flexibilityAssetCreateActivationRequest": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "description": "Unique ID of the Flexibility Activation Request",
            "readOnly": true
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp of the request creation",
            "readOnly": true
          },
          "assetId": {
            "type": "number",
            "description": "ID of the Flexibility Asset related to the request",
            "readOnly": true
          },
          "periods": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "startTime": {
                  "type": "string",
                  "format": "date-time"
                },
                "endTime": {
                  "type": "string",
                  "format": "date-time"
                },
                "energy": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The target energy (Wh) that the system should achieve during the specified time period. Only one is required: maxPower or energy.\n",
                  "nullable": true
                },
                "maxPower": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The target power (W) that the system should achieve during the specified time period. Only one is required: maxPower or energy.\n",
                  "nullable": true
                }
              }
            }
          }
        },
        "required": [
          "id",
          "assetId",
          "timestamp",
          "periods"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "certificateReissueAnEmaid": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "assignInstallerJobChargePoints": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "changeInstallerJobStatus": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "invoiceUpdateExternalId": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "partnerId": {
                "type": "integer",
                "description": "The ID of the partner this invoice was issued from. Omitted when the invoice is not associated with a partner."
              },
              "type": {
                "type": "string",
                "enum": [
                  "invoice",
                  "pro_forma",
                  "credit_note"
                ],
                "description": "The type of the invoice"
              },
              "number": {
                "type": "string",
                "description": "The unique number presented on the invoice"
              },
              "date": {
                "type": "string",
                "format": "date-time",
                "description": "The date on which the invoice was issued"
              },
              "userId": {
                "type": "integer",
                "description": "The id of the user in the backend, to whom the invoice is being issued. Can be -1 in case the invoice is issued to no particular user"
              },
              "periodFrom": {
                "type": "string",
                "format": "date-time",
                "description": "The timestamp of the first transaction included in the invoice",
                "nullable": true
              },
              "periodTo": {
                "type": "string",
                "format": "date-time",
                "description": "The timestamp of the last transaction included in the invoice",
                "nullable": true
              },
              "totalEnergy": {
                "type": "number",
                "description": "The total energy accounted by the sessions that the invoice transactions correspond to"
              },
              "totalAmount": {
                "type": "number",
                "description": "The total amount (including tax) of the invoice"
              },
              "taxRate": {
                "type": "integer",
                "description": "The tax percent applied to the invoice"
              },
              "taxAmount": {
                "type": "number",
                "description": "The amount of tax applied to the invoice"
              },
              "service": {
                "type": "string",
                "description": "The service for which the invoice is being issued"
              },
              "quantity": {
                "type": "number"
              },
              "unitPrice": {
                "type": "number"
              },
              "subtotal": {
                "type": "number",
                "description": "Total price for the service"
              },
              "downloadUrl": {
                "type": "string",
                "description": "The invoice can be downloaded from here. The link expires in 24 hours. Omitted while a fiscalized invoice has no valid customer-facing representation."
              },
              "paymentStatus": {
                "type": "string",
                "enum": [
                  "paid",
                  "partially_paid",
                  "pending"
                ]
              },
              "externalId": {
                "type": "string",
                "description": "Reference identifier from external accounting or ERP system."
              },
              "client": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "individual",
                      "company"
                    ]
                  },
                  "name": {
                    "type": "string"
                  },
                  "email": {
                    "oneOf": [
                      {
                        "title": "Email Address",
                        "type": "string",
                        "format": "email"
                      },
                      {
                        "title": "Empty Email",
                        "type": "string",
                        "minLength": 0,
                        "maxLength": 0
                      }
                    ]
                  },
                  "id": {
                    "type": "string",
                    "description": "The ID identifying the client (personal id or company id)"
                  },
                  "taxId": {
                    "type": "string"
                  },
                  "taxAdministrationOfficeName": {
                    "type": "string",
                    "nullable": true
                  },
                  "country": {
                    "type": "string",
                    "enum": [
                      "AF",
                      "AX",
                      "AL",
                      "DZ",
                      "AS",
                      "AD",
                      "AO",
                      "AI",
                      "AQ",
                      "AG",
                      "AR",
                      "AM",
                      "AW",
                      "AU",
                      "AT",
                      "AZ",
                      "BS",
                      "BH",
                      "BD",
                      "BB",
                      "BY",
                      "BE",
                      "BZ",
                      "BJ",
                      "BM",
                      "BT",
                      "BO",
                      "BQ",
                      "BA",
                      "BW",
                      "BV",
                      "BR",
                      "IO",
                      "BN",
                      "BG",
                      "BF",
                      "BI",
                      "KH",
                      "CM",
                      "CA",
                      "CV",
                      "KY",
                      "CF",
                      "TD",
                      "CL",
                      "CN",
                      "CX",
                      "CC",
                      "CO",
                      "KM",
                      "CG",
                      "CD",
                      "CK",
                      "CR",
                      "CI",
                      "HR",
                      "CU",
                      "CW",
                      "CY",
                      "CZ",
                      "DK",
                      "DJ",
                      "DM",
                      "DO",
                      "EC",
                      "EG",
                      "SV",
                      "GQ",
                      "ER",
                      "EE",
                      "ET",
                      "FK",
                      "FO",
                      "FJ",
                      "FI",
                      "FR",
                      "GF",
                      "PF",
                      "TF",
                      "GA",
                      "GM",
                      "GE",
                      "DE",
                      "GH",
                      "GI",
                      "GR",
                      "GL",
                      "GD",
                      "GP",
                      "GU",
                      "GT",
                      "GG",
                      "GN",
                      "GW",
                      "GY",
                      "HT",
                      "HM",
                      "VA",
                      "HN",
                      "HK",
                      "HU",
                      "IS",
                      "IN",
                      "ID",
                      "IR",
                      "IQ",
                      "IE",
                      "IM",
                      "IL",
                      "IT",
                      "JM",
                      "JP",
                      "JE",
                      "JO",
                      "KZ",
                      "KE",
                      "KI",
                      "KP",
                      "KR",
                      "XK",
                      "KW",
                      "KG",
                      "LA",
                      "LV",
                      "LB",
                      "LS",
                      "LR",
                      "LY",
                      "LI",
                      "LT",
                      "LU",
                      "MO",
                      "MK",
                      "MG",
                      "MW",
                      "MY",
                      "MV",
                      "ML",
                      "MT",
                      "MH",
                      "MQ",
                      "MR",
                      "MU",
                      "YT",
                      "MX",
                      "FM",
                      "MD",
                      "MC",
                      "MN",
                      "ME",
                      "MS",
                      "MA",
                      "MZ",
                      "MM",
                      "NA",
                      "NR",
                      "NP",
                      "NL",
                      "NC",
                      "NZ",
                      "NI",
                      "NE",
                      "NG",
                      "NU",
                      "NF",
                      "MP",
                      "NO",
                      "OM",
                      "PK",
                      "PW",
                      "PS",
                      "PA",
                      "PG",
                      "PY",
                      "PE",
                      "PH",
                      "PN",
                      "PL",
                      "PT",
                      "PR",
                      "QA",
                      "RE",
                      "RO",
                      "RU",
                      "RW",
                      "BL",
                      "SH",
                      "KN",
                      "LC",
                      "MF",
                      "PM",
                      "VC",
                      "WS",
                      "SM",
                      "ST",
                      "SA",
                      "SN",
                      "RS",
                      "SC",
                      "SL",
                      "SG",
                      "SX",
                      "SK",
                      "SI",
                      "SB",
                      "SO",
                      "ZA",
                      "GS",
                      "SS",
                      "ES",
                      "LK",
                      "SD",
                      "SR",
                      "SJ",
                      "SZ",
                      "SE",
                      "CH",
                      "SY",
                      "TW",
                      "TJ",
                      "TZ",
                      "TH",
                      "TL",
                      "TG",
                      "TK",
                      "TO",
                      "TT",
                      "TN",
                      "TR",
                      "TM",
                      "TC",
                      "TV",
                      "UG",
                      "UA",
                      "AE",
                      "GB",
                      "US",
                      "UM",
                      "UY",
                      "UZ",
                      "VU",
                      "VE",
                      "VN",
                      "VG",
                      "VI",
                      "WF",
                      "EH",
                      "YE",
                      "ZM",
                      "ZW"
                    ]
                  },
                  "region": {
                    "type": "string",
                    "nullable": true,
                    "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
                  },
                  "state": {
                    "description": "When the selected country is one of US, AU, CA, UM or RO",
                    "anyOf": [
                      {
                        "title": "US State",
                        "description": "When the country is US.",
                        "type": "string",
                        "enum": [
                          "AL",
                          "AK",
                          "AS",
                          "AZ",
                          "AR",
                          "CA",
                          "CO",
                          "CT",
                          "DE",
                          "DC",
                          "FM",
                          "FL",
                          "GA",
                          "GU",
                          "HI",
                          "ID",
                          "IL",
                          "IN",
                          "IA",
                          "KS",
                          "KY",
                          "LA",
                          "ME",
                          "MH",
                          "MD",
                          "MA",
                          "MI",
                          "MN",
                          "MS",
                          "MO",
                          "MT",
                          "NE",
                          "NV",
                          "NH",
                          "NJ",
                          "NM",
                          "NY",
                          "NC",
                          "ND",
                          "MP",
                          "OH",
                          "OK",
                          "OR",
                          "PW",
                          "PA",
                          "PR",
                          "RI",
                          "SC",
                          "SD",
                          "TN",
                          "TX",
                          "UT",
                          "VT",
                          "VI",
                          "VA",
                          "WA",
                          "WV",
                          "WI",
                          "WY"
                        ]
                      },
                      {
                        "title": "Australian State",
                        "description": "When the country is AU.",
                        "type": "string",
                        "enum": [
                          "NSW",
                          "VIC",
                          "QLD",
                          "WA",
                          "SA",
                          "TAS",
                          "ACT",
                          "NT",
                          "JBT",
                          "CX",
                          "NF",
                          "CC",
                          "AQ",
                          "CSI",
                          "ACI",
                          "HM"
                        ]
                      },
                      {
                        "title": "Canadian Province",
                        "description": "When the country is CA.",
                        "type": "string",
                        "enum": [
                          "AB",
                          "BC",
                          "MB",
                          "NB",
                          "NL",
                          "NT",
                          "NS",
                          "NU",
                          "ON",
                          "PE",
                          "QC",
                          "SK",
                          "YT"
                        ]
                      },
                      {
                        "title": "US Minor Outlying Islands Territory",
                        "description": "When the country is UM.",
                        "type": "string",
                        "enum": [
                          "81",
                          "84",
                          "85",
                          "67",
                          "89",
                          "71",
                          "76",
                          "95",
                          "79"
                        ]
                      },
                      {
                        "title": "Romanian County",
                        "description": "When the country is RO.",
                        "type": "string",
                        "enum": [
                          "AB",
                          "AR",
                          "AG",
                          "BC",
                          "BH",
                          "BN",
                          "BT",
                          "BV",
                          "BR",
                          "B",
                          "BZ",
                          "CL",
                          "CS",
                          "CT",
                          "CV",
                          "DB",
                          "DJ",
                          "GL",
                          "GR",
                          "GJ",
                          "HR",
                          "HD",
                          "IL",
                          "IS",
                          "IF",
                          "MM",
                          "MH",
                          "MS",
                          "NT",
                          "OT",
                          "PH",
                          "SM",
                          "SJ",
                          "SB",
                          "SV",
                          "TR",
                          "TM",
                          "TL",
                          "VS",
                          "VL",
                          "VN"
                        ]
                      }
                    ]
                  },
                  "city": {
                    "type": "string"
                  },
                  "post_code": {
                    "type": "string"
                  },
                  "address": {
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "name",
                  "country"
                ]
              },
              "fiscalization": {
                "type": "object",
                "properties": {
                  "status": {
                    "description": "Certification status of the invoice with its fiscalization integration.\n- **pending**: The fiscal document exists and has been accepted for certification, but the fiscal authority has not yet confirmed it. The document is not yet legally issued.\n- **certified**: The fiscal authority confirmed the document, which is legally issued. `referenceNumber` carries the reference the integration recorded for it. In rare cases a certified document has no recorded reference and `referenceNumber` is absent; this does not resolve on its own and requires operator intervention. A document whose revocation has been requested but not yet confirmed, or whose revocation was rejected, is still `certified` — it remains legally issued until the authority confirms the revocation, at which point it becomes `canceled`.\n- **failed**: Certification did not succeed. Retries are attempted a bounded number of times; a status that remains `failed` requires operator intervention. The fiscal document remains, but no legally issued document exists for it.\n- **canceled**: The document was certified and has since been revoked with the fiscal authority. This is distinct from `failed` — the document was legally issued at some point, and `referenceNumber` keeps the reference the integration had recorded for it.\n",
                    "type": "string",
                    "enum": [
                      "pending",
                      "certified",
                      "failed",
                      "canceled"
                    ],
                    "example": "certified"
                  },
                  "referenceNumber": {
                    "type": "string",
                    "description": "Reference recorded for this document by the fiscalization integration, for correlating it with that integration's own records. For most integrations this is the number assigned by the tax authority; some record a provider-side identifier instead. Treat it as an opaque, integration-defined reference rather than assuming it is the legally issued document number. Once recorded it does not change, including after the document is canceled. Distinct from `externalId`, which is the reference an external accounting or ERP system wrote into the platform. Absent when the integration has recorded no reference."
                  },
                  "documents": {
                    "type": "array",
                    "description": "Document formats the fiscal authority has made available for this invoice. Omitted while no format has been made available yet.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "format": {
                          "type": "string",
                          "description": "Identifier of the document format, exactly as reported by the fiscal authority. The value is provider-defined and its syntax is not guaranteed — it may be a media type such as `application/pdf`, or a mandate-specific format name. The set is not fixed, so treat an unrecognised value as a format this integration has newly made available rather than as an error; match it verbatim rather than parsing it.",
                          "example": "application/pdf"
                        },
                        "downloadUrl": {
                          "type": "string",
                          "description": "Signed link that downloads this format. The link expires 24 hours after the response was produced, so it must be followed rather than stored; request the invoice again for a fresh link. The document is fetched from the fiscal authority only when the link is followed, so the download responds with `424 Failed Dependency` when the provider cannot supply the format at that moment."
                        }
                      },
                      "required": [
                        "format",
                        "downloadUrl"
                      ]
                    }
                  }
                },
                "required": [
                  "status"
                ],
                "description": "Certification of this invoice with the fiscal authority. Present when the invoice has a fiscal document; omitted entirely for invoices with no fiscal document at all. Presence does not depend on `type` — a fiscalized credit note carries this object exactly as an invoice does."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "type",
              "number",
              "date",
              "totalAmount",
              "taxRate",
              "taxAmount",
              "service",
              "quantity",
              "unitPrice",
              "subtotal"
            ]
          }
        },
        "required": [
          "data"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "locationCheckBookingAvailability": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Availability information for a specific EVSE",
              "properties": {
                "evseId": {
                  "type": "integer"
                },
                "availableSlots": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "description": "Time slot representing an available booking period",
                    "properties": {
                      "startAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Start time of the available slot"
                      },
                      "endAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "End time of the available slot"
                      }
                    },
                    "required": [
                      "startAt",
                      "endAt"
                    ]
                  },
                  "description": "Array of available time slots"
                }
              },
              "required": [
                "evseId",
                "availableSlots"
              ]
            },
            "description": "Array of EVSE availability information for a location"
          }
        }
      }
    },
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "notificationsResendFailed": {
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "parkingSpaceUpdateOccupancyStatus": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInviteCorporateBillingPolicyDisable": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInviteCorporateBillingPolicyEnable": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInvoiceIssueCreditNote": {
    "202": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique partner invoice identifier."
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "partnerId": {
                "type": "integer",
                "description": "Identifier of the partner the invoice is issued to or from."
              },
              "settlementReportId": {
                "type": "integer",
                "description": "Identifier of the settlement report the invoice was generated from."
              },
              "number": {
                "type": "string",
                "description": "The platform's own identifier for this partner invoice. Not a fiscal authority document number — where the B2B invoice processor recorded on this invoice certifies documents with a fiscal authority, the legally meaningful number is `fiscalization.referenceNumber` on the single-invoice read."
              },
              "externalId": {
                "type": "string",
                "maxLength": 255,
                "description": "An optional external identifier for integration purposes"
              },
              "type": {
                "description": "Partner invoice document type:\n- **invoice**: A regular partner invoice generated from a settlement report.\n- **credit_note**: A credit note that cancels an original partner invoice. Always references the cancelled invoice via `referenceId`.\n",
                "type": "string",
                "enum": [
                  "invoice",
                  "credit_note"
                ],
                "example": "invoice"
              },
              "sellerType": {
                "description": "Party type on a partner invoice:\n- **operator**: The party is the operator issuing or receiving the invoice.\n- **partner**: The party is the partner the invoice is issued to or from.\n",
                "type": "string",
                "enum": [
                  "operator",
                  "partner"
                ],
                "example": "operator"
              },
              "buyerType": {
                "description": "Party type on a partner invoice:\n- **operator**: The party is the operator issuing or receiving the invoice.\n- **partner**: The party is the partner the invoice is issued to or from.\n",
                "type": "string",
                "enum": [
                  "operator",
                  "partner"
                ],
                "example": "operator"
              },
              "issuedOn": {
                "type": "string",
                "format": "date",
                "description": "Date when the partner invoice was issued."
              },
              "dueOn": {
                "type": "string",
                "format": "date",
                "description": "Date by which the partner invoice must be paid. Equal to the issued date when payment terms are \"Due on receipt\"."
              },
              "periodStartsOn": {
                "type": "string",
                "format": "date",
                "description": "First date of the billing period captured when the partner invoice was issued. Present only when the complete period is available."
              },
              "periodEndsOn": {
                "type": "string",
                "format": "date",
                "description": "Last date of the billing period captured when the partner invoice was issued. Present only when the complete period is available."
              },
              "paymentTermsDays": {
                "type": "integer",
                "description": "Number of days the party has to pay after the invoice is issued. `0` represents \"Due on receipt\". Snapshotted at generation time."
              },
              "paymentStatus": {
                "description": "Partner invoice payment status:\n- **unpaid**: No payment has been recorded against the invoice.\n- **partially_paid**: A payment has been recorded but the full amount is not yet covered.\n- **paid**: The full amount has been paid.\n",
                "type": "string",
                "enum": [
                  "unpaid",
                  "partially_paid",
                  "paid"
                ],
                "example": "unpaid"
              },
              "currencyCode": {
                "description": "Currency used on the partner invoice (ISO 4217 code).",
                "type": "string",
                "enum": [
                  "AED",
                  "AFN",
                  "ALL",
                  "AMD",
                  "ANG",
                  "AOA",
                  "ARS",
                  "AUD",
                  "AWG",
                  "AZN",
                  "BAM",
                  "BBD",
                  "BDT",
                  "BGN",
                  "BHD",
                  "BIF",
                  "BMD",
                  "BND",
                  "BOB",
                  "BOV",
                  "BRL",
                  "BSD",
                  "BTN",
                  "BWP",
                  "BYN",
                  "BZD",
                  "CAD",
                  "CDF",
                  "CHE",
                  "CHF",
                  "CHW",
                  "CLF",
                  "CLP",
                  "CNY",
                  "COP",
                  "COU",
                  "CRC",
                  "CUC",
                  "CUP",
                  "CVE",
                  "CZK",
                  "DJF",
                  "DKK",
                  "DOP",
                  "DZD",
                  "EGP",
                  "ERN",
                  "ETB",
                  "EUR",
                  "FJD",
                  "FKP",
                  "GBP",
                  "GEL",
                  "GHS",
                  "GIP",
                  "GMD",
                  "GNF",
                  "GTQ",
                  "GYD",
                  "HKD",
                  "HNL",
                  "HRK",
                  "HTG",
                  "HUF",
                  "IDR",
                  "ILS",
                  "INR",
                  "IQD",
                  "IRR",
                  "ISK",
                  "JMD",
                  "JOD",
                  "JPY",
                  "KES",
                  "KGS",
                  "KHR",
                  "KMF",
                  "KPW",
                  "KRW",
                  "KWD",
                  "KYD",
                  "KZT",
                  "LAK",
                  "LBP",
                  "LKR",
                  "LRD",
                  "LSL",
                  "LYD",
                  "MAD",
                  "MDL",
                  "MGA",
                  "MKD",
                  "MMK",
                  "MNT",
                  "MOP",
                  "MRU",
                  "MUR",
                  "MVR",
                  "MWK",
                  "MXN",
                  "MXV",
                  "MYR",
                  "MZN",
                  "NAD",
                  "NGN",
                  "NIO",
                  "NOK",
                  "NPR",
                  "NZD",
                  "OMR",
                  "PAB",
                  "PEN",
                  "PGK",
                  "PHP",
                  "PKR",
                  "PLN",
                  "PYG",
                  "QAR",
                  "RON",
                  "RSD",
                  "RUB",
                  "RWF",
                  "SAR",
                  "SBD",
                  "SCR",
                  "SDG",
                  "SEK",
                  "SGD",
                  "SHP",
                  "SLL",
                  "SOS",
                  "SRD",
                  "SSP",
                  "STN",
                  "SVC",
                  "SYP",
                  "SZL",
                  "THB",
                  "TJS",
                  "TMT",
                  "TND",
                  "TOP",
                  "TRY",
                  "TTD",
                  "TWD",
                  "TZS",
                  "UAH",
                  "UGX",
                  "USD",
                  "USN",
                  "UYI",
                  "UYU",
                  "UYW",
                  "UZS",
                  "VES",
                  "VND",
                  "VUV",
                  "WST",
                  "XAF",
                  "XAG",
                  "XAU",
                  "XBA",
                  "XBB",
                  "XBC",
                  "XBD",
                  "XCD",
                  "XDR",
                  "XOF",
                  "XPD",
                  "XPF",
                  "XPT",
                  "XSU",
                  "XTS",
                  "XUA",
                  "XXX",
                  "YER",
                  "ZAR",
                  "ZMW",
                  "ZWL"
                ]
              },
              "totalAmount": {
                "description": "Total amount on the partner invoice, split by tax inclusion.",
                "type": "object",
                "properties": {
                  "withoutTax": {
                    "type": "number",
                    "description": "Total amount on the partner invoice excluding tax. Equal to withTax on invoices that have no tax breakdown (US/Canada)."
                  },
                  "withTax": {
                    "type": "number",
                    "description": "Total amount on the partner invoice including tax."
                  }
                },
                "required": [
                  "withoutTax",
                  "withTax"
                ]
              },
              "totalTax": {
                "type": "number",
                "description": "Total tax amount across all line items. Stored for all invoices; hidden on US/Canada invoices."
              },
              "referenceId": {
                "type": "integer",
                "description": "Identifier of the original partner invoice that this credit note cancels. Present only when `type` is `credit_note`."
              },
              "seller": {
                "description": "Seller details captured at the time of invoice generation. The operator is the seller on a regular partner invoice; the partner is the seller on a self-billing invoice.",
                "type": "object",
                "properties": {
                  "type": {
                    "description": "Party type on a partner invoice:\n- **operator**: The party is the operator issuing or receiving the invoice.\n- **partner**: The party is the partner the invoice is issued to or from.\n",
                    "type": "string",
                    "enum": [
                      "operator",
                      "partner"
                    ],
                    "example": "operator"
                  },
                  "name": {
                    "type": "string",
                    "description": "Legal name of the party as captured at invoice generation."
                  },
                  "contactPerson": {
                    "type": "string",
                    "description": "Contact person at the party."
                  },
                  "country": {
                    "description": "ISO 3166-1 alpha-2 country code of the party.",
                    "type": "string",
                    "enum": [
                      "AF",
                      "AX",
                      "AL",
                      "DZ",
                      "AS",
                      "AD",
                      "AO",
                      "AI",
                      "AQ",
                      "AG",
                      "AR",
                      "AM",
                      "AW",
                      "AU",
                      "AT",
                      "AZ",
                      "BS",
                      "BH",
                      "BD",
                      "BB",
                      "BY",
                      "BE",
                      "BZ",
                      "BJ",
                      "BM",
                      "BT",
                      "BO",
                      "BQ",
                      "BA",
                      "BW",
                      "BV",
                      "BR",
                      "IO",
                      "BN",
                      "BG",
                      "BF",
                      "BI",
                      "KH",
                      "CM",
                      "CA",
                      "CV",
                      "KY",
                      "CF",
                      "TD",
                      "CL",
                      "CN",
                      "CX",
                      "CC",
                      "CO",
                      "KM",
                      "CG",
                      "CD",
                      "CK",
                      "CR",
                      "CI",
                      "HR",
                      "CU",
                      "CW",
                      "CY",
                      "CZ",
                      "DK",
                      "DJ",
                      "DM",
                      "DO",
                      "EC",
                      "EG",
                      "SV",
                      "GQ",
                      "ER",
                      "EE",
                      "ET",
                      "FK",
                      "FO",
                      "FJ",
                      "FI",
                      "FR",
                      "GF",
                      "PF",
                      "TF",
                      "GA",
                      "GM",
                      "GE",
                      "DE",
                      "GH",
                      "GI",
                      "GR",
                      "GL",
                      "GD",
                      "GP",
                      "GU",
                      "GT",
                      "GG",
                      "GN",
                      "GW",
                      "GY",
                      "HT",
                      "HM",
                      "VA",
                      "HN",
                      "HK",
                      "HU",
                      "IS",
                      "IN",
                      "ID",
                      "IR",
                      "IQ",
                      "IE",
                      "IM",
                      "IL",
                      "IT",
                      "JM",
                      "JP",
                      "JE",
                      "JO",
                      "KZ",
                      "KE",
                      "KI",
                      "KP",
                      "KR",
                      "XK",
                      "KW",
                      "KG",
                      "LA",
                      "LV",
                      "LB",
                      "LS",
                      "LR",
                      "LY",
                      "LI",
                      "LT",
                      "LU",
                      "MO",
                      "MK",
                      "MG",
                      "MW",
                      "MY",
                      "MV",
                      "ML",
                      "MT",
                      "MH",
                      "MQ",
                      "MR",
                      "MU",
                      "YT",
                      "MX",
                      "FM",
                      "MD",
                      "MC",
                      "MN",
                      "ME",
                      "MS",
                      "MA",
                      "MZ",
                      "MM",
                      "NA",
                      "NR",
                      "NP",
                      "NL",
                      "NC",
                      "NZ",
                      "NI",
                      "NE",
                      "NG",
                      "NU",
                      "NF",
                      "MP",
                      "NO",
                      "OM",
                      "PK",
                      "PW",
                      "PS",
                      "PA",
                      "PG",
                      "PY",
                      "PE",
                      "PH",
                      "PN",
                      "PL",
                      "PT",
                      "PR",
                      "QA",
                      "RE",
                      "RO",
                      "RU",
                      "RW",
                      "BL",
                      "SH",
                      "KN",
                      "LC",
                      "MF",
                      "PM",
                      "VC",
                      "WS",
                      "SM",
                      "ST",
                      "SA",
                      "SN",
                      "RS",
                      "SC",
                      "SL",
                      "SG",
                      "SX",
                      "SK",
                      "SI",
                      "SB",
                      "SO",
                      "ZA",
                      "GS",
                      "SS",
                      "ES",
                      "LK",
                      "SD",
                      "SR",
                      "SJ",
                      "SZ",
                      "SE",
                      "CH",
                      "SY",
                      "TW",
                      "TJ",
                      "TZ",
                      "TH",
                      "TL",
                      "TG",
                      "TK",
                      "TO",
                      "TT",
                      "TN",
                      "TR",
                      "TM",
                      "TC",
                      "TV",
                      "UG",
                      "UA",
                      "AE",
                      "GB",
                      "US",
                      "UM",
                      "UY",
                      "UZ",
                      "VU",
                      "VE",
                      "VN",
                      "VG",
                      "VI",
                      "WF",
                      "EH",
                      "YE",
                      "ZM",
                      "ZW"
                    ]
                  },
                  "region": {
                    "type": "string",
                    "description": "Region/state of the party's address."
                  },
                  "city": {
                    "type": "string",
                    "description": "City of the party's address."
                  },
                  "postCode": {
                    "type": "string",
                    "description": "Postal code of the party's address."
                  },
                  "address": {
                    "type": "string",
                    "description": "Street address of the party."
                  },
                  "regNo": {
                    "type": "string",
                    "description": "Registration / company number of the party."
                  },
                  "taxId": {
                    "type": "string",
                    "description": "Tax identification number of the party."
                  },
                  "phone": {
                    "type": "string",
                    "description": "Phone number of the party."
                  },
                  "email": {
                    "type": "string",
                    "description": "Email address of the party."
                  },
                  "bankIban": {
                    "type": "string",
                    "nullable": true,
                    "description": "IBAN of the bank account."
                  },
                  "bankCode": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                  },
                  "bankAccountNumber": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank account number."
                  },
                  "bankAccountType": {
                    "type": "string",
                    "nullable": true,
                    "description": "Type of the bank account."
                  },
                  "bankBic": {
                    "type": "string",
                    "nullable": true,
                    "description": "BIC/SWIFT code of the bank."
                  }
                },
                "required": [
                  "type",
                  "name"
                ]
              },
              "buyer": {
                "description": "Buyer details captured at the time of invoice generation.",
                "type": "object",
                "properties": {
                  "type": {
                    "description": "Party type on a partner invoice:\n- **operator**: The party is the operator issuing or receiving the invoice.\n- **partner**: The party is the partner the invoice is issued to or from.\n",
                    "type": "string",
                    "enum": [
                      "operator",
                      "partner"
                    ],
                    "example": "operator"
                  },
                  "name": {
                    "type": "string",
                    "description": "Legal name of the party as captured at invoice generation."
                  },
                  "contactPerson": {
                    "type": "string",
                    "description": "Contact person at the party."
                  },
                  "country": {
                    "description": "ISO 3166-1 alpha-2 country code of the party.",
                    "type": "string",
                    "enum": [
                      "AF",
                      "AX",
                      "AL",
                      "DZ",
                      "AS",
                      "AD",
                      "AO",
                      "AI",
                      "AQ",
                      "AG",
                      "AR",
                      "AM",
                      "AW",
                      "AU",
                      "AT",
                      "AZ",
                      "BS",
                      "BH",
                      "BD",
                      "BB",
                      "BY",
                      "BE",
                      "BZ",
                      "BJ",
                      "BM",
                      "BT",
                      "BO",
                      "BQ",
                      "BA",
                      "BW",
                      "BV",
                      "BR",
                      "IO",
                      "BN",
                      "BG",
                      "BF",
                      "BI",
                      "KH",
                      "CM",
                      "CA",
                      "CV",
                      "KY",
                      "CF",
                      "TD",
                      "CL",
                      "CN",
                      "CX",
                      "CC",
                      "CO",
                      "KM",
                      "CG",
                      "CD",
                      "CK",
                      "CR",
                      "CI",
                      "HR",
                      "CU",
                      "CW",
                      "CY",
                      "CZ",
                      "DK",
                      "DJ",
                      "DM",
                      "DO",
                      "EC",
                      "EG",
                      "SV",
                      "GQ",
                      "ER",
                      "EE",
                      "ET",
                      "FK",
                      "FO",
                      "FJ",
                      "FI",
                      "FR",
                      "GF",
                      "PF",
                      "TF",
                      "GA",
                      "GM",
                      "GE",
                      "DE",
                      "GH",
                      "GI",
                      "GR",
                      "GL",
                      "GD",
                      "GP",
                      "GU",
                      "GT",
                      "GG",
                      "GN",
                      "GW",
                      "GY",
                      "HT",
                      "HM",
                      "VA",
                      "HN",
                      "HK",
                      "HU",
                      "IS",
                      "IN",
                      "ID",
                      "IR",
                      "IQ",
                      "IE",
                      "IM",
                      "IL",
                      "IT",
                      "JM",
                      "JP",
                      "JE",
                      "JO",
                      "KZ",
                      "KE",
                      "KI",
                      "KP",
                      "KR",
                      "XK",
                      "KW",
                      "KG",
                      "LA",
                      "LV",
                      "LB",
                      "LS",
                      "LR",
                      "LY",
                      "LI",
                      "LT",
                      "LU",
                      "MO",
                      "MK",
                      "MG",
                      "MW",
                      "MY",
                      "MV",
                      "ML",
                      "MT",
                      "MH",
                      "MQ",
                      "MR",
                      "MU",
                      "YT",
                      "MX",
                      "FM",
                      "MD",
                      "MC",
                      "MN",
                      "ME",
                      "MS",
                      "MA",
                      "MZ",
                      "MM",
                      "NA",
                      "NR",
                      "NP",
                      "NL",
                      "NC",
                      "NZ",
                      "NI",
                      "NE",
                      "NG",
                      "NU",
                      "NF",
                      "MP",
                      "NO",
                      "OM",
                      "PK",
                      "PW",
                      "PS",
                      "PA",
                      "PG",
                      "PY",
                      "PE",
                      "PH",
                      "PN",
                      "PL",
                      "PT",
                      "PR",
                      "QA",
                      "RE",
                      "RO",
                      "RU",
                      "RW",
                      "BL",
                      "SH",
                      "KN",
                      "LC",
                      "MF",
                      "PM",
                      "VC",
                      "WS",
                      "SM",
                      "ST",
                      "SA",
                      "SN",
                      "RS",
                      "SC",
                      "SL",
                      "SG",
                      "SX",
                      "SK",
                      "SI",
                      "SB",
                      "SO",
                      "ZA",
                      "GS",
                      "SS",
                      "ES",
                      "LK",
                      "SD",
                      "SR",
                      "SJ",
                      "SZ",
                      "SE",
                      "CH",
                      "SY",
                      "TW",
                      "TJ",
                      "TZ",
                      "TH",
                      "TL",
                      "TG",
                      "TK",
                      "TO",
                      "TT",
                      "TN",
                      "TR",
                      "TM",
                      "TC",
                      "TV",
                      "UG",
                      "UA",
                      "AE",
                      "GB",
                      "US",
                      "UM",
                      "UY",
                      "UZ",
                      "VU",
                      "VE",
                      "VN",
                      "VG",
                      "VI",
                      "WF",
                      "EH",
                      "YE",
                      "ZM",
                      "ZW"
                    ]
                  },
                  "region": {
                    "type": "string",
                    "description": "Region/state of the party's address."
                  },
                  "city": {
                    "type": "string",
                    "description": "City of the party's address."
                  },
                  "postCode": {
                    "type": "string",
                    "description": "Postal code of the party's address."
                  },
                  "address": {
                    "type": "string",
                    "description": "Street address of the party."
                  },
                  "regNo": {
                    "type": "string",
                    "description": "Registration / company number of the party."
                  },
                  "taxId": {
                    "type": "string",
                    "description": "Tax identification number of the party."
                  },
                  "phone": {
                    "type": "string",
                    "description": "Phone number of the party."
                  },
                  "email": {
                    "type": "string",
                    "description": "Email address of the party."
                  }
                },
                "required": [
                  "type",
                  "name"
                ]
              },
              "lineItems": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Unique line item identifier."
                    },
                    "service": {
                      "type": "string",
                      "description": "Service description for the line item."
                    },
                    "unit": {
                      "type": "string",
                      "description": "Unit of measure for the line item, as captured on the source settlement report entry."
                    },
                    "quantity": {
                      "type": "number",
                      "description": "Quantity of the unit billed on the line item."
                    },
                    "unitPrice": {
                      "description": "Unit price for the line item, split by tax inclusion.",
                      "type": "object",
                      "properties": {
                        "withTax": {
                          "type": "number"
                        },
                        "withoutTax": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "withTax"
                      ]
                    },
                    "lineTotal": {
                      "description": "Total amount for the line item, split by tax inclusion.",
                      "type": "object",
                      "properties": {
                        "withTax": {
                          "type": "number"
                        },
                        "withoutTax": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "withTax"
                      ]
                    },
                    "displayOrder": {
                      "type": "integer",
                      "description": "Order in which the line item is displayed on the invoice."
                    },
                    "originType": {
                      "description": "Origin of the partner invoice line item:\n- **revenue**: The line item originated from a revenue entry on the settlement report.\n- **expense**: The line item originated from an expense entry on the settlement report.\n",
                      "type": "string",
                      "enum": [
                        "revenue",
                        "expense"
                      ],
                      "example": "revenue"
                    },
                    "taxPercentage": {
                      "type": "number",
                      "description": "Tax percentage applied to the line item. Omitted on US/Canada invoices that have no tax breakdown."
                    }
                  },
                  "required": [
                    "id",
                    "service",
                    "unit",
                    "quantity",
                    "unitPrice",
                    "lineTotal",
                    "displayOrder",
                    "originType"
                  ]
                },
                "description": "Line items snapshotted from the source settlement report. On a regular partner invoice revenue entries appear as credits and expense entries as charges; on a self-billing invoice the directions are inverted, with revenue entries as charges and expense entries as deductions."
              },
              "taxBreakdown": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "taxPercentage": {
                      "type": "number",
                      "description": "Tax percentage applied to this group of line items."
                    },
                    "taxableAmount": {
                      "type": "number",
                      "description": "Sum of net line totals for line items at this tax rate."
                    },
                    "taxAmount": {
                      "type": "number",
                      "description": "Sum of tax amounts for line items at this tax rate."
                    }
                  },
                  "required": [
                    "taxPercentage",
                    "taxableAmount",
                    "taxAmount"
                  ]
                },
                "description": "Per-rate tax breakdown grouped from line items. Empty when the invoice has no line items or all line items have no tax rate (US/Canada)."
              },
              "fiscalization": {
                "description": "Certification of this invoice with the fiscal authority integration. Present only when the B2B invoice processor recorded on this invoice at issuance certifies documents with a fiscal authority; omitted entirely otherwise. The recorded processor governs this field for the life of the invoice, so changing the operator's selected processor never adds or removes it on an already-issued invoice.",
                "type": "object",
                "properties": {
                  "status": {
                    "description": "Certification status of the partner invoice with the fiscal authority integration. Present only when the B2B invoice processor recorded on this invoice at issuance certifies documents with a fiscal authority; absent entirely otherwise.\n- **pending**: The invoice record exists and has been accepted for certification, but the fiscal authority integration has not yet confirmed it. The document is not yet legally issued.\n- **certified**: The fiscal authority integration confirmed the document, which is legally issued. `referenceNumber` carries the number the integration assigned to it. In rare cases a certified document has no recorded number and `referenceNumber` is absent; this does not resolve on its own and requires operator intervention.\n- **failed**: Certification did not succeed. Retries are attempted a bounded number of times; a status that remains `failed` requires operator intervention. The invoice record remains, but no legally issued document exists for it.\n",
                    "type": "string",
                    "enum": [
                      "pending",
                      "certified",
                      "failed"
                    ],
                    "example": "certified"
                  },
                  "referenceNumber": {
                    "type": "string",
                    "description": "Document number assigned by the fiscal authority integration. This is the legally meaningful number for the issued document, distinct from `number`. Never present before `status` is `certified`, and not guaranteed even then — a certified document whose assigned number has not yet been recorded omits it."
                  }
                },
                "required": [
                  "status"
                ]
              }
            },
            "required": [
              "id",
              "operatorId",
              "partnerId",
              "settlementReportId",
              "number",
              "type",
              "sellerType",
              "buyerType",
              "issuedOn",
              "dueOn",
              "paymentTermsDays",
              "paymentStatus",
              "currencyCode",
              "totalAmount",
              "seller",
              "buyer",
              "lineItems",
              "taxBreakdown"
            ]
          }
        },
        "required": [
          "data"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "425": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInvoiceUpdateExternalId": {
    "202": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique partner invoice identifier."
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "partnerId": {
                "type": "integer",
                "description": "Identifier of the partner the invoice is issued to or from."
              },
              "settlementReportId": {
                "type": "integer",
                "description": "Identifier of the settlement report the invoice was generated from."
              },
              "number": {
                "type": "string",
                "description": "The platform's own identifier for this partner invoice. Not a fiscal authority document number — where the B2B invoice processor recorded on this invoice certifies documents with a fiscal authority, the legally meaningful number is `fiscalization.referenceNumber` on the single-invoice read."
              },
              "externalId": {
                "type": "string",
                "maxLength": 255,
                "description": "An optional external identifier for integration purposes"
              },
              "type": {
                "description": "Partner invoice document type:\n- **invoice**: A regular partner invoice generated from a settlement report.\n- **credit_note**: A credit note that cancels an original partner invoice. Always references the cancelled invoice via `referenceId`.\n",
                "type": "string",
                "enum": [
                  "invoice",
                  "credit_note"
                ],
                "example": "invoice"
              },
              "sellerType": {
                "description": "Party type on a partner invoice:\n- **operator**: The party is the operator issuing or receiving the invoice.\n- **partner**: The party is the partner the invoice is issued to or from.\n",
                "type": "string",
                "enum": [
                  "operator",
                  "partner"
                ],
                "example": "operator"
              },
              "buyerType": {
                "description": "Party type on a partner invoice:\n- **operator**: The party is the operator issuing or receiving the invoice.\n- **partner**: The party is the partner the invoice is issued to or from.\n",
                "type": "string",
                "enum": [
                  "operator",
                  "partner"
                ],
                "example": "operator"
              },
              "issuedOn": {
                "type": "string",
                "format": "date",
                "description": "Date when the partner invoice was issued."
              },
              "dueOn": {
                "type": "string",
                "format": "date",
                "description": "Date by which the partner invoice must be paid. Equal to the issued date when payment terms are \"Due on receipt\"."
              },
              "periodStartsOn": {
                "type": "string",
                "format": "date",
                "description": "First date of the billing period captured when the partner invoice was issued. Present only when the complete period is available."
              },
              "periodEndsOn": {
                "type": "string",
                "format": "date",
                "description": "Last date of the billing period captured when the partner invoice was issued. Present only when the complete period is available."
              },
              "paymentTermsDays": {
                "type": "integer",
                "description": "Number of days the party has to pay after the invoice is issued. `0` represents \"Due on receipt\". Snapshotted at generation time."
              },
              "paymentStatus": {
                "description": "Partner invoice payment status:\n- **unpaid**: No payment has been recorded against the invoice.\n- **partially_paid**: A payment has been recorded but the full amount is not yet covered.\n- **paid**: The full amount has been paid.\n",
                "type": "string",
                "enum": [
                  "unpaid",
                  "partially_paid",
                  "paid"
                ],
                "example": "unpaid"
              },
              "currencyCode": {
                "description": "Currency used on the partner invoice (ISO 4217 code).",
                "type": "string",
                "enum": [
                  "AED",
                  "AFN",
                  "ALL",
                  "AMD",
                  "ANG",
                  "AOA",
                  "ARS",
                  "AUD",
                  "AWG",
                  "AZN",
                  "BAM",
                  "BBD",
                  "BDT",
                  "BGN",
                  "BHD",
                  "BIF",
                  "BMD",
                  "BND",
                  "BOB",
                  "BOV",
                  "BRL",
                  "BSD",
                  "BTN",
                  "BWP",
                  "BYN",
                  "BZD",
                  "CAD",
                  "CDF",
                  "CHE",
                  "CHF",
                  "CHW",
                  "CLF",
                  "CLP",
                  "CNY",
                  "COP",
                  "COU",
                  "CRC",
                  "CUC",
                  "CUP",
                  "CVE",
                  "CZK",
                  "DJF",
                  "DKK",
                  "DOP",
                  "DZD",
                  "EGP",
                  "ERN",
                  "ETB",
                  "EUR",
                  "FJD",
                  "FKP",
                  "GBP",
                  "GEL",
                  "GHS",
                  "GIP",
                  "GMD",
                  "GNF",
                  "GTQ",
                  "GYD",
                  "HKD",
                  "HNL",
                  "HRK",
                  "HTG",
                  "HUF",
                  "IDR",
                  "ILS",
                  "INR",
                  "IQD",
                  "IRR",
                  "ISK",
                  "JMD",
                  "JOD",
                  "JPY",
                  "KES",
                  "KGS",
                  "KHR",
                  "KMF",
                  "KPW",
                  "KRW",
                  "KWD",
                  "KYD",
                  "KZT",
                  "LAK",
                  "LBP",
                  "LKR",
                  "LRD",
                  "LSL",
                  "LYD",
                  "MAD",
                  "MDL",
                  "MGA",
                  "MKD",
                  "MMK",
                  "MNT",
                  "MOP",
                  "MRU",
                  "MUR",
                  "MVR",
                  "MWK",
                  "MXN",
                  "MXV",
                  "MYR",
                  "MZN",
                  "NAD",
                  "NGN",
                  "NIO",
                  "NOK",
                  "NPR",
                  "NZD",
                  "OMR",
                  "PAB",
                  "PEN",
                  "PGK",
                  "PHP",
                  "PKR",
                  "PLN",
                  "PYG",
                  "QAR",
                  "RON",
                  "RSD",
                  "RUB",
                  "RWF",
                  "SAR",
                  "SBD",
                  "SCR",
                  "SDG",
                  "SEK",
                  "SGD",
                  "SHP",
                  "SLL",
                  "SOS",
                  "SRD",
                  "SSP",
                  "STN",
                  "SVC",
                  "SYP",
                  "SZL",
                  "THB",
                  "TJS",
                  "TMT",
                  "TND",
                  "TOP",
                  "TRY",
                  "TTD",
                  "TWD",
                  "TZS",
                  "UAH",
                  "UGX",
                  "USD",
                  "USN",
                  "UYI",
                  "UYU",
                  "UYW",
                  "UZS",
                  "VES",
                  "VND",
                  "VUV",
                  "WST",
                  "XAF",
                  "XAG",
                  "XAU",
                  "XBA",
                  "XBB",
                  "XBC",
                  "XBD",
                  "XCD",
                  "XDR",
                  "XOF",
                  "XPD",
                  "XPF",
                  "XPT",
                  "XSU",
                  "XTS",
                  "XUA",
                  "XXX",
                  "YER",
                  "ZAR",
                  "ZMW",
                  "ZWL"
                ]
              },
              "totalAmount": {
                "description": "Total amount on the partner invoice, split by tax inclusion.",
                "type": "object",
                "properties": {
                  "withoutTax": {
                    "type": "number",
                    "description": "Total amount on the partner invoice excluding tax. Equal to withTax on invoices that have no tax breakdown (US/Canada)."
                  },
                  "withTax": {
                    "type": "number",
                    "description": "Total amount on the partner invoice including tax."
                  }
                },
                "required": [
                  "withoutTax",
                  "withTax"
                ]
              },
              "totalTax": {
                "type": "number",
                "description": "Total tax amount across all line items. Stored for all invoices; hidden on US/Canada invoices."
              },
              "referenceId": {
                "type": "integer",
                "description": "Identifier of the original partner invoice that this credit note cancels. Present only when `type` is `credit_note`."
              },
              "seller": {
                "description": "Seller details captured at the time of invoice generation. The operator is the seller on a regular partner invoice; the partner is the seller on a self-billing invoice.",
                "type": "object",
                "properties": {
                  "type": {
                    "description": "Party type on a partner invoice:\n- **operator**: The party is the operator issuing or receiving the invoice.\n- **partner**: The party is the partner the invoice is issued to or from.\n",
                    "type": "string",
                    "enum": [
                      "operator",
                      "partner"
                    ],
                    "example": "operator"
                  },
                  "name": {
                    "type": "string",
                    "description": "Legal name of the party as captured at invoice generation."
                  },
                  "contactPerson": {
                    "type": "string",
                    "description": "Contact person at the party."
                  },
                  "country": {
                    "description": "ISO 3166-1 alpha-2 country code of the party.",
                    "type": "string",
                    "enum": [
                      "AF",
                      "AX",
                      "AL",
                      "DZ",
                      "AS",
                      "AD",
                      "AO",
                      "AI",
                      "AQ",
                      "AG",
                      "AR",
                      "AM",
                      "AW",
                      "AU",
                      "AT",
                      "AZ",
                      "BS",
                      "BH",
                      "BD",
                      "BB",
                      "BY",
                      "BE",
                      "BZ",
                      "BJ",
                      "BM",
                      "BT",
                      "BO",
                      "BQ",
                      "BA",
                      "BW",
                      "BV",
                      "BR",
                      "IO",
                      "BN",
                      "BG",
                      "BF",
                      "BI",
                      "KH",
                      "CM",
                      "CA",
                      "CV",
                      "KY",
                      "CF",
                      "TD",
                      "CL",
                      "CN",
                      "CX",
                      "CC",
                      "CO",
                      "KM",
                      "CG",
                      "CD",
                      "CK",
                      "CR",
                      "CI",
                      "HR",
                      "CU",
                      "CW",
                      "CY",
                      "CZ",
                      "DK",
                      "DJ",
                      "DM",
                      "DO",
                      "EC",
                      "EG",
                      "SV",
                      "GQ",
                      "ER",
                      "EE",
                      "ET",
                      "FK",
                      "FO",
                      "FJ",
                      "FI",
                      "FR",
                      "GF",
                      "PF",
                      "TF",
                      "GA",
                      "GM",
                      "GE",
                      "DE",
                      "GH",
                      "GI",
                      "GR",
                      "GL",
                      "GD",
                      "GP",
                      "GU",
                      "GT",
                      "GG",
                      "GN",
                      "GW",
                      "GY",
                      "HT",
                      "HM",
                      "VA",
                      "HN",
                      "HK",
                      "HU",
                      "IS",
                      "IN",
                      "ID",
                      "IR",
                      "IQ",
                      "IE",
                      "IM",
                      "IL",
                      "IT",
                      "JM",
                      "JP",
                      "JE",
                      "JO",
                      "KZ",
                      "KE",
                      "KI",
                      "KP",
                      "KR",
                      "XK",
                      "KW",
                      "KG",
                      "LA",
                      "LV",
                      "LB",
                      "LS",
                      "LR",
                      "LY",
                      "LI",
                      "LT",
                      "LU",
                      "MO",
                      "MK",
                      "MG",
                      "MW",
                      "MY",
                      "MV",
                      "ML",
                      "MT",
                      "MH",
                      "MQ",
                      "MR",
                      "MU",
                      "YT",
                      "MX",
                      "FM",
                      "MD",
                      "MC",
                      "MN",
                      "ME",
                      "MS",
                      "MA",
                      "MZ",
                      "MM",
                      "NA",
                      "NR",
                      "NP",
                      "NL",
                      "NC",
                      "NZ",
                      "NI",
                      "NE",
                      "NG",
                      "NU",
                      "NF",
                      "MP",
                      "NO",
                      "OM",
                      "PK",
                      "PW",
                      "PS",
                      "PA",
                      "PG",
                      "PY",
                      "PE",
                      "PH",
                      "PN",
                      "PL",
                      "PT",
                      "PR",
                      "QA",
                      "RE",
                      "RO",
                      "RU",
                      "RW",
                      "BL",
                      "SH",
                      "KN",
                      "LC",
                      "MF",
                      "PM",
                      "VC",
                      "WS",
                      "SM",
                      "ST",
                      "SA",
                      "SN",
                      "RS",
                      "SC",
                      "SL",
                      "SG",
                      "SX",
                      "SK",
                      "SI",
                      "SB",
                      "SO",
                      "ZA",
                      "GS",
                      "SS",
                      "ES",
                      "LK",
                      "SD",
                      "SR",
                      "SJ",
                      "SZ",
                      "SE",
                      "CH",
                      "SY",
                      "TW",
                      "TJ",
                      "TZ",
                      "TH",
                      "TL",
                      "TG",
                      "TK",
                      "TO",
                      "TT",
                      "TN",
                      "TR",
                      "TM",
                      "TC",
                      "TV",
                      "UG",
                      "UA",
                      "AE",
                      "GB",
                      "US",
                      "UM",
                      "UY",
                      "UZ",
                      "VU",
                      "VE",
                      "VN",
                      "VG",
                      "VI",
                      "WF",
                      "EH",
                      "YE",
                      "ZM",
                      "ZW"
                    ]
                  },
                  "region": {
                    "type": "string",
                    "description": "Region/state of the party's address."
                  },
                  "city": {
                    "type": "string",
                    "description": "City of the party's address."
                  },
                  "postCode": {
                    "type": "string",
                    "description": "Postal code of the party's address."
                  },
                  "address": {
                    "type": "string",
                    "description": "Street address of the party."
                  },
                  "regNo": {
                    "type": "string",
                    "description": "Registration / company number of the party."
                  },
                  "taxId": {
                    "type": "string",
                    "description": "Tax identification number of the party."
                  },
                  "phone": {
                    "type": "string",
                    "description": "Phone number of the party."
                  },
                  "email": {
                    "type": "string",
                    "description": "Email address of the party."
                  },
                  "bankIban": {
                    "type": "string",
                    "nullable": true,
                    "description": "IBAN of the bank account."
                  },
                  "bankCode": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                  },
                  "bankAccountNumber": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank account number."
                  },
                  "bankAccountType": {
                    "type": "string",
                    "nullable": true,
                    "description": "Type of the bank account."
                  },
                  "bankBic": {
                    "type": "string",
                    "nullable": true,
                    "description": "BIC/SWIFT code of the bank."
                  }
                },
                "required": [
                  "type",
                  "name"
                ]
              },
              "buyer": {
                "description": "Buyer details captured at the time of invoice generation.",
                "type": "object",
                "properties": {
                  "type": {
                    "description": "Party type on a partner invoice:\n- **operator**: The party is the operator issuing or receiving the invoice.\n- **partner**: The party is the partner the invoice is issued to or from.\n",
                    "type": "string",
                    "enum": [
                      "operator",
                      "partner"
                    ],
                    "example": "operator"
                  },
                  "name": {
                    "type": "string",
                    "description": "Legal name of the party as captured at invoice generation."
                  },
                  "contactPerson": {
                    "type": "string",
                    "description": "Contact person at the party."
                  },
                  "country": {
                    "description": "ISO 3166-1 alpha-2 country code of the party.",
                    "type": "string",
                    "enum": [
                      "AF",
                      "AX",
                      "AL",
                      "DZ",
                      "AS",
                      "AD",
                      "AO",
                      "AI",
                      "AQ",
                      "AG",
                      "AR",
                      "AM",
                      "AW",
                      "AU",
                      "AT",
                      "AZ",
                      "BS",
                      "BH",
                      "BD",
                      "BB",
                      "BY",
                      "BE",
                      "BZ",
                      "BJ",
                      "BM",
                      "BT",
                      "BO",
                      "BQ",
                      "BA",
                      "BW",
                      "BV",
                      "BR",
                      "IO",
                      "BN",
                      "BG",
                      "BF",
                      "BI",
                      "KH",
                      "CM",
                      "CA",
                      "CV",
                      "KY",
                      "CF",
                      "TD",
                      "CL",
                      "CN",
                      "CX",
                      "CC",
                      "CO",
                      "KM",
                      "CG",
                      "CD",
                      "CK",
                      "CR",
                      "CI",
                      "HR",
                      "CU",
                      "CW",
                      "CY",
                      "CZ",
                      "DK",
                      "DJ",
                      "DM",
                      "DO",
                      "EC",
                      "EG",
                      "SV",
                      "GQ",
                      "ER",
                      "EE",
                      "ET",
                      "FK",
                      "FO",
                      "FJ",
                      "FI",
                      "FR",
                      "GF",
                      "PF",
                      "TF",
                      "GA",
                      "GM",
                      "GE",
                      "DE",
                      "GH",
                      "GI",
                      "GR",
                      "GL",
                      "GD",
                      "GP",
                      "GU",
                      "GT",
                      "GG",
                      "GN",
                      "GW",
                      "GY",
                      "HT",
                      "HM",
                      "VA",
                      "HN",
                      "HK",
                      "HU",
                      "IS",
                      "IN",
                      "ID",
                      "IR",
                      "IQ",
                      "IE",
                      "IM",
                      "IL",
                      "IT",
                      "JM",
                      "JP",
                      "JE",
                      "JO",
                      "KZ",
                      "KE",
                      "KI",
                      "KP",
                      "KR",
                      "XK",
                      "KW",
                      "KG",
                      "LA",
                      "LV",
                      "LB",
                      "LS",
                      "LR",
                      "LY",
                      "LI",
                      "LT",
                      "LU",
                      "MO",
                      "MK",
                      "MG",
                      "MW",
                      "MY",
                      "MV",
                      "ML",
                      "MT",
                      "MH",
                      "MQ",
                      "MR",
                      "MU",
                      "YT",
                      "MX",
                      "FM",
                      "MD",
                      "MC",
                      "MN",
                      "ME",
                      "MS",
                      "MA",
                      "MZ",
                      "MM",
                      "NA",
                      "NR",
                      "NP",
                      "NL",
                      "NC",
                      "NZ",
                      "NI",
                      "NE",
                      "NG",
                      "NU",
                      "NF",
                      "MP",
                      "NO",
                      "OM",
                      "PK",
                      "PW",
                      "PS",
                      "PA",
                      "PG",
                      "PY",
                      "PE",
                      "PH",
                      "PN",
                      "PL",
                      "PT",
                      "PR",
                      "QA",
                      "RE",
                      "RO",
                      "RU",
                      "RW",
                      "BL",
                      "SH",
                      "KN",
                      "LC",
                      "MF",
                      "PM",
                      "VC",
                      "WS",
                      "SM",
                      "ST",
                      "SA",
                      "SN",
                      "RS",
                      "SC",
                      "SL",
                      "SG",
                      "SX",
                      "SK",
                      "SI",
                      "SB",
                      "SO",
                      "ZA",
                      "GS",
                      "SS",
                      "ES",
                      "LK",
                      "SD",
                      "SR",
                      "SJ",
                      "SZ",
                      "SE",
                      "CH",
                      "SY",
                      "TW",
                      "TJ",
                      "TZ",
                      "TH",
                      "TL",
                      "TG",
                      "TK",
                      "TO",
                      "TT",
                      "TN",
                      "TR",
                      "TM",
                      "TC",
                      "TV",
                      "UG",
                      "UA",
                      "AE",
                      "GB",
                      "US",
                      "UM",
                      "UY",
                      "UZ",
                      "VU",
                      "VE",
                      "VN",
                      "VG",
                      "VI",
                      "WF",
                      "EH",
                      "YE",
                      "ZM",
                      "ZW"
                    ]
                  },
                  "region": {
                    "type": "string",
                    "description": "Region/state of the party's address."
                  },
                  "city": {
                    "type": "string",
                    "description": "City of the party's address."
                  },
                  "postCode": {
                    "type": "string",
                    "description": "Postal code of the party's address."
                  },
                  "address": {
                    "type": "string",
                    "description": "Street address of the party."
                  },
                  "regNo": {
                    "type": "string",
                    "description": "Registration / company number of the party."
                  },
                  "taxId": {
                    "type": "string",
                    "description": "Tax identification number of the party."
                  },
                  "phone": {
                    "type": "string",
                    "description": "Phone number of the party."
                  },
                  "email": {
                    "type": "string",
                    "description": "Email address of the party."
                  }
                },
                "required": [
                  "type",
                  "name"
                ]
              },
              "lineItems": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Unique line item identifier."
                    },
                    "service": {
                      "type": "string",
                      "description": "Service description for the line item."
                    },
                    "unit": {
                      "type": "string",
                      "description": "Unit of measure for the line item, as captured on the source settlement report entry."
                    },
                    "quantity": {
                      "type": "number",
                      "description": "Quantity of the unit billed on the line item."
                    },
                    "unitPrice": {
                      "description": "Unit price for the line item, split by tax inclusion.",
                      "type": "object",
                      "properties": {
                        "withTax": {
                          "type": "number"
                        },
                        "withoutTax": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "withTax"
                      ]
                    },
                    "lineTotal": {
                      "description": "Total amount for the line item, split by tax inclusion.",
                      "type": "object",
                      "properties": {
                        "withTax": {
                          "type": "number"
                        },
                        "withoutTax": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "withTax"
                      ]
                    },
                    "displayOrder": {
                      "type": "integer",
                      "description": "Order in which the line item is displayed on the invoice."
                    },
                    "originType": {
                      "description": "Origin of the partner invoice line item:\n- **revenue**: The line item originated from a revenue entry on the settlement report.\n- **expense**: The line item originated from an expense entry on the settlement report.\n",
                      "type": "string",
                      "enum": [
                        "revenue",
                        "expense"
                      ],
                      "example": "revenue"
                    },
                    "taxPercentage": {
                      "type": "number",
                      "description": "Tax percentage applied to the line item. Omitted on US/Canada invoices that have no tax breakdown."
                    }
                  },
                  "required": [
                    "id",
                    "service",
                    "unit",
                    "quantity",
                    "unitPrice",
                    "lineTotal",
                    "displayOrder",
                    "originType"
                  ]
                },
                "description": "Line items snapshotted from the source settlement report. On a regular partner invoice revenue entries appear as credits and expense entries as charges; on a self-billing invoice the directions are inverted, with revenue entries as charges and expense entries as deductions."
              },
              "taxBreakdown": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "taxPercentage": {
                      "type": "number",
                      "description": "Tax percentage applied to this group of line items."
                    },
                    "taxableAmount": {
                      "type": "number",
                      "description": "Sum of net line totals for line items at this tax rate."
                    },
                    "taxAmount": {
                      "type": "number",
                      "description": "Sum of tax amounts for line items at this tax rate."
                    }
                  },
                  "required": [
                    "taxPercentage",
                    "taxableAmount",
                    "taxAmount"
                  ]
                },
                "description": "Per-rate tax breakdown grouped from line items. Empty when the invoice has no line items or all line items have no tax rate (US/Canada)."
              },
              "fiscalization": {
                "description": "Certification of this invoice with the fiscal authority integration. Present only when the B2B invoice processor recorded on this invoice at issuance certifies documents with a fiscal authority; omitted entirely otherwise. The recorded processor governs this field for the life of the invoice, so changing the operator's selected processor never adds or removes it on an already-issued invoice.",
                "type": "object",
                "properties": {
                  "status": {
                    "description": "Certification status of the partner invoice with the fiscal authority integration. Present only when the B2B invoice processor recorded on this invoice at issuance certifies documents with a fiscal authority; absent entirely otherwise.\n- **pending**: The invoice record exists and has been accepted for certification, but the fiscal authority integration has not yet confirmed it. The document is not yet legally issued.\n- **certified**: The fiscal authority integration confirmed the document, which is legally issued. `referenceNumber` carries the number the integration assigned to it. In rare cases a certified document has no recorded number and `referenceNumber` is absent; this does not resolve on its own and requires operator intervention.\n- **failed**: Certification did not succeed. Retries are attempted a bounded number of times; a status that remains `failed` requires operator intervention. The invoice record remains, but no legally issued document exists for it.\n",
                    "type": "string",
                    "enum": [
                      "pending",
                      "certified",
                      "failed"
                    ],
                    "example": "certified"
                  },
                  "referenceNumber": {
                    "type": "string",
                    "description": "Document number assigned by the fiscal authority integration. This is the legally meaningful number for the issued document, distinct from `number`. Never present before `status` is `certified`, and not guaranteed even then — a certified document whose assigned number has not yet been recorded omits it."
                  }
                },
                "required": [
                  "status"
                ]
              }
            },
            "required": [
              "id",
              "operatorId",
              "partnerId",
              "settlementReportId",
              "number",
              "type",
              "sellerType",
              "buyerType",
              "issuedOn",
              "dueOn",
              "paymentTermsDays",
              "paymentStatus",
              "currencyCode",
              "totalAmount",
              "seller",
              "buyer",
              "lineItems",
              "taxBreakdown"
            ]
          }
        },
        "required": [
          "data"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerSettlementReportIssuePartnerInvoice": {
    "202": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique settlement report identifier."
              },
              "partnerId": {
                "type": "integer",
                "description": "Unique identifier of the partner involved in the settlement."
              },
              "number": {
                "type": "string",
                "description": "Settlement report reference number."
              },
              "date": {
                "type": "string",
                "format": "date",
                "description": "Date the settlement report was generated."
              },
              "periodStart": {
                "type": "string",
                "format": "date",
                "description": "Start date of the period covered by the report."
              },
              "periodEnd": {
                "type": "string",
                "format": "date",
                "description": "End date of the period covered by the report."
              },
              "currencyCode": {
                "type": "string",
                "description": "Currency used in the settlement (e.g., USD, EUR)."
              },
              "totalAmount": {
                "type": "object",
                "properties": {
                  "withoutTax": {
                    "type": "number"
                  }
                },
                "required": [
                  "withoutTax"
                ],
                "description": "Total settlement amount."
              },
              "totalExpenses": {
                "type": "number",
                "description": "Total expenses incurred during the settlement period."
              },
              "totalRevenue": {
                "type": "number",
                "description": "Total revenue generated during the settlement period."
              },
              "totalAwaitedRevenue": {
                "type": "number",
                "description": "Revenue expected but not yet collected."
              },
              "totalCollectedRevenue": {
                "type": "number",
                "description": "Revenue collected during the settlement period."
              },
              "totalCollectedRevenueFromPreviousPeriod": {
                "type": "number",
                "description": "Revenue collected during this period, but related to a previous periods."
              },
              "totalEnergyCpoWh": {
                "type": "number",
                "description": "Total amount of energy (in Wh) delivered by the Charge Point Operator."
              },
              "totalEnergyEmspWh": {
                "type": "number",
                "description": "Total amount of energy (in Wh) consumed by the EMSP."
              },
              "supplier": {
                "description": "Company details for the entity supplying the service - the CPO.",
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "individual",
                      "company"
                    ]
                  },
                  "name": {
                    "type": "string"
                  },
                  "contactPerson": {
                    "type": "string",
                    "nullable": true
                  },
                  "country": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "AF",
                      "AX",
                      "AL",
                      "DZ",
                      "AS",
                      "AD",
                      "AO",
                      "AI",
                      "AQ",
                      "AG",
                      "AR",
                      "AM",
                      "AW",
                      "AU",
                      "AT",
                      "AZ",
                      "BS",
                      "BH",
                      "BD",
                      "BB",
                      "BY",
                      "BE",
                      "BZ",
                      "BJ",
                      "BM",
                      "BT",
                      "BO",
                      "BQ",
                      "BA",
                      "BW",
                      "BV",
                      "BR",
                      "IO",
                      "BN",
                      "BG",
                      "BF",
                      "BI",
                      "KH",
                      "CM",
                      "CA",
                      "CV",
                      "KY",
                      "CF",
                      "TD",
                      "CL",
                      "CN",
                      "CX",
                      "CC",
                      "CO",
                      "KM",
                      "CG",
                      "CD",
                      "CK",
                      "CR",
                      "CI",
                      "HR",
                      "CU",
                      "CW",
                      "CY",
                      "CZ",
                      "DK",
                      "DJ",
                      "DM",
                      "DO",
                      "EC",
                      "EG",
                      "SV",
                      "GQ",
                      "ER",
                      "EE",
                      "ET",
                      "FK",
                      "FO",
                      "FJ",
                      "FI",
                      "FR",
                      "GF",
                      "PF",
                      "TF",
                      "GA",
                      "GM",
                      "GE",
                      "DE",
                      "GH",
                      "GI",
                      "GR",
                      "GL",
                      "GD",
                      "GP",
                      "GU",
                      "GT",
                      "GG",
                      "GN",
                      "GW",
                      "GY",
                      "HT",
                      "HM",
                      "VA",
                      "HN",
                      "HK",
                      "HU",
                      "IS",
                      "IN",
                      "ID",
                      "IR",
                      "IQ",
                      "IE",
                      "IM",
                      "IL",
                      "IT",
                      "JM",
                      "JP",
                      "JE",
                      "JO",
                      "KZ",
                      "KE",
                      "KI",
                      "KP",
                      "KR",
                      "XK",
                      "KW",
                      "KG",
                      "LA",
                      "LV",
                      "LB",
                      "LS",
                      "LR",
                      "LY",
                      "LI",
                      "LT",
                      "LU",
                      "MO",
                      "MK",
                      "MG",
                      "MW",
                      "MY",
                      "MV",
                      "ML",
                      "MT",
                      "MH",
                      "MQ",
                      "MR",
                      "MU",
                      "YT",
                      "MX",
                      "FM",
                      "MD",
                      "MC",
                      "MN",
                      "ME",
                      "MS",
                      "MA",
                      "MZ",
                      "MM",
                      "NA",
                      "NR",
                      "NP",
                      "NL",
                      "NC",
                      "NZ",
                      "NI",
                      "NE",
                      "NG",
                      "NU",
                      "NF",
                      "MP",
                      "NO",
                      "OM",
                      "PK",
                      "PW",
                      "PS",
                      "PA",
                      "PG",
                      "PY",
                      "PE",
                      "PH",
                      "PN",
                      "PL",
                      "PT",
                      "PR",
                      "QA",
                      "RE",
                      "RO",
                      "RU",
                      "RW",
                      "BL",
                      "SH",
                      "KN",
                      "LC",
                      "MF",
                      "PM",
                      "VC",
                      "WS",
                      "SM",
                      "ST",
                      "SA",
                      "SN",
                      "RS",
                      "SC",
                      "SL",
                      "SG",
                      "SX",
                      "SK",
                      "SI",
                      "SB",
                      "SO",
                      "ZA",
                      "GS",
                      "SS",
                      "ES",
                      "LK",
                      "SD",
                      "SR",
                      "SJ",
                      "SZ",
                      "SE",
                      "CH",
                      "SY",
                      "TW",
                      "TJ",
                      "TZ",
                      "TH",
                      "TL",
                      "TG",
                      "TK",
                      "TO",
                      "TT",
                      "TN",
                      "TR",
                      "TM",
                      "TC",
                      "TV",
                      "UG",
                      "UA",
                      "AE",
                      "GB",
                      "US",
                      "UM",
                      "UY",
                      "UZ",
                      "VU",
                      "VE",
                      "VN",
                      "VG",
                      "VI",
                      "WF",
                      "EH",
                      "YE",
                      "ZM",
                      "ZW"
                    ]
                  },
                  "region": {
                    "type": "string",
                    "nullable": true
                  },
                  "city": {
                    "type": "string",
                    "nullable": true
                  },
                  "postCode": {
                    "type": "string",
                    "nullable": true
                  },
                  "address": {
                    "type": "string",
                    "nullable": true
                  },
                  "regNo": {
                    "type": "string",
                    "nullable": true
                  },
                  "taxId": {
                    "type": "string",
                    "nullable": true
                  },
                  "phone": {
                    "type": "string",
                    "nullable": true
                  },
                  "email": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "required": [
                  "type",
                  "name",
                  "contactPerson",
                  "country",
                  "region",
                  "city",
                  "postCode",
                  "address",
                  "regNo",
                  "taxId",
                  "phone",
                  "email"
                ]
              },
              "customer": {
                "description": "Company details for the entity receiving the service - the Partner/EMSP.",
                "$ref": "#/paths/~1public-api~1resources~1partner-settlement-reports~1v1.0~1%7BpartnerSettlementReport%7D/get/responses/200/content/application~1json/schema/properties/data",
                "type": "object",
                "properties": {
                  "bankIban": {
                    "type": "string",
                    "nullable": true,
                    "description": "IBAN of the bank account."
                  },
                  "bankCode": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                  },
                  "bankAccountNumber": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank account number."
                  },
                  "bankAccountType": {
                    "type": "string",
                    "nullable": true,
                    "description": "Type of the bank account."
                  },
                  "bankBic": {
                    "type": "string",
                    "nullable": true,
                    "description": "BIC/SWIFT code of the bank."
                  }
                },
                "required": [
                  "bankIban",
                  "bankName",
                  "bankAddress",
                  "bankCode",
                  "bankAccountNumber",
                  "bankAccountType",
                  "bankAccountHolder",
                  "bankBic"
                ]
              },
              "downloadUrl": {
                "type": "string",
                "format": "url",
                "description": "Link to download the full settlement report document."
              },
              "externalId": {
                "type": "string",
                "description": "External invoice or reference ID for integration with external accounting systems."
              },
              "deductedFees": {
                "description": "Aggregated deducted fees for the settlement period. Included only when at least one fee is non-zero.",
                "type": "object",
                "properties": {
                  "feePerSessionAc": {
                    "type": "number",
                    "description": "Total fixed fee for AC sessions in the settlement period."
                  },
                  "feePerSessionDc": {
                    "type": "number",
                    "description": "Total fixed fee for DC sessions in the settlement period."
                  },
                  "feePerKwhAc": {
                    "type": "number",
                    "description": "Total fee per AC kWh delivered in the settlement period."
                  },
                  "feePerKwhDc": {
                    "type": "number",
                    "description": "Total fee per DC kWh delivered in the settlement period."
                  },
                  "handlingFee": {
                    "type": "number",
                    "description": "Total percentage-based handling fee for the settlement period."
                  }
                },
                "required": [
                  "feePerSessionAc",
                  "feePerSessionDc",
                  "feePerKwhAc",
                  "feePerKwhDc",
                  "handlingFee"
                ]
              },
              "partnerInvoiceId": {
                "type": "integer",
                "description": "Identifier of the latest issued partner invoice for this settlement report.\nOmitted when no partner invoice has been issued.\nRetained after a credit note is issued — the credit note is a separate document and the reference points at the invoice the report produced.\n"
              },
              "customFields": {
                "description": "Live custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the settlement report's current partner owner or are not visible to the acting administrator are omitted. The `customFields` property itself is omitted when no fields apply.\n\nThese values reflect the current custom field configuration and are not captured in the historical settlement report document, its party and settings snapshots, or derived partner invoices. Existing settlement report access controls continue to determine whether the report can be read; custom field visibility does not grant access to a report.\n",
                "type": "object",
                "additionalProperties": true
              }
            },
            "required": [
              "id",
              "partnerId",
              "number",
              "date",
              "periodStart",
              "periodEnd",
              "currencyCode",
              "totalAmount",
              "totalExpenses",
              "totalRevenue",
              "totalAwaitedRevenue",
              "totalCollectedRevenue",
              "totalCollectedRevenueFromPreviousPeriod",
              "totalEnergyCpoWh",
              "totalEnergyEmspWh",
              "supplier",
              "customer",
              "downloadUrl"
            ]
          }
        },
        "required": [
          "data"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerSettlementReportSetCustomFields": {
    "202": {
      "schema": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique settlement report identifier."
              },
              "partnerId": {
                "type": "integer",
                "description": "Unique identifier of the partner involved in the settlement."
              },
              "number": {
                "type": "string",
                "description": "Settlement report reference number."
              },
              "date": {
                "type": "string",
                "format": "date",
                "description": "Date the settlement report was generated."
              },
              "periodStart": {
                "type": "string",
                "format": "date",
                "description": "Start date of the period covered by the report."
              },
              "periodEnd": {
                "type": "string",
                "format": "date",
                "description": "End date of the period covered by the report."
              },
              "currencyCode": {
                "type": "string",
                "description": "Currency used in the settlement (e.g., USD, EUR)."
              },
              "totalAmount": {
                "type": "object",
                "properties": {
                  "withoutTax": {
                    "type": "number"
                  }
                },
                "required": [
                  "withoutTax"
                ],
                "description": "Total settlement amount."
              },
              "totalExpenses": {
                "type": "number",
                "description": "Total expenses incurred during the settlement period."
              },
              "totalRevenue": {
                "type": "number",
                "description": "Total revenue generated during the settlement period."
              },
              "totalAwaitedRevenue": {
                "type": "number",
                "description": "Revenue expected but not yet collected."
              },
              "totalCollectedRevenue": {
                "type": "number",
                "description": "Revenue collected during the settlement period."
              },
              "totalCollectedRevenueFromPreviousPeriod": {
                "type": "number",
                "description": "Revenue collected during this period, but related to a previous periods."
              },
              "totalEnergyCpoWh": {
                "type": "number",
                "description": "Total amount of energy (in Wh) delivered by the Charge Point Operator."
              },
              "totalEnergyEmspWh": {
                "type": "number",
                "description": "Total amount of energy (in Wh) consumed by the EMSP."
              },
              "supplier": {
                "description": "Company details for the entity supplying the service - the CPO.",
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "individual",
                      "company"
                    ]
                  },
                  "name": {
                    "type": "string"
                  },
                  "contactPerson": {
                    "type": "string",
                    "nullable": true
                  },
                  "country": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "AF",
                      "AX",
                      "AL",
                      "DZ",
                      "AS",
                      "AD",
                      "AO",
                      "AI",
                      "AQ",
                      "AG",
                      "AR",
                      "AM",
                      "AW",
                      "AU",
                      "AT",
                      "AZ",
                      "BS",
                      "BH",
                      "BD",
                      "BB",
                      "BY",
                      "BE",
                      "BZ",
                      "BJ",
                      "BM",
                      "BT",
                      "BO",
                      "BQ",
                      "BA",
                      "BW",
                      "BV",
                      "BR",
                      "IO",
                      "BN",
                      "BG",
                      "BF",
                      "BI",
                      "KH",
                      "CM",
                      "CA",
                      "CV",
                      "KY",
                      "CF",
                      "TD",
                      "CL",
                      "CN",
                      "CX",
                      "CC",
                      "CO",
                      "KM",
                      "CG",
                      "CD",
                      "CK",
                      "CR",
                      "CI",
                      "HR",
                      "CU",
                      "CW",
                      "CY",
                      "CZ",
                      "DK",
                      "DJ",
                      "DM",
                      "DO",
                      "EC",
                      "EG",
                      "SV",
                      "GQ",
                      "ER",
                      "EE",
                      "ET",
                      "FK",
                      "FO",
                      "FJ",
                      "FI",
                      "FR",
                      "GF",
                      "PF",
                      "TF",
                      "GA",
                      "GM",
                      "GE",
                      "DE",
                      "GH",
                      "GI",
                      "GR",
                      "GL",
                      "GD",
                      "GP",
                      "GU",
                      "GT",
                      "GG",
                      "GN",
                      "GW",
                      "GY",
                      "HT",
                      "HM",
                      "VA",
                      "HN",
                      "HK",
                      "HU",
                      "IS",
                      "IN",
                      "ID",
                      "IR",
                      "IQ",
                      "IE",
                      "IM",
                      "IL",
                      "IT",
                      "JM",
                      "JP",
                      "JE",
                      "JO",
                      "KZ",
                      "KE",
                      "KI",
                      "KP",
                      "KR",
                      "XK",
                      "KW",
                      "KG",
                      "LA",
                      "LV",
                      "LB",
                      "LS",
                      "LR",
                      "LY",
                      "LI",
                      "LT",
                      "LU",
                      "MO",
                      "MK",
                      "MG",
                      "MW",
                      "MY",
                      "MV",
                      "ML",
                      "MT",
                      "MH",
                      "MQ",
                      "MR",
                      "MU",
                      "YT",
                      "MX",
                      "FM",
                      "MD",
                      "MC",
                      "MN",
                      "ME",
                      "MS",
                      "MA",
                      "MZ",
                      "MM",
                      "NA",
                      "NR",
                      "NP",
                      "NL",
                      "NC",
                      "NZ",
                      "NI",
                      "NE",
                      "NG",
                      "NU",
                      "NF",
                      "MP",
                      "NO",
                      "OM",
                      "PK",
                      "PW",
                      "PS",
                      "PA",
                      "PG",
                      "PY",
                      "PE",
                      "PH",
                      "PN",
                      "PL",
                      "PT",
                      "PR",
                      "QA",
                      "RE",
                      "RO",
                      "RU",
                      "RW",
                      "BL",
                      "SH",
                      "KN",
                      "LC",
                      "MF",
                      "PM",
                      "VC",
                      "WS",
                      "SM",
                      "ST",
                      "SA",
                      "SN",
                      "RS",
                      "SC",
                      "SL",
                      "SG",
                      "SX",
                      "SK",
                      "SI",
                      "SB",
                      "SO",
                      "ZA",
                      "GS",
                      "SS",
                      "ES",
                      "LK",
                      "SD",
                      "SR",
                      "SJ",
                      "SZ",
                      "SE",
                      "CH",
                      "SY",
                      "TW",
                      "TJ",
                      "TZ",
                      "TH",
                      "TL",
                      "TG",
                      "TK",
                      "TO",
                      "TT",
                      "TN",
                      "TR",
                      "TM",
                      "TC",
                      "TV",
                      "UG",
                      "UA",
                      "AE",
                      "GB",
                      "US",
                      "UM",
                      "UY",
                      "UZ",
                      "VU",
                      "VE",
                      "VN",
                      "VG",
                      "VI",
                      "WF",
                      "EH",
                      "YE",
                      "ZM",
                      "ZW"
                    ]
                  },
                  "region": {
                    "type": "string",
                    "nullable": true
                  },
                  "city": {
                    "type": "string",
                    "nullable": true
                  },
                  "postCode": {
                    "type": "string",
                    "nullable": true
                  },
                  "address": {
                    "type": "string",
                    "nullable": true
                  },
                  "regNo": {
                    "type": "string",
                    "nullable": true
                  },
                  "taxId": {
                    "type": "string",
                    "nullable": true
                  },
                  "phone": {
                    "type": "string",
                    "nullable": true
                  },
                  "email": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "required": [
                  "type",
                  "name",
                  "contactPerson",
                  "country",
                  "region",
                  "city",
                  "postCode",
                  "address",
                  "regNo",
                  "taxId",
                  "phone",
                  "email"
                ]
              },
              "customer": {
                "description": "Company details for the entity receiving the service - the Partner/EMSP.",
                "$ref": "#/paths/~1public-api~1resources~1partner-settlement-reports~1v1.0~1%7BpartnerSettlementReport%7D/get/responses/200/content/application~1json/schema/properties/data",
                "type": "object",
                "properties": {
                  "bankIban": {
                    "type": "string",
                    "nullable": true,
                    "description": "IBAN of the bank account."
                  },
                  "bankCode": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                  },
                  "bankAccountNumber": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank account number."
                  },
                  "bankAccountType": {
                    "type": "string",
                    "nullable": true,
                    "description": "Type of the bank account."
                  },
                  "bankBic": {
                    "type": "string",
                    "nullable": true,
                    "description": "BIC/SWIFT code of the bank."
                  }
                },
                "required": [
                  "bankIban",
                  "bankName",
                  "bankAddress",
                  "bankCode",
                  "bankAccountNumber",
                  "bankAccountType",
                  "bankAccountHolder",
                  "bankBic"
                ]
              },
              "downloadUrl": {
                "type": "string",
                "format": "url",
                "description": "Link to download the full settlement report document."
              },
              "externalId": {
                "type": "string",
                "description": "External invoice or reference ID for integration with external accounting systems."
              },
              "deductedFees": {
                "description": "Aggregated deducted fees for the settlement period. Included only when at least one fee is non-zero.",
                "type": "object",
                "properties": {
                  "feePerSessionAc": {
                    "type": "number",
                    "description": "Total fixed fee for AC sessions in the settlement period."
                  },
                  "feePerSessionDc": {
                    "type": "number",
                    "description": "Total fixed fee for DC sessions in the settlement period."
                  },
                  "feePerKwhAc": {
                    "type": "number",
                    "description": "Total fee per AC kWh delivered in the settlement period."
                  },
                  "feePerKwhDc": {
                    "type": "number",
                    "description": "Total fee per DC kWh delivered in the settlement period."
                  },
                  "handlingFee": {
                    "type": "number",
                    "description": "Total percentage-based handling fee for the settlement period."
                  }
                },
                "required": [
                  "feePerSessionAc",
                  "feePerSessionDc",
                  "feePerKwhAc",
                  "feePerKwhDc",
                  "handlingFee"
                ]
              },
              "partnerInvoiceId": {
                "type": "integer",
                "description": "Identifier of the latest issued partner invoice for this settlement report.\nOmitted when no partner invoice has been issued.\nRetained after a credit note is issued — the credit note is a separate document and the reference points at the invoice the report produced.\n"
              },
              "customFields": {
                "description": "Live custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the settlement report's current partner owner or are not visible to the acting administrator are omitted. The `customFields` property itself is omitted when no fields apply.\n\nThese values reflect the current custom field configuration and are not captured in the historical settlement report document, its party and settings snapshots, or derived partner invoices. Existing settlement report access controls continue to determine whether the report can be read; custom field visibility does not grant access to a report.\n",
                "type": "object",
                "additionalProperties": true
              }
            },
            "required": [
              "id",
              "partnerId",
              "number",
              "date",
              "periodStart",
              "periodEnd",
              "currencyCode",
              "totalAmount",
              "totalExpenses",
              "totalRevenue",
              "totalAwaitedRevenue",
              "totalCollectedRevenue",
              "totalCollectedRevenueFromPreviousPeriod",
              "totalEnergyCpoWh",
              "totalEnergyEmspWh",
              "supplier",
              "customer",
              "downloadUrl"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerSettlementReportUpdateExternalId": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique settlement report identifier."
              },
              "partnerId": {
                "type": "integer",
                "description": "Unique identifier of the partner involved in the settlement."
              },
              "number": {
                "type": "string",
                "description": "Settlement report reference number."
              },
              "date": {
                "type": "string",
                "format": "date",
                "description": "Date the settlement report was generated."
              },
              "periodStart": {
                "type": "string",
                "format": "date",
                "description": "Start date of the period covered by the report."
              },
              "periodEnd": {
                "type": "string",
                "format": "date",
                "description": "End date of the period covered by the report."
              },
              "currencyCode": {
                "type": "string",
                "description": "Currency used in the settlement (e.g., USD, EUR)."
              },
              "totalAmount": {
                "type": "object",
                "properties": {
                  "withoutTax": {
                    "type": "number"
                  }
                },
                "required": [
                  "withoutTax"
                ],
                "description": "Total settlement amount."
              },
              "totalExpenses": {
                "type": "number",
                "description": "Total expenses incurred during the settlement period."
              },
              "totalRevenue": {
                "type": "number",
                "description": "Total revenue generated during the settlement period."
              },
              "totalAwaitedRevenue": {
                "type": "number",
                "description": "Revenue expected but not yet collected."
              },
              "totalCollectedRevenue": {
                "type": "number",
                "description": "Revenue collected during the settlement period."
              },
              "totalCollectedRevenueFromPreviousPeriod": {
                "type": "number",
                "description": "Revenue collected during this period, but related to a previous periods."
              },
              "totalEnergyCpoWh": {
                "type": "number",
                "description": "Total amount of energy (in Wh) delivered by the Charge Point Operator."
              },
              "totalEnergyEmspWh": {
                "type": "number",
                "description": "Total amount of energy (in Wh) consumed by the EMSP."
              },
              "supplier": {
                "description": "Company details for the entity supplying the service - the CPO.",
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "individual",
                      "company"
                    ]
                  },
                  "name": {
                    "type": "string"
                  },
                  "contactPerson": {
                    "type": "string",
                    "nullable": true
                  },
                  "country": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "AF",
                      "AX",
                      "AL",
                      "DZ",
                      "AS",
                      "AD",
                      "AO",
                      "AI",
                      "AQ",
                      "AG",
                      "AR",
                      "AM",
                      "AW",
                      "AU",
                      "AT",
                      "AZ",
                      "BS",
                      "BH",
                      "BD",
                      "BB",
                      "BY",
                      "BE",
                      "BZ",
                      "BJ",
                      "BM",
                      "BT",
                      "BO",
                      "BQ",
                      "BA",
                      "BW",
                      "BV",
                      "BR",
                      "IO",
                      "BN",
                      "BG",
                      "BF",
                      "BI",
                      "KH",
                      "CM",
                      "CA",
                      "CV",
                      "KY",
                      "CF",
                      "TD",
                      "CL",
                      "CN",
                      "CX",
                      "CC",
                      "CO",
                      "KM",
                      "CG",
                      "CD",
                      "CK",
                      "CR",
                      "CI",
                      "HR",
                      "CU",
                      "CW",
                      "CY",
                      "CZ",
                      "DK",
                      "DJ",
                      "DM",
                      "DO",
                      "EC",
                      "EG",
                      "SV",
                      "GQ",
                      "ER",
                      "EE",
                      "ET",
                      "FK",
                      "FO",
                      "FJ",
                      "FI",
                      "FR",
                      "GF",
                      "PF",
                      "TF",
                      "GA",
                      "GM",
                      "GE",
                      "DE",
                      "GH",
                      "GI",
                      "GR",
                      "GL",
                      "GD",
                      "GP",
                      "GU",
                      "GT",
                      "GG",
                      "GN",
                      "GW",
                      "GY",
                      "HT",
                      "HM",
                      "VA",
                      "HN",
                      "HK",
                      "HU",
                      "IS",
                      "IN",
                      "ID",
                      "IR",
                      "IQ",
                      "IE",
                      "IM",
                      "IL",
                      "IT",
                      "JM",
                      "JP",
                      "JE",
                      "JO",
                      "KZ",
                      "KE",
                      "KI",
                      "KP",
                      "KR",
                      "XK",
                      "KW",
                      "KG",
                      "LA",
                      "LV",
                      "LB",
                      "LS",
                      "LR",
                      "LY",
                      "LI",
                      "LT",
                      "LU",
                      "MO",
                      "MK",
                      "MG",
                      "MW",
                      "MY",
                      "MV",
                      "ML",
                      "MT",
                      "MH",
                      "MQ",
                      "MR",
                      "MU",
                      "YT",
                      "MX",
                      "FM",
                      "MD",
                      "MC",
                      "MN",
                      "ME",
                      "MS",
                      "MA",
                      "MZ",
                      "MM",
                      "NA",
                      "NR",
                      "NP",
                      "NL",
                      "NC",
                      "NZ",
                      "NI",
                      "NE",
                      "NG",
                      "NU",
                      "NF",
                      "MP",
                      "NO",
                      "OM",
                      "PK",
                      "PW",
                      "PS",
                      "PA",
                      "PG",
                      "PY",
                      "PE",
                      "PH",
                      "PN",
                      "PL",
                      "PT",
                      "PR",
                      "QA",
                      "RE",
                      "RO",
                      "RU",
                      "RW",
                      "BL",
                      "SH",
                      "KN",
                      "LC",
                      "MF",
                      "PM",
                      "VC",
                      "WS",
                      "SM",
                      "ST",
                      "SA",
                      "SN",
                      "RS",
                      "SC",
                      "SL",
                      "SG",
                      "SX",
                      "SK",
                      "SI",
                      "SB",
                      "SO",
                      "ZA",
                      "GS",
                      "SS",
                      "ES",
                      "LK",
                      "SD",
                      "SR",
                      "SJ",
                      "SZ",
                      "SE",
                      "CH",
                      "SY",
                      "TW",
                      "TJ",
                      "TZ",
                      "TH",
                      "TL",
                      "TG",
                      "TK",
                      "TO",
                      "TT",
                      "TN",
                      "TR",
                      "TM",
                      "TC",
                      "TV",
                      "UG",
                      "UA",
                      "AE",
                      "GB",
                      "US",
                      "UM",
                      "UY",
                      "UZ",
                      "VU",
                      "VE",
                      "VN",
                      "VG",
                      "VI",
                      "WF",
                      "EH",
                      "YE",
                      "ZM",
                      "ZW"
                    ]
                  },
                  "region": {
                    "type": "string",
                    "nullable": true
                  },
                  "city": {
                    "type": "string",
                    "nullable": true
                  },
                  "postCode": {
                    "type": "string",
                    "nullable": true
                  },
                  "address": {
                    "type": "string",
                    "nullable": true
                  },
                  "regNo": {
                    "type": "string",
                    "nullable": true
                  },
                  "taxId": {
                    "type": "string",
                    "nullable": true
                  },
                  "phone": {
                    "type": "string",
                    "nullable": true
                  },
                  "email": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "required": [
                  "type",
                  "name",
                  "contactPerson",
                  "country",
                  "region",
                  "city",
                  "postCode",
                  "address",
                  "regNo",
                  "taxId",
                  "phone",
                  "email"
                ]
              },
              "customer": {
                "description": "Company details for the entity receiving the service - the Partner/EMSP.",
                "$ref": "#/paths/~1public-api~1resources~1partner-settlement-reports~1v1.0~1%7BpartnerSettlementReport%7D/get/responses/200/content/application~1json/schema/properties/data",
                "type": "object",
                "properties": {
                  "bankIban": {
                    "type": "string",
                    "nullable": true,
                    "description": "IBAN of the bank account."
                  },
                  "bankCode": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                  },
                  "bankAccountNumber": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank account number."
                  },
                  "bankAccountType": {
                    "type": "string",
                    "nullable": true,
                    "description": "Type of the bank account."
                  },
                  "bankBic": {
                    "type": "string",
                    "nullable": true,
                    "description": "BIC/SWIFT code of the bank."
                  }
                },
                "required": [
                  "bankIban",
                  "bankName",
                  "bankAddress",
                  "bankCode",
                  "bankAccountNumber",
                  "bankAccountType",
                  "bankAccountHolder",
                  "bankBic"
                ]
              },
              "downloadUrl": {
                "type": "string",
                "format": "url",
                "description": "Link to download the full settlement report document."
              },
              "externalId": {
                "type": "string",
                "description": "External invoice or reference ID for integration with external accounting systems."
              },
              "deductedFees": {
                "description": "Aggregated deducted fees for the settlement period. Included only when at least one fee is non-zero.",
                "type": "object",
                "properties": {
                  "feePerSessionAc": {
                    "type": "number",
                    "description": "Total fixed fee for AC sessions in the settlement period."
                  },
                  "feePerSessionDc": {
                    "type": "number",
                    "description": "Total fixed fee for DC sessions in the settlement period."
                  },
                  "feePerKwhAc": {
                    "type": "number",
                    "description": "Total fee per AC kWh delivered in the settlement period."
                  },
                  "feePerKwhDc": {
                    "type": "number",
                    "description": "Total fee per DC kWh delivered in the settlement period."
                  },
                  "handlingFee": {
                    "type": "number",
                    "description": "Total percentage-based handling fee for the settlement period."
                  }
                },
                "required": [
                  "feePerSessionAc",
                  "feePerSessionDc",
                  "feePerKwhAc",
                  "feePerKwhDc",
                  "handlingFee"
                ]
              },
              "partnerInvoiceId": {
                "type": "integer",
                "description": "Identifier of the latest issued partner invoice for this settlement report.\nOmitted when no partner invoice has been issued.\nRetained after a credit note is issued — the credit note is a separate document and the reference points at the invoice the report produced.\n"
              },
              "customFields": {
                "description": "Live custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the settlement report's current partner owner or are not visible to the acting administrator are omitted. The `customFields` property itself is omitted when no fields apply.\n\nThese values reflect the current custom field configuration and are not captured in the historical settlement report document, its party and settings snapshots, or derived partner invoices. Existing settlement report access controls continue to determine whether the report can be read; custom field visibility does not grant access to a report.\n",
                "type": "object",
                "additionalProperties": true
              }
            },
            "required": [
              "id",
              "partnerId",
              "number",
              "date",
              "periodStart",
              "periodEnd",
              "currencyCode",
              "totalAmount",
              "totalExpenses",
              "totalRevenue",
              "totalAwaitedRevenue",
              "totalCollectedRevenue",
              "totalCollectedRevenueFromPreviousPeriod",
              "totalEnergyCpoWh",
              "totalEnergyEmspWh",
              "supplier",
              "customer",
              "downloadUrl"
            ]
          }
        },
        "required": [
          "data"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerSetCustomFieldsV1_0": {
    "202": {
      "schema": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string",
                "description": "**This property is deprecated. Use `translatedName` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedName`.\n\nNote that `filter[search]` still matches the value stored in the operator's default locale.\n\nCompany name of the Partner\n",
                "deprecated": true
              },
              "translatedName": {
                "description": "Company name of the Partner in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "businessName": {
                "type": "string",
                "description": "The Partner's business name is used when showing the name of the Partner to EV drivers and admin users."
              },
              "regNo": {
                "type": "string",
                "nullable": true
              },
              "vatNo": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true,
                "description": "**This property is deprecated. Use `translatedAddress` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedAddress`.\n",
                "deprecated": true
              },
              "translatedAddress": {
                "description": "Address of the Partner in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "postcode": {
                "type": "string",
                "nullable": true
              },
              "city": {
                "type": "string",
                "nullable": true,
                "description": "**This property is deprecated. Use `translatedCity` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedCity`.\n",
                "deprecated": true
              },
              "translatedCity": {
                "description": "City of the Partner in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "country": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW",
                  null
                ]
              },
              "region": {
                "description": "When country is not in US, AU, CA, UM or RO, you can provide the region",
                "deprecated": true,
                "type": "string",
                "nullable": true
              },
              "translatedRegion": {
                "description": "Region of the Partner in every locale it has been translated to. Empty when no translations exist.\n\nAbsent from the response when the Partner's country supports states (US, AU, CA, UM, RO) — `state` applies instead and is not translatable.\n",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "state": {
                "description": "When the selected country is one of US, AU, CA, UM or RO",
                "anyOf": [
                  {
                    "title": "US State",
                    "description": "When the country is US.",
                    "type": "string",
                    "enum": [
                      "AL",
                      "AK",
                      "AS",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FM",
                      "FL",
                      "GA",
                      "GU",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MH",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "MP",
                      "OH",
                      "OK",
                      "OR",
                      "PW",
                      "PA",
                      "PR",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VI",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY"
                    ]
                  },
                  {
                    "title": "Australian State",
                    "description": "When the country is AU.",
                    "type": "string",
                    "enum": [
                      "NSW",
                      "VIC",
                      "QLD",
                      "WA",
                      "SA",
                      "TAS",
                      "ACT",
                      "NT",
                      "JBT",
                      "CX",
                      "NF",
                      "CC",
                      "AQ",
                      "CSI",
                      "ACI",
                      "HM"
                    ]
                  },
                  {
                    "title": "Canadian Province",
                    "description": "When the country is CA.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "BC",
                      "MB",
                      "NB",
                      "NL",
                      "NT",
                      "NS",
                      "NU",
                      "ON",
                      "PE",
                      "QC",
                      "SK",
                      "YT"
                    ]
                  },
                  {
                    "title": "US Minor Outlying Islands Territory",
                    "description": "When the country is UM.",
                    "type": "string",
                    "enum": [
                      "81",
                      "84",
                      "85",
                      "67",
                      "89",
                      "71",
                      "76",
                      "95",
                      "79"
                    ]
                  },
                  {
                    "title": "Romanian County",
                    "description": "When the country is RO.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "AR",
                      "AG",
                      "BC",
                      "BH",
                      "BN",
                      "BT",
                      "BV",
                      "BR",
                      "B",
                      "BZ",
                      "CL",
                      "CS",
                      "CT",
                      "CV",
                      "DB",
                      "DJ",
                      "GL",
                      "GR",
                      "GJ",
                      "HR",
                      "HD",
                      "IL",
                      "IS",
                      "IF",
                      "MM",
                      "MH",
                      "MS",
                      "NT",
                      "OT",
                      "PH",
                      "SM",
                      "SJ",
                      "SB",
                      "SV",
                      "TR",
                      "TM",
                      "TL",
                      "VS",
                      "VL",
                      "VN"
                    ]
                  }
                ]
              },
              "contactDetails": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "administrative": {
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "contactPerson": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "format": "email",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  "technical": {
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "contactPerson": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "format": "email",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  "billing": {
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "contactPerson": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "format": "email",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  }
                }
              },
              "notifications": {
                "type": "object",
                "properties": {
                  "technical": {
                    "type": "object",
                    "properties": {
                      "chargePointFaults": {
                        "type": "boolean",
                        "default": false
                      }
                    }
                  },
                  "billing": {
                    "type": "object",
                    "properties": {
                      "settlementReports": {
                        "type": "boolean",
                        "default": false
                      },
                      "settlementReportLanguage": {
                        "description": "IETF language tag.",
                        "type": "string",
                        "enum": [
                          "en",
                          "bg",
                          "mk",
                          "el",
                          "zh-CN",
                          "zh-HK",
                          "zh-TW",
                          "pt",
                          "sl",
                          "hr",
                          "it",
                          "de",
                          "hu",
                          "fi",
                          "is",
                          "sv-SE",
                          "da-DK",
                          "nb-NO",
                          "tr-TR",
                          "es-ES",
                          "ar",
                          "ary",
                          "he",
                          "ta",
                          "ms",
                          "cy",
                          "sr",
                          "fr",
                          "fr-MA",
                          "ro",
                          "lt",
                          "uk",
                          "ru",
                          "nl",
                          "ca-ES",
                          "id",
                          "ar-EG",
                          "pl",
                          "lo",
                          "th",
                          "sq-XK",
                          "ga-IE",
                          "bs",
                          "ja",
                          "ko-KR",
                          "cs",
                          "lv",
                          "et",
                          "az",
                          "ka",
                          "af",
                          "hi",
                          "de-CH",
                          "fr-CH",
                          "it-CH",
                          "en-GB"
                        ]
                      }
                    }
                  }
                }
              },
              "monthlyPlatformFee": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "receiptsPrefix": {
                "type": "string",
                "description": "Prefix used for the Partner's receipt numbering. Takes effect only when `options.supplierOnReceipts` is `true`."
              },
              "receiptsStartingNumber": {
                "type": "string",
                "pattern": "^\\d+(\\.\\d+)?$",
                "description": "Starting number for the Partner's receipt numbering. Numeric string; leading zeros are preserved. Takes effect only when `options.supplierOnReceipts` is `true`."
              },
              "invoiceNumberPrefix": {
                "type": "string",
                "minLength": 1,
                "maxLength": 10,
                "description": "Prefix used for the Partner's invoice numbering. Must be globally unique across all partner invoice prefixes, invoice integration prefixes, and previously-issued invoice prefixes. Takes effect only when `options.supplierOnInvoices` is `true`."
              },
              "startingInvoiceNumber": {
                "type": "string",
                "pattern": "^\\d+$",
                "description": "Starting number for the Partner's invoice numbering. Non-negative numeric string; leading zeros are preserved. Takes effect only when `options.supplierOnInvoices` is `true`."
              },
              "tags": {
                "type": "array",
                "description": "Tags can be used for filtering and grouping partners by tag (see the tag filter on the partners list). Partner tags are managed in the operator portal and are read-only via the API. Empty array when the partner has no tags.",
                "items": {
                  "type": "string"
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "userVisibility": {
                    "type": "string",
                    "enum": [
                      "none",
                      "all",
                      "corporateBillingOnly"
                    ],
                    "default": "none",
                    "description": "Controls which invited users are visible to Partner admins:\n- `none`: Partner admins cannot see any invited users\n- `all`: Partner admins can see all users who accepted their invite\n- `corporateBillingOnly`: Partner admins can see only users whose invite has corporate billing enabled\n"
                  },
                  "allowViewingUsersWhoAcceptedInvite": {
                    "type": "boolean",
                    "default": false,
                    "deprecated": true,
                    "description": "**Deprecated.** Use `userVisibility` instead.\nWhen enabled (`true`), maps to `userVisibility: all`. When disabled (`false`), maps to `userVisibility: none`.\nIf both `userVisibility` and `allowViewingUsersWhoAcceptedInvite` are provided, `userVisibility` takes precedence.\n"
                  },
                  "createUsers": {
                    "type": "boolean",
                    "default": false
                  },
                  "addUserBalance": {
                    "type": "boolean",
                    "default": false,
                    "description": "When set to false the API tokens related to this partner would not receive the users' balance in the response."
                  },
                  "allowViewingAllSessionsOfInvitedUsers": {
                    "type": "boolean",
                    "default": true,
                    "description": "If true, partner admins can view all sessions of users who accepted their invites. If false, partner admins can only view sessions that occurred on their charge points or were paid with their corporate billing."
                  },
                  "supplierOnReceipts": {
                    "type": "boolean",
                    "default": false
                  },
                  "supplierOnInvoices": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled, the Partner's data is used on invoices issued for sessions linked to this Partner."
                  },
                  "allowToControlTariffs": {
                    "description": "Allows the Partner to update the tariff pricing.",
                    "type": "boolean",
                    "default": false
                  },
                  "allowToControlTariffGroups": {
                    "description": "In addition to `allowToControlTariffs`, the Partner would also be able to manage Tariff Groups - attach and remove Tariffs, change Tariffs order in the Tariff Group.",
                    "type": "boolean",
                    "default": false
                  },
                  "allowToControlCpConfigurations": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allows the Partner to control configurations on their charge points."
                  },
                  "allowToLogExemptPeriods": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allows Partner admins with the Maintain permission from the DowntimePeriods permission set to log exempt periods."
                  },
                  "settlementReportBreakdown": {
                    "default": "none",
                    "description": "Controls how settlement report line items are aggregated for the Partner:\n- `none`: No breakdown, single aggregated report.\n- `by_location`: Separate breakdown per location.\n- `by_partner_contract`: Separate breakdown per partner contract.\n- `by_location_and_partner_contract`: Breakdown by both location and partner contract.\n",
                    "type": "string",
                    "enum": [
                      "none",
                      "by_location",
                      "by_partner_contract",
                      "by_location_and_partner_contract"
                    ]
                  }
                }
              },
              "corporateBilling": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": false
                  },
                  "monthlyLimit": {
                    "type": "number",
                    "format": "decimal",
                    "deprecated": true,
                    "description": "**Deprecated.** Use `limit` with `frequency` instead.\nThis field returns the same value as `limit` when `frequency` is 'monthly'.\n"
                  },
                  "frequency": {
                    "type": "string",
                    "enum": [
                      "monthly",
                      "quarterly",
                      "semiAnnually",
                      "annually"
                    ],
                    "description": "The billing frequency for the limit."
                  },
                  "limit": {
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "description": "The billing limit for the specified frequency."
                  },
                  "discount": {
                    "type": "number",
                    "format": "decimal"
                  }
                }
              },
              "reimbursement": {
                "description": "Home-charging reimbursement settings of the Partner.\n\nOmitted when the home-charging reimbursement feature is disabled.\n\n`payoutMode` is always present; it defaults to `operator_managed` until it is changed.\n",
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "Whether home-charging reimbursement is enabled for the Partner.\n\nDisabling it stops future reimbursement for the Partner. The reimbursement policies that are currently active for it remain attached but become ineligible, and the invites attached to them stop producing reimbursement records. Reimbursement records and reports that already exist are not affected.\n"
                  },
                  "payoutMode": {
                    "description": "Determines who pays out the home-charging reimbursement to the drivers:\n- **operator_managed**: The operator handles the payouts on behalf of the Partner.\n- **partner_managed**: The Partner handles the payouts to their own drivers.\n",
                    "type": "string",
                    "enum": [
                      "operator_managed",
                      "partner_managed"
                    ]
                  },
                  "cycle": {
                    "description": "How often the home-charging reimbursement is calculated and reported:\n- **monthly**: Reimbursement is processed every month.\n- **quarterly**: Reimbursement is processed every three months.\n- **annual**: Reimbursement is processed every year.\n",
                    "type": "string",
                    "enum": [
                      "monthly",
                      "quarterly",
                      "annual"
                    ]
                  }
                },
                "required": [
                  "enabled",
                  "payoutMode"
                ]
              },
              "externalId": {
                "type": "string",
                "nullable": true,
                "description": "Third party identifier of the partner"
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "bankDetails": {
                "type": "object",
                "properties": {
                  "bankIban": {
                    "type": "string",
                    "nullable": true,
                    "description": "IBAN of the bank account."
                  },
                  "bankCode": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                  },
                  "bankAccountNumber": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank account number."
                  },
                  "bankAccountType": {
                    "type": "string",
                    "nullable": true,
                    "description": "Type of the bank account."
                  },
                  "bankBic": {
                    "type": "string",
                    "nullable": true,
                    "description": "BIC/SWIFT code of the bank."
                  },
                  "bankName": {
                    "type": "string",
                    "nullable": true,
                    "description": "**This property is deprecated. Use `translatedBankName` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedBankName`.\n\nName of the bank.\n",
                    "deprecated": true
                  },
                  "bankAddress": {
                    "type": "string",
                    "nullable": true,
                    "description": "**This property is deprecated. Use `translatedBankAddress` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedBankAddress`.\n\nAddress of the bank.\n",
                    "deprecated": true
                  },
                  "bankAccountHolder": {
                    "type": "string",
                    "nullable": true,
                    "description": "**This property is deprecated. Use `translatedBankAccountHolder` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedBankAccountHolder`.\n\nName of the bank account holder.\n",
                    "deprecated": true
                  },
                  "translatedBankName": {
                    "description": "Name of the bank in every locale it has been translated to. Empty when no translations exist.\n\nReturned only when the bank name field is enabled in the operator's bank details settings.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "translatedBankAddress": {
                    "description": "Address of the bank in every locale it has been translated to. Empty when no translations exist.\n\nReturned only when the bank address field is enabled in the operator's bank details settings.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "translatedBankAccountHolder": {
                    "description": "Name of the bank account holder in every locale it has been translated to. Empty when no translations exist.\n\nReturned only when the bank account holder field is enabled in the operator's bank details settings.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              },
              "customFields": {
                "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: boolean is a JSON boolean; text and long text are strings; email is an email-formatted string; URL is an HTTP or HTTPS URL string; number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; date is an ISO 8601 `YYYY-MM-DD` string; date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the partner are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                "type": "object",
                "additionalProperties": true
              },
              "notes": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "summary",
                    "pinned",
                    "createdAt",
                    "updatedAt"
                  ],
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Unique identifier for the note",
                      "example": 123
                    },
                    "summary": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "Short summary or title of the note",
                      "example": "Important maintenance note"
                    },
                    "details": {
                      "type": "string",
                      "maxLength": 2000,
                      "description": "Detailed content of the note. Omitted when empty.",
                      "example": "This charge point requires monthly inspection due to high usage."
                    },
                    "pinned": {
                      "type": "boolean",
                      "description": "Whether the note is pinned (appears first in listings)",
                      "example": true
                    },
                    "createdByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who created the note. Omitted when unavailable.",
                      "example": 1
                    },
                    "updatedByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                      "example": 2
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was created",
                      "example": "2025-12-16T10:00:00Z"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was last updated",
                      "example": "2025-12-16T12:00:00Z"
                    }
                  }
                },
                "description": "If `include[]=notes` is provided with the request, the notes attached to this partner will be provided here. Notes are returned with pinned notes first, then ordered by creation date descending."
              }
            },
            "required": [
              "id",
              "operatorId",
              "name",
              "translatedName",
              "translatedAddress",
              "translatedCity"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "paymentTerminalSetCustomFields": {
    "202": {
      "schema": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "object",
            "oneOf": [
              {
                "title": "Payter on Location",
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "displayTextTimeout": {
                    "type": "integer"
                  },
                  "displayText": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string",
                    "description": "An optional external identifier for the terminal that can be used to reference it in external systems."
                  },
                  "preauthorizeAmount": {
                    "type": "number",
                    "description": "Provide a Pre-authorize amount when the terminal is linked to a single charger"
                  },
                  "currencyId": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "valueAddedTaxId": {
                    "type": "integer",
                    "readOnly": true,
                    "deprecated": true,
                    "description": "**This property is deprecated and will be removed on Fri, 01 Jan 2027.**\nTax for payment terminals is derived from the operator's tax rules; when tax rules are disabled it falls back to the tariff's default tax, or to the operator's base tax when no tariff is assigned. Any value sent in create/update requests is accepted but ignored. Previously persisted values are still returned for backward compatibility but have no effect on billing.\n"
                  },
                  "transactionTimeout": {
                    "type": "integer",
                    "description": "Provide a transaction timeout when the terminal is linked to a Location"
                  },
                  "isOnline": {
                    "type": "boolean",
                    "nullable": true,
                    "deprecated": true,
                    "description": "Use `networkStatus` instead"
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "customFields": {
                    "readOnly": true,
                    "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the payment terminal are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                    "type": "object",
                    "additionalProperties": true
                  }
                },
                "required": [
                  "id",
                  "name",
                  "defaultLanguage",
                  "serialNumber",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ]
              },
              {
                "title": "Valina",
                "type": "object",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId",
                  "darkThemePrimaryColor",
                  "darkThemeSecondaryColor",
                  "darkThemeTertiaryColor",
                  "lightThemePrimaryColor",
                  "lightThemeSecondaryColor",
                  "lightThemeTertiaryColor",
                  "phone",
                  "defaultLanguage",
                  "info"
                ],
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "isOnline": {
                    "type": "boolean",
                    "readOnly": true,
                    "deprecated": true,
                    "description": "Use `networkStatus` instead"
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "bundle": {
                    "type": "object",
                    "readOnly": true,
                    "properties": {
                      "version": {
                        "type": "string",
                        "example": [
                          "1.0.0",
                          "1.0.1",
                          "2.1.0"
                        ],
                        "description": "The target OTA bundle version configured for this terminal (terminal-level override if set, otherwise the integration default). Pairs with `currentBundleVersion`, which reflects the version actually running on the device."
                      },
                      "downloadUrl": {
                        "type": "string",
                        "description": "Download link to the archived (zip) bundle version."
                      }
                    }
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "simplifiedJourneyMode": {
                    "type": "string",
                    "enum": [
                      "off",
                      "evseList",
                      "screensaver"
                    ],
                    "default": "off",
                    "description": "Simplified journey mode for the terminal app:\n- **off**: Standard multi-step journey (default)\n- **evseList**: Driver selects an EVSE from a list on the terminal\n- **screensaver**: Passive branded display; terminal auto-triggers pre-authorization when an EVSE enters Preparing status\n",
                    "example": "off"
                  },
                  "screensaverWelcomeMessage": {
                    "description": "Translatable welcome message shown on the terminal's screensaver. Returned only when `simplifiedJourneyMode` is `screensaver`. The response value is resolved per field through a three-layer cascade: the per-terminal value if set, otherwise the integration-level default configured on the Worldline Valina/Castles integration, otherwise the property is omitted (the Terminal app falls back to its shipped default). Each translation is capped at 100 characters.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "screensaverPaymentMethods": {
                    "type": "array",
                    "maxItems": 8,
                    "items": {
                      "type": "string",
                      "enum": [
                        "visa",
                        "mastercard",
                        "paypal",
                        "maestro",
                        "amex",
                        "bancontact",
                        "cartes_bancaires",
                        "diners_club",
                        "discover",
                        "interac",
                        "jcb",
                        "mada",
                        "visa_electron",
                        "applepay",
                        "googlepay",
                        "twint"
                      ],
                      "description": "Payment method icon displayed on the terminal's screensaver. Values cover supported card networks and digital wallet types.\n"
                    },
                    "description": "Ordered list of payment-method icons displayed on the terminal's screensaver. Returned only when `simplifiedJourneyMode` is `screensaver`. The response value is resolved per field through a three-layer cascade: the per-terminal value if set, otherwise the integration-level default configured on the Worldline Valina/Castles integration, otherwise the property is omitted (the Terminal app resolves the icon list at boot).\n"
                  },
                  "screensaverLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded screensaver logo asset. Returned only when `simplifiedJourneyMode` is `screensaver`. The response value is resolved per field through a three-layer cascade: the per-terminal value if set, otherwise the integration-level default configured on the Worldline Valina/Castles integration, otherwise the property is omitted (the Terminal app falls back to its shipped default).\n"
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "invoiceDetailsMandatory": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "The terminal ID assigned by the acquirer."
                  },
                  "terminalModel": {
                    "type": "string",
                    "description": "The hardware model reported by the terminal."
                  },
                  "currentBundleVersion": {
                    "type": "string",
                    "description": "The bundle version currently running on the terminal."
                  },
                  "lastCertifiedAppVersion": {
                    "type": "string",
                    "description": "The last certified app version reported by the terminal."
                  },
                  "themeMode": {
                    "type": "string",
                    "enum": [
                      "dark",
                      "light",
                      "auto"
                    ],
                    "readOnly": true,
                    "description": "Color scheme configured for the terminal app. Defaults to `dark` when unset.\n- **dark**: Light text on a dark background (default).\n- **light**: Dark text on a light background.\n- **auto**: Shows the light theme during the day and the dark theme at night, based on the terminal's local time.\n",
                    "example": "dark"
                  },
                  "darkThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the dark theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "darkThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the dark theme, as a hex value. When no value is set, the platform default `#262D40` is returned."
                  },
                  "darkThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the dark theme, as a hex value. When no value is set, the platform default `#1A1E2B` is returned."
                  },
                  "darkThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the dark theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  },
                  "lightThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the light theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "lightThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the light theme, as a hex value. When no value is set, the platform default `#FFFFFF` is returned."
                  },
                  "lightThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the light theme, as a hex value. When no value is set, the platform default `#EDF1F7` is returned."
                  },
                  "lightThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the light theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  },
                  "customFields": {
                    "readOnly": true,
                    "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the payment terminal are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              {
                "title": "Crane",
                "type": "object",
                "required": [
                  "serialNumber",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "customFields": {
                    "readOnly": true,
                    "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the payment terminal are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              {
                "title": "Generic",
                "type": "object",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "webhookUrl": {
                    "type": "string",
                    "nullable": true,
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "customFields": {
                    "readOnly": true,
                    "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the payment terminal are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              {
                "title": "Nayax",
                "type": "object",
                "required": [
                  "terminalId",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "This is the Device Number of the relevant Nayax terminal that is set up in the Nayax system. Please be careful to add the correct Device number on the relevant terminal."
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "customFields": {
                    "readOnly": true,
                    "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the payment terminal are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              {
                "title": "Embedded",
                "type": "object",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "customFields": {
                    "readOnly": true,
                    "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the payment terminal are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              {
                "title": "Pax",
                "type": "object",
                "required": [
                  "verificationCode",
                  "defaultLanguage",
                  "info",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "verificationCode": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "customFields": {
                    "readOnly": true,
                    "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the payment terminal are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              {
                "title": "Windcave",
                "type": "object",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "customFields": {
                    "readOnly": true,
                    "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the payment terminal are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              {
                "title": "Web portal",
                "type": "object",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "invoiceDetailsMandatory": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                  },
                  "customFields": {
                    "readOnly": true,
                    "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the payment terminal are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              {
                "title": "AdyenCastles",
                "type": "object",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "merchantAccount",
                  "adyenApiKey",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId",
                  "darkThemePrimaryColor",
                  "darkThemeSecondaryColor",
                  "darkThemeTertiaryColor",
                  "lightThemePrimaryColor",
                  "lightThemeSecondaryColor",
                  "lightThemeTertiaryColor"
                ],
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "merchantAccount": {
                    "type": "string",
                    "description": "Unique identifier of the merchant in Adyen's portal"
                  },
                  "adyenApiKey": {
                    "type": "string",
                    "description": "API key to authenticate requests to Adyen"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "invoiceDetailsMandatory": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "The terminal ID assigned by the acquirer."
                  },
                  "terminalModel": {
                    "type": "string",
                    "description": "The hardware model reported by the terminal."
                  },
                  "currentBundleVersion": {
                    "type": "string",
                    "description": "The bundle version currently running on the terminal."
                  },
                  "lastCertifiedAppVersion": {
                    "type": "string",
                    "description": "The last certified app version reported by the terminal."
                  },
                  "themeMode": {
                    "type": "string",
                    "enum": [
                      "dark",
                      "light",
                      "auto"
                    ],
                    "readOnly": true,
                    "description": "Color scheme configured for the terminal app. Defaults to `dark` when unset.\n- **dark**: Light text on a dark background (default).\n- **light**: Dark text on a light background.\n- **auto**: Shows the light theme during the day and the dark theme at night, based on the terminal's local time.\n",
                    "example": "dark"
                  },
                  "darkThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the dark theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "darkThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the dark theme, as a hex value. When no value is set, the platform default `#262D40` is returned."
                  },
                  "darkThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the dark theme, as a hex value. When no value is set, the platform default `#1A1E2B` is returned."
                  },
                  "darkThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the dark theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  },
                  "lightThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the light theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "lightThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the light theme, as a hex value. When no value is set, the platform default `#FFFFFF` is returned."
                  },
                  "lightThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the light theme, as a hex value. When no value is set, the platform default `#EDF1F7` is returned."
                  },
                  "lightThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the light theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  },
                  "customFields": {
                    "readOnly": true,
                    "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the payment terminal are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              {
                "title": "Printec Castles",
                "type": "object",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId",
                  "darkThemePrimaryColor",
                  "darkThemeSecondaryColor",
                  "darkThemeTertiaryColor",
                  "lightThemePrimaryColor",
                  "lightThemeSecondaryColor",
                  "lightThemeTertiaryColor",
                  "phone",
                  "defaultLanguage",
                  "info"
                ],
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "countryCode": {
                    "type": "string",
                    "description": "ISO 3166-1 alpha-2 country code",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "bundle": {
                    "type": "object",
                    "readOnly": true,
                    "properties": {
                      "version": {
                        "type": "string",
                        "example": [
                          "1.0.0",
                          "1.0.1",
                          "2.1.0"
                        ],
                        "description": "The target OTA bundle version configured for this terminal (terminal-level override if set, otherwise the integration default). Pairs with `currentBundleVersion`, which reflects the version actually running on the device."
                      },
                      "downloadUrl": {
                        "type": "string",
                        "description": "Download link to the archived (zip) bundle version."
                      }
                    }
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "invoiceDetailsMandatory": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "The terminal ID assigned by the acquirer."
                  },
                  "terminalModel": {
                    "type": "string",
                    "description": "The hardware model reported by the terminal."
                  },
                  "currentBundleVersion": {
                    "type": "string",
                    "description": "The bundle version currently running on the terminal."
                  },
                  "lastCertifiedAppVersion": {
                    "type": "string",
                    "description": "The last certified app version reported by the terminal."
                  },
                  "themeMode": {
                    "type": "string",
                    "enum": [
                      "dark",
                      "light",
                      "auto"
                    ],
                    "readOnly": true,
                    "description": "Color scheme configured for the terminal app. Defaults to `dark` when unset.\n- **dark**: Light text on a dark background (default).\n- **light**: Dark text on a light background.\n- **auto**: Shows the light theme during the day and the dark theme at night, based on the terminal's local time.\n",
                    "example": "dark"
                  },
                  "darkThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the dark theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "darkThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the dark theme, as a hex value. When no value is set, the platform default `#262D40` is returned."
                  },
                  "darkThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the dark theme, as a hex value. When no value is set, the platform default `#1A1E2B` is returned."
                  },
                  "darkThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the dark theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  },
                  "lightThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the light theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "lightThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the light theme, as a hex value. When no value is set, the platform default `#FFFFFF` is returned."
                  },
                  "lightThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the light theme, as a hex value. When no value is set, the platform default `#EDF1F7` is returned."
                  },
                  "lightThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the light theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  },
                  "customFields": {
                    "readOnly": true,
                    "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the payment terminal are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              {
                "title": "Cardlink Castles",
                "type": "object",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId",
                  "darkThemePrimaryColor",
                  "darkThemeSecondaryColor",
                  "darkThemeTertiaryColor",
                  "lightThemePrimaryColor",
                  "lightThemeSecondaryColor",
                  "lightThemeTertiaryColor",
                  "phone",
                  "defaultLanguage",
                  "info"
                ],
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "isOnline": {
                    "type": "boolean",
                    "readOnly": true,
                    "deprecated": true,
                    "description": "Use `networkStatus` instead"
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "bundle": {
                    "type": "object",
                    "readOnly": true,
                    "properties": {
                      "version": {
                        "type": "string",
                        "example": [
                          "1.0.0",
                          "1.0.1",
                          "2.1.0"
                        ],
                        "description": "The target OTA bundle version configured for this terminal (terminal-level override if set, otherwise the integration default). Pairs with `currentBundleVersion`, which reflects the version actually running on the device."
                      },
                      "downloadUrl": {
                        "type": "string",
                        "description": "Download link to the archived (zip) bundle version."
                      }
                    }
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "invoiceDetailsMandatory": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "The terminal ID assigned by the acquirer."
                  },
                  "terminalModel": {
                    "type": "string",
                    "description": "The hardware model reported by the terminal."
                  },
                  "currentBundleVersion": {
                    "type": "string",
                    "description": "The bundle version currently running on the terminal."
                  },
                  "lastCertifiedAppVersion": {
                    "type": "string",
                    "description": "The last certified app version reported by the terminal."
                  },
                  "themeMode": {
                    "type": "string",
                    "enum": [
                      "dark",
                      "light",
                      "auto"
                    ],
                    "readOnly": true,
                    "description": "Color scheme configured for the terminal app. Defaults to `dark` when unset.\n- **dark**: Light text on a dark background (default).\n- **light**: Dark text on a light background.\n- **auto**: Shows the light theme during the day and the dark theme at night, based on the terminal's local time.\n",
                    "example": "dark"
                  },
                  "darkThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the dark theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "darkThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the dark theme, as a hex value. When no value is set, the platform default `#262D40` is returned."
                  },
                  "darkThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the dark theme, as a hex value. When no value is set, the platform default `#1A1E2B` is returned."
                  },
                  "darkThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the dark theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  },
                  "lightThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the light theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "lightThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the light theme, as a hex value. When no value is set, the platform default `#FFFFFF` is returned."
                  },
                  "lightThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the light theme, as a hex value. When no value is set, the platform default `#EDF1F7` is returned."
                  },
                  "lightThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the light theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  },
                  "customFields": {
                    "readOnly": true,
                    "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the payment terminal are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              }
            ],
            "discriminator": {
              "propertyName": "terminalType"
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "certificateIssueAnEmaid": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "reimbursementRecordIssueCredit": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Reimbursement record read schema. A record is one immutable computed reimbursement entry for a single charging session, and has no write surface. Reversing (credit) records are records too — they carry negated amounts and point at the record they reverse.\n",
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "Identifier of this reimbursement record."
              },
              "operatorId": {
                "type": "integer",
                "description": "Operator the record belongs to, as exposed by the operators resource."
              },
              "sessionId": {
                "type": "integer",
                "description": "Charging session the reimbursement was computed for, as exposed by the sessions resource. Reversing (credit) records repeat the reversed record's session."
              },
              "beneficiary": {
                "description": "Party the reimbursement is owed to.\n",
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "integer",
                    "description": "User the reimbursement is owed to, as exposed by the users resource."
                  }
                }
              },
              "payer": {
                "description": "Party that owes the reimbursement. Company reimbursements carry `partnerId` (and `partnerContractId` when the payment is governed by a partner contract); public reimbursements carry `operatorId`.\n",
                "type": "object",
                "properties": {
                  "partnerId": {
                    "type": "integer",
                    "description": "Partner paying the reimbursement. Present on company reimbursements."
                  },
                  "partnerContractId": {
                    "type": "integer",
                    "description": "Partner contract the reimbursement is settled under. Present when the paying partner has a contract."
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "Operator paying the reimbursement. Present on public reimbursements."
                  }
                }
              },
              "reimbursementPolicyId": {
                "type": "integer",
                "description": "Reimbursement policy whose terms were applied when the amount was computed. Omitted when no policy governed the session."
              },
              "energy": {
                "type": "integer",
                "description": "Reimbursed energy in Wh."
              },
              "rate": {
                "type": "number",
                "format": "float",
                "description": "Monetary rate per kWh applied when computing the reimbursement amount, in the record currency. Its origin is given by `electricityRateSource`. Omitted, together with `electricityRateSource`, on records computed before the platform required a resolved rate; such records are no longer produced."
              },
              "electricityRateSource": {
                "description": "Origin of the per-kWh rate used to reimburse a home-charging session:\n- **policy**: The electricity rate linked to the policy provides the rate. `electricityRateId` is required and must belong to the same operator as the policy.\n- **charge_point**: The electricity rate assigned to the personal charge point provides the rate, whichever surface assigned it. `electricityRateId` must not be set on the policy.\n- **integration**: An integration resolves the electricity rate — for example by the charge point's region. The integration and its region-to-rate bindings are configured in the admin panel. `electricityRateId` is not set on the policy.\n",
                "type": "string",
                "enum": [
                  "policy",
                  "charge_point",
                  "integration"
                ]
              },
              "taxBasis": {
                "description": "How tax was applied when the reimbursement amount was computed:\n- **exempt**: No tax was applied. The amount is identical with and without tax.\n- **percentage**: Tax was applied as a percentage of the net amount — see `taxPercentage`.\n- **flat_amount**: Tax was applied as a fixed amount per record, independent of the reimbursed energy.\n- **compound**: Tax was applied as a combination of a percentage and a fixed component.\n",
                "type": "string",
                "enum": [
                  "exempt",
                  "percentage",
                  "flat_amount",
                  "compound"
                ]
              },
              "taxPercentage": {
                "type": "number",
                "format": "float",
                "description": "Tax percentage applied to the reimbursement amount. Present when the applied `taxBasis` carries a percentage component; omitted when no tax percentage could be resolved."
              },
              "amount": {
                "description": "Reimbursement amount, split by tax inclusion. Reversing (credit) records carry negated amounts.",
                "type": "object",
                "properties": {
                  "withTax": {
                    "type": "number"
                  },
                  "withoutTax": {
                    "type": "number"
                  }
                },
                "required": [
                  "withTax"
                ]
              },
              "currency": {
                "description": "ISO 4217 currency code for the record's monetary amounts.",
                "type": "string",
                "enum": [
                  "AED",
                  "AFN",
                  "ALL",
                  "AMD",
                  "ANG",
                  "AOA",
                  "ARS",
                  "AUD",
                  "AWG",
                  "AZN",
                  "BAM",
                  "BBD",
                  "BDT",
                  "BGN",
                  "BHD",
                  "BIF",
                  "BMD",
                  "BND",
                  "BOB",
                  "BOV",
                  "BRL",
                  "BSD",
                  "BTN",
                  "BWP",
                  "BYN",
                  "BZD",
                  "CAD",
                  "CDF",
                  "CHE",
                  "CHF",
                  "CHW",
                  "CLF",
                  "CLP",
                  "CNY",
                  "COP",
                  "COU",
                  "CRC",
                  "CUC",
                  "CUP",
                  "CVE",
                  "CZK",
                  "DJF",
                  "DKK",
                  "DOP",
                  "DZD",
                  "EGP",
                  "ERN",
                  "ETB",
                  "EUR",
                  "FJD",
                  "FKP",
                  "GBP",
                  "GEL",
                  "GHS",
                  "GIP",
                  "GMD",
                  "GNF",
                  "GTQ",
                  "GYD",
                  "HKD",
                  "HNL",
                  "HRK",
                  "HTG",
                  "HUF",
                  "IDR",
                  "ILS",
                  "INR",
                  "IQD",
                  "IRR",
                  "ISK",
                  "JMD",
                  "JOD",
                  "JPY",
                  "KES",
                  "KGS",
                  "KHR",
                  "KMF",
                  "KPW",
                  "KRW",
                  "KWD",
                  "KYD",
                  "KZT",
                  "LAK",
                  "LBP",
                  "LKR",
                  "LRD",
                  "LSL",
                  "LYD",
                  "MAD",
                  "MDL",
                  "MGA",
                  "MKD",
                  "MMK",
                  "MNT",
                  "MOP",
                  "MRU",
                  "MUR",
                  "MVR",
                  "MWK",
                  "MXN",
                  "MXV",
                  "MYR",
                  "MZN",
                  "NAD",
                  "NGN",
                  "NIO",
                  "NOK",
                  "NPR",
                  "NZD",
                  "OMR",
                  "PAB",
                  "PEN",
                  "PGK",
                  "PHP",
                  "PKR",
                  "PLN",
                  "PYG",
                  "QAR",
                  "RON",
                  "RSD",
                  "RUB",
                  "RWF",
                  "SAR",
                  "SBD",
                  "SCR",
                  "SDG",
                  "SEK",
                  "SGD",
                  "SHP",
                  "SLL",
                  "SOS",
                  "SRD",
                  "SSP",
                  "STN",
                  "SVC",
                  "SYP",
                  "SZL",
                  "THB",
                  "TJS",
                  "TMT",
                  "TND",
                  "TOP",
                  "TRY",
                  "TTD",
                  "TWD",
                  "TZS",
                  "UAH",
                  "UGX",
                  "USD",
                  "USN",
                  "UYI",
                  "UYU",
                  "UYW",
                  "UZS",
                  "VES",
                  "VND",
                  "VUV",
                  "WST",
                  "XAF",
                  "XAG",
                  "XAU",
                  "XBA",
                  "XBB",
                  "XBC",
                  "XBD",
                  "XCD",
                  "XDR",
                  "XOF",
                  "XPD",
                  "XPF",
                  "XPT",
                  "XSU",
                  "XTS",
                  "XUA",
                  "XXX",
                  "YER",
                  "ZAR",
                  "ZMW",
                  "ZWL"
                ]
              },
              "periodStartsOn": {
                "description": "Uses the YYYY-MM-DD date format.",
                "type": "string",
                "format": "date"
              },
              "periodEndsOn": {
                "description": "Uses the YYYY-MM-DD date format.",
                "type": "string",
                "format": "date"
              },
              "credit": {
                "description": "Reversal this record carries out. Present only on reversing (credit) records.\n",
                "type": "object",
                "properties": {
                  "reimbursementRecordId": {
                    "type": "integer",
                    "description": "Reimbursement record this record reverses, as exposed by this same resource."
                  },
                  "reason": {
                    "type": "string",
                    "description": "Reason the reversal was issued, as supplied when the credit was requested."
                  }
                }
              },
              "creditedByReimbursementRecordId": {
                "type": "integer",
                "description": "Reversing (credit) record that reverses this record, as exposed by this same resource. Omitted when this record has not been reversed."
              },
              "authUserId": {
                "type": "integer",
                "description": "User whose credential authorized the charging session, as exposed by the users resource. `effectiveUserId` differs from it when the session's vehicle belongs to the charge point owner and the reimbursement was attributed to that owner instead."
              },
              "effectiveUserId": {
                "type": "integer",
                "description": "User the session was attributed to for reimbursement purposes, as exposed by the users resource. Equal to `beneficiary.userId` on company reimbursements; on public reimbursements the beneficiary is the charge point owner while the effective user is the driver."
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "sessionId",
              "energy",
              "taxBasis",
              "amount",
              "periodStartsOn",
              "periodEndsOn",
              "createdAt",
              "updatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "reimbursementReportRegenerate": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "reservationCancel": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "roamingEmspAssignPartner": {
    "202": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "operatorId": {
                "type": "integer",
                "description": "ID of the platform operator this row belongs to."
              },
              "partnerId": {
                "type": "integer",
                "nullable": true,
                "description": "ID of the partner assigned to the EMSP for this operator, or `null` if none is assigned."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "operatorId",
              "partnerId",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "updateCustomTariffFilterTariff": {
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "sessionAssignToUser": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "sessionChangeTariff": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "sessionRetryPayment": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "sessionSetCustomFields": {
    "202": {
      "schema": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "object",
            "description": "Charging session",
            "properties": {
              "id": {
                "type": "string"
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "chargePointId": {
                "type": "integer"
              },
              "evseId": {
                "type": "integer"
              },
              "connectorId": {
                "type": "integer",
                "nullable": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "unknown",
                  "pending",
                  "active",
                  "finished",
                  "failed",
                  "expired"
                ],
                "description": "Charging session status:\n- **unknown**: Session status could not be determined\n- **pending**: Session is pending and has not started yet\n- **active**: Session is currently in progress\n- **finished**: Session has completed successfully\n- **failed**: Session has failed\n- **expired**: Session has expired\n",
                "example": "finished"
              },
              "reason": {
                "type": "string",
                "enum": [
                  "working_hours_exceeded",
                  "timeout",
                  "authorization_amount_reached",
                  "new_start_transaction_received",
                  "force_stop",
                  "standard_stop",
                  "energy_exceeded",
                  "schedule_completed",
                  "pre_authorization_failed",
                  "system_force_stop",
                  "time_limit",
                  "balance_exceeded",
                  "deauthorized",
                  "emergencystop",
                  "energylimitreached",
                  "evdisconnected",
                  "groundfault",
                  "immediatereset",
                  "hardreset",
                  "local",
                  "localoutofcredit",
                  "masterpass",
                  "other",
                  "plug_and_charge",
                  "overcurrentfault",
                  "powerloss",
                  "powerquality",
                  "reboot",
                  "remote",
                  "soclimitreached",
                  "stoppedbyev",
                  "timeoutlimitreached",
                  "softreset",
                  "unlockcommand",
                  "no_ev_parked",
                  "no_ev_connected",
                  "charge_point_timeout",
                  "charging_on_evse_not_allowed",
                  "remote_start_failed",
                  "no_user_for_agile_streets",
                  "rejected",
                  "canceled_reservation",
                  "evse_occupied",
                  "evse_inoperative",
                  "failed",
                  "not_supported",
                  "unknown_reservation",
                  "ev_not_connected_to_evse",
                  "authorization_failed",
                  "unknown_session"
                ],
                "description": "The reason why the session expired or has been stopped."
              },
              "userId": {
                "type": "integer",
                "nullable": true,
                "description": "The id of the user that started the session"
              },
              "vehicleId": {
                "type": "integer",
                "description": "ID of the vehicle associated with the session."
              },
              "bookingId": {
                "type": "integer",
                "description": "The ID of the linked booking (if any)"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time"
              },
              "startedOffline": {
                "type": "boolean",
                "description": "Indicates whether the session was started while the charge point was offline."
              },
              "stoppedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "energy": {
                "deprecated": true,
                "type": "number",
                "description": "Delivered energy in Wh"
              },
              "powerKw": {
                "deprecated": true,
                "type": "number",
                "description": "This field representing the current charging speed in kilowatts is deprecated. Use the `power.latest` property instead for charging power information."
              },
              "socPercent": {
                "type": "number",
                "description": "State of charge (in %). Optional."
              },
              "amount": {
                "type": "number",
                "format": "decimal",
                "nullable": true,
                "deprecated": true
              },
              "totalAmount": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "withTax": {
                    "type": "number"
                  },
                  "withoutTax": {
                    "type": "number"
                  }
                },
                "required": [
                  "withTax"
                ]
              },
              "corporateBilling": {
                "type": "object",
                "description": "Corporate billing breakdown for the session. This object and the related corporate-billing fields are part of the experimental corporate-billing feature surface. While that feature is experimental, these fields may change in place without a version bump. Consumers should treat these fields as evaluation-only unless coordinated with their account manager.\n",
                "properties": {
                  "policySnapshotId": {
                    "type": "integer",
                    "description": "Corporate billing policy snapshot used for the session."
                  },
                  "chargerType": {
                    "type": "string",
                    "enum": [
                      "ac",
                      "dc"
                    ],
                    "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
                  },
                  "chargerTypeCoverageType": {
                    "type": "string",
                    "enum": [
                      "full_coverage",
                      "limited_coverage",
                      "not_covered"
                    ],
                    "description": "Charger type coverage type:\n- **full_coverage**: The policy covers eligible costs for this charger type without tariff thresholds\n- **limited_coverage**: The policy covers eligible costs for this charger type only within configured limits\n- **not_covered**: The policy does not cover sessions on this charger type\n"
                  },
                  "corporateAmount": {
                    "description": "Tax-aware amount billed to the corporate coverage order, with gross and net totals from the order.",
                    "type": "object",
                    "properties": {
                      "withTax": {
                        "type": "number"
                      },
                      "withoutTax": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "withTax"
                    ]
                  },
                  "driverAmount": {
                    "description": "Tax-aware amount billed to the EV driver's excess order, with gross and net totals from the order.",
                    "type": "object",
                    "properties": {
                      "withTax": {
                        "type": "number"
                      },
                      "withoutTax": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "withTax"
                    ]
                  },
                  "blendedCostPerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Session's computed blended cost per kWh."
                  },
                  "isOverallCostCapApplied": {
                    "type": "boolean",
                    "description": "Whether the policy's overall cost-per-kWh cap reduced coverage."
                  },
                  "restrictionCause": {
                    "description": "Corporate billing restriction dimension that withheld coverage for the session:\n- **partner**: A partner restriction prevented corporate billing from covering the session\n- **country**: A country restriction prevented corporate billing from covering the session\n- **location**: A location restriction prevented corporate billing from covering the session\n- **location_tag**: A location tag restriction prevented corporate billing from covering the session\n- **roaming**: A roaming restriction prevented corporate billing from covering the session\n",
                    "type": "string",
                    "enum": [
                      "partner",
                      "country",
                      "location",
                      "location_tag",
                      "roaming"
                    ]
                  },
                  "breakdown": {
                    "type": "array",
                    "description": "Per-component tax-aware amounts for public corporate billing component types only: energy, idle_time, connection, and charging_time. The corporateAmount and driverAmount fields are gross and net totals sourced from matching corporate coverage and EV driver excess order items. Other persisted fee types, such as min_price, are not included, so this breakdown can be partial and may not sum to the order-level corporateAmount and driverAmount totals.\n",
                    "items": {
                      "type": "object",
                      "description": "Per-component tax-aware corporate billing amounts for one supported public corporate billing component type.",
                      "properties": {
                        "componentType": {
                          "type": "string",
                          "enum": [
                            "energy",
                            "idle_time",
                            "connection",
                            "charging_time"
                          ],
                          "description": "Corporate billing tariff component type:\n- **energy**: Energy charges based on consumed kWh\n- **idle_time**: Idle-time charges after charging has stopped or exceeded the configured idle threshold\n- **connection**: Connection charges for starting or maintaining the session connection\n- **charging_time**: Charging-time charges based on the active charging duration\n"
                        },
                        "corporateAmount": {
                          "description": "Tax-aware component amount billed to the corporate coverage order, with gross and net totals from matching order items.",
                          "type": "object",
                          "properties": {
                            "withTax": {
                              "type": "number"
                            },
                            "withoutTax": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "withTax"
                          ]
                        },
                        "driverAmount": {
                          "description": "Tax-aware component amount billed to the EV driver's excess order, with gross and net totals from matching order items.",
                          "type": "object",
                          "properties": {
                            "withTax": {
                              "type": "number"
                            },
                            "withoutTax": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "withTax"
                          ]
                        }
                      },
                      "required": [
                        "componentType",
                        "corporateAmount",
                        "driverAmount"
                      ]
                    }
                  }
                },
                "required": [
                  "policySnapshotId"
                ]
              },
              "discounts": {
                "type": "array",
                "description": "Per-type discount breakdown for the session, aggregated across all price-breakdown rows. Omitted when no discount data is available.",
                "items": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "subsidy",
                        "corporate"
                      ],
                      "description": "Type of an individual discount entry.\n- **subsidy**: energy-fee subsidy when the unit price exceeds a configured threshold.\n- **corporate**: percentage discount tied to a corporate billing arrangement.\n",
                      "example": "subsidy"
                    },
                    "amount": {
                      "type": "object",
                      "properties": {
                        "withTax": {
                          "type": "number"
                        },
                        "withoutTax": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "withTax"
                      ]
                    }
                  },
                  "required": [
                    "type",
                    "amount"
                  ]
                }
              },
              "tax": {
                "type": "object",
                "nullable": true,
                "deprecated": true,
                "properties": {
                  "taxId": {
                    "type": "integer"
                  },
                  "taxPercentage": {
                    "type": "number",
                    "format": "decimal"
                  }
                }
              },
              "currency": {
                "type": "string",
                "minLength": 3,
                "maxLength": 3,
                "description": "The ISO 4217 3-letter code of the currency"
              },
              "paymentType": {
                "type": "string",
                "enum": [
                  "tokenized",
                  "subscription",
                  "balance",
                  "corporate",
                  "terminal",
                  "bank_transfer"
                ]
              },
              "paymentMethodId": {
                "type": "string",
                "description": "The ID of the payment method. Mind that this is actually a string. It can be, for example `corporate:1234` - for corporate billing, or `balance`, or `subscription` - when the session is to be paid with the user's post-paid subscription.",
                "nullable": true
              },
              "terminalId": {
                "type": "integer",
                "description": "The ID of the payment terminal when such is used.",
                "nullable": true
              },
              "nonBillableEnergy": {
                "type": "number",
                "description": "The energy that is included as an allowance for pre-paid and post subscriptions."
              },
              "paymentStatus": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "pending",
                  "paid",
                  "partially",
                  "failed",
                  null
                ]
              },
              "authorizationId": {
                "nullable": true,
                "type": "integer"
              },
              "idTag": {
                "type": "string",
                "description": "The idTag defines the authentication source for the session (RFID identifier or remote start identifier)\nA remote start identifier has the format `*XXXXXXX` where the `XXXXXXX` is the session id padded with `0`s on the left\n"
              },
              "idTagLabel": {
                "type": "string",
                "description": "Additional information about the idTag that differs depending on the type of the idTag or could be something else, related to the car or the user."
              },
              "idTagType": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "rfid",
                  "emaid",
                  "mac_address"
                ],
                "description": "The type of identifier used for authentication. Returns 'rfid' for standard RFID card identifiers, 'emaid' for E-Mobility Account Identifiers used by ISO15118 Plug&Charge, or 'mac_address' for MAC addresses used by Autocharge."
              },
              "extendingSessionId": {
                "deprecated": true,
                "type": "integer",
                "nullable": true,
                "description": "When a session is finished (because connectivity was lost for a long time) and more data is received, the\nadditional data is stored in an extending session. If this property is set, then this is an extending session.\n"
              },
              "originalSessionId": {
                "type": "integer",
                "description": "ID of the session that the current session is extending."
              },
              "extendedBySessionId": {
                "type": "integer",
                "description": "ID of the session that extends this session."
              },
              "reimbursementEligibility": {
                "type": "boolean"
              },
              "externalSessionId": {
                "deprecated": true,
                "nullable": true,
                "type": "string",
                "description": "Deprecated: Use `idTag` field instead. This field will be removed in a future version.\nPreviously used for admin-started sessions, this value is now available in the `idTag` field.\n"
              },
              "authorization": {
                "type": "object",
                "description": "Session authorization.\n\nEmbedded as the `authorization` property in Session responses when the `withAuthorization` parameter\nis enabled, and always embedded in session webhook notifications for sessions that have an\nauthorization.\n",
                "properties": {
                  "id": {
                    "type": "integer"
                  },
                  "operatorId": {
                    "type": "integer",
                    "nullable": true,
                    "description": "The ID of the operator this resource belongs to",
                    "example": 1
                  },
                  "method": {
                    "description": "The method used to authorize the charging session.\n- `user_device` - Authorization via mobile app or web portal\n- `rfid_tag` - Authorization via physical RFID card\n- `mac_address` - Authorization via vehicle MAC address (AutoCharge)\n- `admin` - Manual authorization by admin user\n- `plug_and_charge` - Authorization via Plug & Charge\n- `plug_and_charge_iso15118` - Authorization via ISO 15118 Plug & Charge\n- `payment_terminal` - Authorization via payment terminal\n- `mobile_app` - Authorization received from a roaming platform via OCPI\n",
                    "type": "string",
                    "enum": [
                      "user_device",
                      "rfid_tag",
                      "mac_address",
                      "admin",
                      "plug_and_charge",
                      "plug_and_charge_iso15118",
                      "payment_terminal",
                      "mobile_app"
                    ]
                  },
                  "source": {
                    "description": "The origin of the authorization request.\n- `local` - Authorization initiated directly on this platform\n- `roaming` - Authorization received from a roaming platform (OCPI/Hubject). OCPI authorizations report the method as `mobile_app`.\n- `third_party` - Authorization initiated by a third-party authority\n",
                    "type": "string",
                    "enum": [
                      "local",
                      "roaming",
                      "third_party"
                    ]
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "createdAtLocal": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The creation time in the local time zone of the charge point, falling back to the operator's default time zone."
                  },
                  "status": {
                    "description": "The status of the authorization request.\n- `accepted` - Authorization was approved and the user can start charging\n- `rejected` - Authorization was denied and the user cannot charge\n- `pending` - Authorization is awaiting approval or validation\n",
                    "type": "string",
                    "enum": [
                      "accepted",
                      "rejected",
                      "pending"
                    ]
                  },
                  "rejectionReason": {
                    "type": "string",
                    "nullable": true,
                    "description": "The reason for rejecting the authorization. `null` unless status is `rejected`."
                  },
                  "userId": {
                    "type": "integer",
                    "nullable": true,
                    "description": "The user that is authorized. `null` when the authorization is not linked to a local user."
                  },
                  "rfidTagUid": {
                    "type": "string",
                    "nullable": true,
                    "description": "The UID of the identification tag that created the authorization. Only populated when source is\n`local` or `third_party`; `null` for roaming authorizations, whose token details are in the `roaming`\nobject.\n"
                  },
                  "roaming": {
                    "description": "In case source is `roaming`, this object describes the EMSP that gave the authorization",
                    "type": "object",
                    "properties": {
                      "platformId": {
                        "description": "The roaming platform ID that gave the authorization",
                        "type": "integer"
                      },
                      "platformRoleId": {
                        "description": "The role that gave the authorization (the EMSP)",
                        "type": "integer"
                      },
                      "platformRole": {
                        "description": "The role identifier",
                        "type": "string"
                      },
                      "reference": {
                        "description": "OCPI's authorization_reference, or Hubject's SessionID",
                        "type": "string"
                      },
                      "client": {
                        "description": "OCPI's contractId, or Hubject's EVCO ID",
                        "type": "string"
                      },
                      "uid": {
                        "description": "OCPI's token UID, as recorded at the moment the authorization was created. Absent for Hubject\nauthorizations and for authorizations created before the identifiers were recorded.\n",
                        "type": "string"
                      },
                      "visualNumber": {
                        "description": "OCPI's token visual_number, as recorded at the moment the authorization was created. Absent for\nHubject authorizations, for authorizations created before the identifiers were recorded, and when\nthe roaming platform did not provide a visual number.\n",
                        "type": "string"
                      }
                    },
                    "required": [
                      "platformId",
                      "platformRoleId",
                      "platformRole",
                      "reference",
                      "client"
                    ]
                  },
                  "lastUpdatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "ISO 8601 formatted date",
                    "readOnly": true
                  }
                },
                "required": [
                  "id",
                  "method",
                  "source",
                  "createdAt",
                  "status",
                  "rejectionReason",
                  "userId",
                  "rfidTagUid",
                  "lastUpdatedAt"
                ]
              },
              "chargingPeriods": {
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "Describes a period in the session that is billed separately, for example charging@night (for time of day tariffs) or idle (for tariffs that charge separately idle time)",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "energy": {
                      "type": "integer",
                      "description": "Delivered energy in Wh"
                    },
                    "energyPrecise": {
                      "type": "number",
                      "nullable": true,
                      "description": "Delivered energy in Wh with decimal precision"
                    },
                    "startedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "stoppedAt": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true
                    },
                    "state": {
                      "deprecated": true,
                      "type": "string",
                      "example": [
                        "charging",
                        "charging@night",
                        "charging@day",
                        "idle",
                        "idle@day",
                        "idle@night",
                        "charging@boosted",
                        "charging@optimised"
                      ],
                      "description": "The state of the period. A non exhaustive list of possible values:\n  * `charging` - the vehicle was charging\n  * `charging@night` - a ToD tariff was selected and the vehicle was charging during the nighttime period of the tariff\n  * `charging@day` - a ToD tariff was selected and the vehicle was charging during the daytime period of the tariff\n  * `idle` - a tariff with separate pricing for idle time was selected and the charging was idle in that period\n  * `idle@night` - a ToD tariff was selected and the vehicle was idling during the nighttime period of the tariff\n  * `idle@day` - a ToD tariff was selected and the vehicle was idling during the daytime period of the tariff\n  * `charging@boosted` - Optimised dynamic pricing was applied and charging was performed with full available power\n  * `charging@optimised` - Optimised dynamic pricing was applied and charging was performed with lower price and limited power during peak hours\n"
                    },
                    "chargingState": {
                      "type": "string",
                      "enum": [
                        "charging",
                        "idle"
                      ],
                      "description": "The charging state of the period."
                    },
                    "graceTimeEndAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "When the idle fee grace period expires for this charging period. Present only on idle charging periods that have a grace period configured."
                    },
                    "pricingDetails": {
                      "description": "Optional pricing details specific to this charging period, dependent on the tariff.",
                      "type": "object",
                      "properties": {
                        "chargingType": {
                          "type": "string",
                          "enum": [
                            "boosted",
                            "optimised"
                          ],
                          "nullable": true,
                          "description": "Power delivery strategy used during this period.\n  * `boosted` - maximum available power delivery\n  * `optimised` - reduced power during peak hours for cost efficiency\n"
                        },
                        "dayPeriod": {
                          "type": "string",
                          "nullable": true,
                          "enum": [
                            "day",
                            "night"
                          ],
                          "description": "The period of the day.\n  * `day` - daytime period of the tariff\n  * `night` - nighttime period of the tariff\n"
                        },
                        "pricingMethod": {
                          "type": "string",
                          "nullable": true,
                          "enum": [
                            "duration",
                            "energy",
                            "durationAndEnergy",
                            "free"
                          ],
                          "description": "The method used for calculating price in standard tariffs.\n  * `duration` - pricing based on duration\n  * `energy` - pricing based on energy consumption\n  * `durationAndEnergy` - pricing based on both duration and energy\n  * `free` - free period with no charge\n"
                        },
                        "price": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Base price rate for Energy Time of Usage tariffs"
                        },
                        "markup": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Additional percentage or fixed amount added to the base price"
                        },
                        "initialEnergyPrice": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Starting price rate for energy-based charging"
                        },
                        "initialDurationPrice": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Starting price rate for time-based charging"
                        },
                        "startHour": {
                          "type": "string",
                          "description": "The start hour for the charging period"
                        },
                        "endHour": {
                          "type": "string",
                          "description": "The end hour for the charging period"
                        },
                        "day": {
                          "type": "string",
                          "description": "The day being used"
                        }
                      }
                    },
                    "amount": {
                      "type": "number",
                      "format": "decimal",
                      "nullable": true,
                      "deprecated": true
                    },
                    "totalAmount": {
                      "type": "object",
                      "properties": {
                        "withTax": {
                          "type": "number"
                        },
                        "withoutTax": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "withTax"
                      ]
                    },
                    "priceBreakdown": {
                      "type": "array",
                      "items": {
                        "description": "Charging period price breakdown",
                        "$ref": "#/components/schemas/Session"
                      },
                      "description": "A breakdown of the different tariff elements that create the total amount of the charging period. Only sent when `withChargingPeriodsPriceBreakdown` is set to `true`. The priceBreakdown will be displayed only when the Billing status of the session is marked as completed."
                    }
                  },
                  "required": [
                    "id",
                    "energy",
                    "startedAt",
                    "state"
                  ]
                }
              },
              "priceBreakdown": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "flat",
                        "connection",
                        "energy",
                        "charging_time",
                        "idle_time",
                        "power_levels_time",
                        "min_price",
                        "service_fee",
                        "energy_flat_fee",
                        "duration_flat_fee",
                        "idle_flat_fee"
                      ],
                      "description": "* `flat` - no matter the duration or energy consumed each session would cost one and the same amount,\n* `connection` - a fixed fee that is applied at the start of the charging session,\n* `energy` - the cost for the consumed energy,\n* `charging_time` - the cost for the duration of the session when there is ongoing charging,\n* `idle_time` - the cost for the time when there is no active charging but there is an ongoing session,\n* `power_levels_time` - the cost for peak and average power levels,\n* `min_price` - the minimum price a session should cost, anything below that price is rounded up to the minimum price,\n* `service_fee` - the cost for the mark up,\n* `energy_flat_fee` - a fixed fee applied per energy component,\n* `duration_flat_fee` - a fixed fee applied per duration component,\n* `idle_flat_fee` - a fixed fee applied per idle component.\n"
                    },
                    "currency": {
                      "type": "string",
                      "example": "EUR",
                      "minLength": 3,
                      "maxLength": 3,
                      "description": "3-letter currency code (ISO 4217)"
                    },
                    "unit": {
                      "type": "string",
                      "enum": [
                        "kwh",
                        "minute",
                        "session"
                      ],
                      "description": "The measure that is used for the type element."
                    },
                    "pricePerUnit": {
                      "description": "The price of a single unit of the tariff element.",
                      "type": "object",
                      "properties": {
                        "withTax": {
                          "type": "number"
                        },
                        "withoutTax": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "withTax"
                      ]
                    },
                    "quantity": {
                      "type": "number",
                      "format": "decimal",
                      "description": "The number of units."
                    },
                    "price": {
                      "description": "The `pricePerUnit` multiplied by the `quantity`.",
                      "type": "object",
                      "properties": {
                        "withTax": {
                          "type": "number"
                        },
                        "withoutTax": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "withTax"
                      ]
                    },
                    "taxPercentage": {
                      "type": "number",
                      "nullable": true,
                      "format": "decimal",
                      "description": "The tax rate percentage applied to this tariff element."
                    },
                    "totalPrice": {
                      "type": "number",
                      "format": "decimal",
                      "description": "The `unitPrice` multiplied by the `quantity`.",
                      "deprecated": true
                    },
                    "unitPrice": {
                      "type": "number",
                      "format": "decimal",
                      "description": "The price of a single unit of the tariff element.",
                      "deprecated": true
                    },
                    "discounts": {
                      "type": "array",
                      "description": "Per-type discount breakdown for this row. Omitted when no discount data is available.\n",
                      "items": {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "enum": [
                              "subsidy",
                              "corporate"
                            ],
                            "description": "Type of an individual discount entry.\n- **subsidy**: energy-fee subsidy when the unit price exceeds a configured threshold.\n- **corporate**: percentage discount tied to a corporate billing arrangement.\n",
                            "example": "subsidy"
                          },
                          "amount": {
                            "type": "object",
                            "properties": {
                              "withTax": {
                                "type": "number"
                              },
                              "withoutTax": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "withTax"
                            ]
                          }
                        },
                        "required": [
                          "type",
                          "amount"
                        ]
                      }
                    }
                  },
                  "required": [
                    "type",
                    "currency",
                    "price",
                    "quantity",
                    "pricePerUnit",
                    "unit",
                    "totalPrice",
                    "unitPrice"
                  ]
                },
                "description": "A breakdown of the different tariff elements that create the total amount of the charging session. Only sent when `session_with_price_breakdown` is set to `true`. The priceBreakdown will be displayed only when the Billing status of the session is marked as completed."
              },
              "tariffSnapshotId": {
                "type": "integer",
                "nullable": true,
                "description": "At the start of the charging session the tariff will be snapshotted and that snapshot will not be changed ever. That snapshot is used to determine the price of the charging session. This is the ID of that snapshot.\n"
              },
              "electricityCost": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "evsePhysicalReference": {
                "type": "string",
                "description": "This could be either the identifier that is presented to the user, so they can identify the EVSE at the location. Or for roaming EVSEs - it is the roaming evse_id.\n",
                "nullable": true
              },
              "paymentStatusUpdatedAt": {
                "type": "string",
                "nullable": true,
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "chargePointOperatorRoamingId": {
                "type": "string",
                "description": "The roaming operator identifier (e.g., \"DE*ENA\", \"LT*IGN\") of the operator who owns the charge point where the session occurred. Only returned for roaming sessions."
              },
              "roaming": {
                "type": "object",
                "properties": {
                  "cdrIds": {
                    "type": "array",
                    "description": "The CDRs that are generated for roaming sessions.",
                    "items": {
                      "type": "integer"
                    }
                  },
                  "sessionId": {
                    "type": "string",
                    "description": "The unique id that identifies the charging session in the CPO platform."
                  },
                  "roamingOperatorCpoId": {
                    "type": "integer",
                    "description": "The id of the roaming operator that owns the charge point at which the session occurred."
                  },
                  "cpoLastUpdatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Applicable only for OCPI sessions and populated with the most recent shared `last_updated` value from the CPO roaming operator. ISO 8601 formatted date",
                    "readOnly": true
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "randomisedDelay": {
                "type": "integer",
                "description": "Number of seconds by which current offering is being delayed at the start of the session. The field is omitted when randomised delay is not enabled in the Personal Charging settings or when there is no randomised delay."
              },
              "receiptId": {
                "deprecated": true,
                "type": "integer",
                "nullable": true
              },
              "externalAppData": {
                "description": "Used to hold any external application data related to the session.",
                "type": "object",
                "nullable": true,
                "additionalProperties": true
              },
              "clockAlignedEnergyConsumption": {
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "Session Clock aligned consumption period",
                  "properties": {
                    "start": {
                      "type": "string",
                      "format": "date-time",
                      "description": "The beginning of the clock-aligned consumption period."
                    },
                    "end": {
                      "type": "string",
                      "format": "date-time",
                      "description": "The end of the clock-aligned consumption period."
                    },
                    "energyConsumed": {
                      "deprecated": true,
                      "type": "integer",
                      "description": "The amount of total consumed energy(Wh) during the clock-aligned consumption period."
                    },
                    "energyConsumption": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "number",
                          "description": "The amount of total consumed energy (Wh) during the clock-aligned consumption period."
                        },
                        "local": {
                          "type": "number",
                          "description": "The amount of consumed renewable energy (Wh) generated by individual source for the specified clock-aligned consumption period."
                        },
                        "grid": {
                          "type": "number",
                          "description": "The amount of consumed energy (Wh) delivered from the grid for the specified clock-aligned consumption period."
                        }
                      },
                      "required": [
                        "total",
                        "grid"
                      ]
                    },
                    "totalCost": {
                      "type": "object",
                      "description": "The total cost of energy consumption during the clock-aligned period.",
                      "properties": {
                        "withTax": {
                          "type": "number",
                          "description": "Total cost including tax."
                        },
                        "withoutTax": {
                          "type": "number",
                          "description": "Total cost excluding tax."
                        }
                      },
                      "required": [
                        "withTax"
                      ]
                    }
                  },
                  "required": [
                    "start",
                    "end",
                    "energyConsumed",
                    "energyConsumption"
                  ]
                },
                "description": "Energy consumption during time intervals (15, 30 or 60 minutes) in the charging session. The start of the first interval is the start of the session then the intervals are defined by the exact minute of the hour. Clock-aligned consumption periods are included in the response only when the query param 'withClockAlignedEnergyConsumption' is set to 'true'."
              },
              "energyConsumption": {
                "type": "object",
                "properties": {
                  "total": {
                    "type": "number",
                    "description": "Delivered energy (Wh)"
                  },
                  "local": {
                    "type": "number",
                    "description": "The amount of consumed renewable energy (Wh) generated by individual source for all clock-aligned consumption periods in the charging session."
                  },
                  "grid": {
                    "type": "number",
                    "description": "The amount of consumed energy (Wh) delivered from the grid for all clock-aligned consumption periods in the charging session."
                  }
                },
                "required": [
                  "total",
                  "grid"
                ]
              },
              "estimatedSavings": {
                "type": "number",
                "description": "The sum of savings that could be achieved if the consumed energy was not locally generated but delivered from the grid for all clock-aligned consumption periods in the charging session."
              },
              "billingStatus": {
                "type": "string",
                "description": "The status of the billing process for the session.",
                "nullable": true,
                "enum": [
                  "pending",
                  "suspended",
                  "completed",
                  null
                ]
              },
              "billingCompletedAt": {
                "type": "string",
                "format": "date-time",
                "description": "The timestamp when session billing was completed. Only present when billing has completed, omitted otherwise."
              },
              "power": {
                "type": "object",
                "properties": {
                  "latest": {
                    "type": "number",
                    "nullable": true,
                    "description": "The current charging power (in watts)"
                  },
                  "peak": {
                    "type": "number",
                    "nullable": true,
                    "description": "The maximum charging power (in watts) reached during the session"
                  },
                  "average": {
                    "type": "number",
                    "nullable": true,
                    "description": "The average charging power (in watts) maintained during the session"
                  },
                  "offered": {
                    "type": "number",
                    "nullable": true,
                    "description": "The power offered by the EVSE to the vehicle (in watts)"
                  }
                }
              },
              "preAuthorizedAmount": {
                "type": "number",
                "description": "The total amount currently held (authorized) on the user's payment method for this session, in the session's currency.\nOmitted when no active pre-authorization exists for this session (billing strategy does not use pre-authorization, authorization not yet placed, or already captured/voided at session end).\nPresent and greater than 0 when an authorization is held. For incremental sessions this is the sum of the initial authorization and all successful increments; for non-incremental sessions this is the initial authorized amount.\n"
              },
              "incrementalPreAuthorizationEnabled": {
                "type": "boolean",
                "description": "Whether incremental pre-authorizations are active for this session.\n`true` when all preconditions are met: feature flag enabled, incremental pre-authorizations enabled in settings, billing strategy supports pre-authorization, and the session has an active pre-authorization with a PSP that supports incremental authorization.\n`false` in all other cases, including sessions without pre-authorization and completed sessions.\n"
              },
              "customFields": {
                "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the session are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                "type": "object",
                "additionalProperties": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "status",
              "userId",
              "authorizationId",
              "energy",
              "energyConsumption",
              "chargePointId",
              "evseId",
              "startedAt",
              "billingStatus",
              "incrementalPreAuthorizationEnabled"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subscriptionPlanReplace": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "tariffSetDisplayInformation": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "validateTaxNumber": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Company name (when available from VIES)"
          },
          "address": {
            "type": "string",
            "description": "Company address (when available from VIES)"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "maxProperties": 0
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "424": {
      "schema": {
        "type": "object",
        "maxProperties": 0
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "transactionCreatePreAuthorization": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "oneOf": [
              {
                "type": "object",
                "description": "Create-pre-authorization result for a transaction whose payment processor is Worldline.\nRedirect the customer to `redirectUrl` to complete the hosted-checkout\npre-authorisation.\n",
                "properties": {
                  "processor": {
                    "type": "string",
                    "enum": [
                      "worldline"
                    ],
                    "description": "The payment processor that produced this result."
                  },
                  "redirectUrl": {
                    "type": "string",
                    "description": "Worldline hosted-checkout URL the portal redirects the customer to in order to complete the pre-authorisation."
                  },
                  "reference": {
                    "type": "string",
                    "description": "Worldline hosted checkout id stored on the transaction as the provider reference."
                  }
                },
                "required": [
                  "processor",
                  "redirectUrl",
                  "reference"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "description": "Create-pre-authorization result for a transaction whose payment processor is Stripe.\nConfirm the PaymentIntent client-side using `clientSecret` to complete the\npre-authorisation.\n",
                "properties": {
                  "processor": {
                    "type": "string",
                    "enum": [
                      "stripe"
                    ],
                    "description": "The payment processor that produced this result."
                  },
                  "clientSecret": {
                    "type": "string",
                    "description": "Stripe PaymentIntent client secret the portal uses to confirm the pre-authorisation via Stripe Elements."
                  },
                  "paymentIntentId": {
                    "type": "string",
                    "description": "Stripe PaymentIntent id (pi_…) stored on the transaction as the provider reference."
                  }
                },
                "required": [
                  "processor",
                  "clientSecret",
                  "paymentIntentId"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "description": "Create-pre-authorization result for a transaction whose payment processor is Adyen.\nRedirect the customer to `redirectUrl` to complete the hosted checkout\npre-authorisation.\n",
                "properties": {
                  "processor": {
                    "type": "string",
                    "enum": [
                      "adyen"
                    ],
                    "description": "The payment processor that produced this result."
                  },
                  "redirectUrl": {
                    "type": "string",
                    "description": "Adyen Hosted Checkout page URL the portal redirects the customer to in order to complete the pre-authorisation."
                  },
                  "reference": {
                    "type": "string",
                    "description": "Adyen checkout session id (CS…) stored on the transaction as the provider reference."
                  }
                },
                "required": [
                  "processor",
                  "redirectUrl",
                  "reference"
                ],
                "additionalProperties": false
              }
            ],
            "discriminator": {
              "propertyName": "processor",
              "mapping": {
                "worldline": "#/components/schemas/CreatePreAuthorizationResponseWorldline",
                "stripe": "#/components/schemas/CreatePreAuthorizationResponseStripe",
                "adyen": "#/components/schemas/CreatePreAuthorizationResponseAdyen"
              }
            }
          }
        },
        "required": [
          "data"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "424": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "transactionIssueInvoice": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "412": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "transactionResendInvoice": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "transactionUpdatePaymentReference": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userRevokeMarketingConsent": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userActivateSubscription": {
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userAddBalance": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userApplyCustomFee": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userCancelSubscription": {
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userChangeStatus": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userClearSubscriptionAmountDue": {
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userGetTotalEligibleCouponEnergy": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "totalRemainingWh",
              "couponCount"
            ],
            "properties": {
              "totalRemainingWh": {
                "type": "integer",
                "description": "Total remaining energy in watt-hours across all eligible coupons for this EVSE"
              },
              "couponCount": {
                "type": "integer",
                "description": "Number of eligible coupons for this EVSE"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userSubscribeToPlan": {
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subscriptionBillingPeriodRetryPayment": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "423": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userExportAllPrivateData": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "downloadUrl": {
            "type": "string",
            "description": "The private data can be downloaded from here. The link expires in 24 hours."
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userRedeemVoucher": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "communicationLogsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Communication log entry",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unique identifier of the log entry",
                  "readOnly": true
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "Timestamp when the message was logged",
                  "readOnly": true
                },
                "chargePointId": {
                  "type": "integer",
                  "description": "ID of the charge point that sent/received the message",
                  "readOnly": true
                },
                "evseId": {
                  "type": "integer",
                  "description": "ID of the EVSE if applicable",
                  "readOnly": true
                },
                "locationId": {
                  "type": "integer",
                  "description": "ID of the location associated with the charge point",
                  "readOnly": true
                },
                "sessionId": {
                  "type": "integer",
                  "description": "ID of the charging session if applicable",
                  "readOnly": true
                },
                "direction": {
                  "type": "string",
                  "enum": [
                    "in",
                    "out"
                  ],
                  "description": "Direction of the communication:\n- **in**: Message received from charge point\n- **out**: Message sent to charge point\n",
                  "example": "in"
                },
                "command": {
                  "type": "string",
                  "description": "Name of the command sent or received in OCPP communication. Can be any of the standard OCPP 1.6 and OCPP 2.0.1 commands, as well as custom commands. Examples include:\n`Authenticate`, `Authorize`, `BootNotification`, `CancelReservation`, `ChangeAvailability`, `ChangeConfiguration`, `ClearCache`, `ClearChargingProfile`, `ClearDisplayMessage`, `Connect`, `Connection throttling`, `CostUpdated`, `DataTransfer`, `DeleteCertificateRequest`, `DiagnosticsStatusNotification`, `Disconnect`, `FirmwareStatusNotification`, `Get15118EVCertificate`, `GetBaseReport`, `GetCertificateStatus`, `GetCompositeSchedule`, `GetConfiguration`, `GetDiagnostics`, `GetDisplayMessages`, `GetLocalListVersion`, `GetLog`, `GetVariables`, `Heartbeat`, `InstallCertificate`, `LogStatusNotification`, `MeterValues`, `NotifyDisplayMessages`, `NotifyEVChargingNeeds`, `NotifyReport`, `RemoteStartTransaction`, `RemoteStopTransaction`, `RequestStartTransaction`, `RequestStopTransaction`, `ReservationStatusUpdate`, `ReserveNow`, `Reset`, `RFID Authorization throttling`, `SecurityEventNotification`, `SendLocalList`, `SetChargingProfile`, `SetDisplayMessage`, `SetNetworkProfile`, `SetVariables`, `SignCertificate`, `SignedUpdateFirmware`, `StartTransaction`, `StatusNotification`, `StopTransaction`, `TransactionEvent`, `TriggerMessage`, `UnlockConnector`, `UpdateFirmware`.\n"
                },
                "commandParameters": {
                  "type": "string",
                  "description": "JSON-encoded message payload sent with the command. Truncated to 50,000 characters if longer.",
                  "readOnly": true
                },
                "communicationError": {
                  "type": "string",
                  "description": "JSON-encoded error details from internal backend communication failure. Truncated to 50,000 characters if longer.\nOnly present when a communication error occurred. When this field is present, `responseBody` will not be included in the response.\n",
                  "readOnly": true
                },
                "responseBody": {
                  "type": "string",
                  "description": "JSON-encoded message response payload. Truncated to 50,000 characters if longer.\nOnly present when communication was successful (i.e., when `communicationError` is not present).\n",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "createdAt",
                "chargePointId",
                "direction",
                "command",
                "commandParameters"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "424": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "communicationLogRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Communication log entry",
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier of the log entry",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the message was logged",
                "readOnly": true
              },
              "chargePointId": {
                "type": "integer",
                "description": "ID of the charge point that sent/received the message",
                "readOnly": true
              },
              "evseId": {
                "type": "integer",
                "description": "ID of the EVSE if applicable",
                "readOnly": true
              },
              "locationId": {
                "type": "integer",
                "description": "ID of the location associated with the charge point",
                "readOnly": true
              },
              "sessionId": {
                "type": "integer",
                "description": "ID of the charging session if applicable",
                "readOnly": true
              },
              "direction": {
                "type": "string",
                "enum": [
                  "in",
                  "out"
                ],
                "description": "Direction of the communication:\n- **in**: Message received from charge point\n- **out**: Message sent to charge point\n",
                "example": "in"
              },
              "command": {
                "type": "string",
                "description": "Name of the command sent or received in OCPP communication. Can be any of the standard OCPP 1.6 and OCPP 2.0.1 commands, as well as custom commands. Examples include:\n`Authenticate`, `Authorize`, `BootNotification`, `CancelReservation`, `ChangeAvailability`, `ChangeConfiguration`, `ClearCache`, `ClearChargingProfile`, `ClearDisplayMessage`, `Connect`, `Connection throttling`, `CostUpdated`, `DataTransfer`, `DeleteCertificateRequest`, `DiagnosticsStatusNotification`, `Disconnect`, `FirmwareStatusNotification`, `Get15118EVCertificate`, `GetBaseReport`, `GetCertificateStatus`, `GetCompositeSchedule`, `GetConfiguration`, `GetDiagnostics`, `GetDisplayMessages`, `GetLocalListVersion`, `GetLog`, `GetVariables`, `Heartbeat`, `InstallCertificate`, `LogStatusNotification`, `MeterValues`, `NotifyDisplayMessages`, `NotifyEVChargingNeeds`, `NotifyReport`, `RemoteStartTransaction`, `RemoteStopTransaction`, `RequestStartTransaction`, `RequestStopTransaction`, `ReservationStatusUpdate`, `ReserveNow`, `Reset`, `RFID Authorization throttling`, `SecurityEventNotification`, `SendLocalList`, `SetChargingProfile`, `SetDisplayMessage`, `SetNetworkProfile`, `SetVariables`, `SignCertificate`, `SignedUpdateFirmware`, `StartTransaction`, `StatusNotification`, `StopTransaction`, `TransactionEvent`, `TriggerMessage`, `UnlockConnector`, `UpdateFirmware`.\n"
              },
              "commandParameters": {
                "type": "string",
                "description": "JSON-encoded message payload sent with the command. Truncated to 50,000 characters if longer.",
                "readOnly": true
              },
              "communicationError": {
                "type": "string",
                "description": "JSON-encoded error details from internal backend communication failure. Truncated to 50,000 characters if longer.\nOnly present when a communication error occurred. When this field is present, `responseBody` will not be included in the response.\n",
                "readOnly": true
              },
              "responseBody": {
                "type": "string",
                "description": "JSON-encoded message response payload. Truncated to 50,000 characters if longer.\nOnly present when communication was successful (i.e., when `communicationError` is not present).\n",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "createdAt",
              "chargePointId",
              "direction",
              "command",
              "commandParameters"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "listOcpiLogs": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "createdAt",
                "roamingConnectionId",
                "direction",
                "module",
                "method",
                "requestUrl",
                "ocpiStatus"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unique identifier for the log entry",
                  "example": "abc123xyz"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "Timestamp when the OCPI message was logged (ISO 8601)",
                  "example": "2026-02-10T14:27:33.506505Z"
                },
                "roamingConnectionId": {
                  "type": "integer",
                  "description": "ID of the roaming connection involved in the communication",
                  "example": 42
                },
                "direction": {
                  "description": "Direction of the OCPI communication:\n- **in**: Request received from roaming partner\n- **out**: Request sent to roaming partner\n",
                  "type": "string",
                  "enum": [
                    "in",
                    "out"
                  ],
                  "example": "out"
                },
                "module": {
                  "description": "OCPI module name:\n- **locations**: Location/EVSE data sync\n- **sessions**: Charging session data\n- **cdrs**: Charge Detail Records\n- **tariffs**: Pricing information\n- **tokens**: Authorization tokens\n- **commands**: Remote commands (start/stop/unlock)\n- **versions**: OCPI version negotiation\n- **credentials**: Authentication credentials\n- **hubclient**: Hub client communication\n- **chargingpreferences**: Smart charging preferences\n- **smartcharging**: Smart charging profiles\n- **payments**: Payment processing\n",
                  "type": "string",
                  "enum": [
                    "locations",
                    "sessions",
                    "cdrs",
                    "tariffs",
                    "tokens",
                    "commands",
                    "versions",
                    "credentials",
                    "hubclient",
                    "chargingpreferences",
                    "smartcharging",
                    "payments"
                  ],
                  "example": "locations"
                },
                "method": {
                  "description": "HTTP method used for the request",
                  "type": "string",
                  "enum": [
                    "GET",
                    "POST",
                    "PUT",
                    "DELETE",
                    "PATCH"
                  ],
                  "example": "GET"
                },
                "requestUrl": {
                  "type": "string",
                  "description": "The full request URL",
                  "example": "https://foo.com/ocpi/cpo/2.2/locations"
                },
                "requestBody": {
                  "type": "string",
                  "description": "JSON-encoded HTTP request payload. Truncated to 50,000 characters if longer. Not included for GET or DELETE requests, or when an error occurs."
                },
                "httpStatusCode": {
                  "type": "integer",
                  "description": "HTTP response status code. Not included when an error occurs.",
                  "example": 200
                },
                "responseBody": {
                  "type": "string",
                  "description": "JSON-encoded HTTP response payload. Truncated to 50,000 characters if longer. Not included when an error occurs."
                },
                "ocpiStatus": {
                  "description": "- **success**: Status code 1xxx - request handled successfully\n- **clientError**: Status code 2xxx - client-side error\n- **serverError**: Status code 3xxx - server-side error\n- **hubError**: Status code 4xxx - hub/roaming error\n- **unknown**: No status code present in the response body (e.g. error responses, empty bodies)\n",
                  "type": "string",
                  "enum": [
                    "success",
                    "clientError",
                    "serverError",
                    "hubError",
                    "unknown"
                  ],
                  "example": "success"
                },
                "errorType": {
                  "description": "Type of error that occurred during OCPI communication:\n- **connection**: Transport-level failure (timeout, TLS error, connection refused)\n- **internal**: Application-level error during request processing\n",
                  "type": "string",
                  "enum": [
                    "connection",
                    "internal"
                  ],
                  "example": "connection"
                },
                "sessionId": {
                  "type": "integer",
                  "description": "Internal system charging session ID (not the OCPI session `id` value). Present on log entries for requests tied to a specific session, such as session operations, CDR operations, and start/stop session commands. Not present on logs entries for fetching a list of objects.",
                  "example": 12345
                },
                "evseId": {
                  "type": "integer",
                  "description": "Internal system EVSE ID (not the OCPI `evse_id` value). Present on log entries for requests tied to a specific EVSE, such as session and CDR operations, EVSE/connector location operations, and commands. Not present on logs entries for fetching a list of objects.",
                  "example": 678
                },
                "locationId": {
                  "type": "integer",
                  "description": "Internal system location ID (not the OCPI location `id` value). Present on log entries for requests tied to specific charging infrastructure, such as session and CDR operations, location operations, and commands. Not present on logs entries for fetching a list of objects.",
                  "example": 101
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "readOcpiLog": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "createdAt",
              "roamingConnectionId",
              "direction",
              "module",
              "method",
              "requestUrl",
              "ocpiStatus"
            ],
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the log entry",
                "example": "abc123xyz"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the OCPI message was logged (ISO 8601)",
                "example": "2026-02-10T14:27:33.506505Z"
              },
              "roamingConnectionId": {
                "type": "integer",
                "description": "ID of the roaming connection involved in the communication",
                "example": 42
              },
              "direction": {
                "description": "Direction of the OCPI communication:\n- **in**: Request received from roaming partner\n- **out**: Request sent to roaming partner\n",
                "type": "string",
                "enum": [
                  "in",
                  "out"
                ],
                "example": "out"
              },
              "module": {
                "description": "OCPI module name:\n- **locations**: Location/EVSE data sync\n- **sessions**: Charging session data\n- **cdrs**: Charge Detail Records\n- **tariffs**: Pricing information\n- **tokens**: Authorization tokens\n- **commands**: Remote commands (start/stop/unlock)\n- **versions**: OCPI version negotiation\n- **credentials**: Authentication credentials\n- **hubclient**: Hub client communication\n- **chargingpreferences**: Smart charging preferences\n- **smartcharging**: Smart charging profiles\n- **payments**: Payment processing\n",
                "type": "string",
                "enum": [
                  "locations",
                  "sessions",
                  "cdrs",
                  "tariffs",
                  "tokens",
                  "commands",
                  "versions",
                  "credentials",
                  "hubclient",
                  "chargingpreferences",
                  "smartcharging",
                  "payments"
                ],
                "example": "locations"
              },
              "method": {
                "description": "HTTP method used for the request",
                "type": "string",
                "enum": [
                  "GET",
                  "POST",
                  "PUT",
                  "DELETE",
                  "PATCH"
                ],
                "example": "GET"
              },
              "requestUrl": {
                "type": "string",
                "description": "The full request URL",
                "example": "https://foo.com/ocpi/cpo/2.2/locations"
              },
              "requestBody": {
                "type": "string",
                "description": "JSON-encoded HTTP request payload. Truncated to 50,000 characters if longer. Not included for GET or DELETE requests, or when an error occurs."
              },
              "httpStatusCode": {
                "type": "integer",
                "description": "HTTP response status code. Not included when an error occurs.",
                "example": 200
              },
              "responseBody": {
                "type": "string",
                "description": "JSON-encoded HTTP response payload. Truncated to 50,000 characters if longer. Not included when an error occurs."
              },
              "ocpiStatus": {
                "description": "- **success**: Status code 1xxx - request handled successfully\n- **clientError**: Status code 2xxx - client-side error\n- **serverError**: Status code 3xxx - server-side error\n- **hubError**: Status code 4xxx - hub/roaming error\n- **unknown**: No status code present in the response body (e.g. error responses, empty bodies)\n",
                "type": "string",
                "enum": [
                  "success",
                  "clientError",
                  "serverError",
                  "hubError",
                  "unknown"
                ],
                "example": "success"
              },
              "errorType": {
                "description": "Type of error that occurred during OCPI communication:\n- **connection**: Transport-level failure (timeout, TLS error, connection refused)\n- **internal**: Application-level error during request processing\n",
                "type": "string",
                "enum": [
                  "connection",
                  "internal"
                ],
                "example": "connection"
              },
              "sessionId": {
                "type": "integer",
                "description": "Internal system charging session ID (not the OCPI session `id` value). Present on log entries for requests tied to a specific session, such as session operations, CDR operations, and start/stop session commands. Not present on logs entries for fetching a list of objects.",
                "example": 12345
              },
              "evseId": {
                "type": "integer",
                "description": "Internal system EVSE ID (not the OCPI `evse_id` value). Present on log entries for requests tied to a specific EVSE, such as session and CDR operations, EVSE/connector location operations, and commands. Not present on logs entries for fetching a list of objects.",
                "example": 678
              },
              "locationId": {
                "type": "integer",
                "description": "Internal system location ID (not the OCPI location `id` value). Present on log entries for requests tied to specific charging infrastructure, such as session and CDR operations, location operations, and commands. Not present on logs entries for fetching a list of objects.",
                "example": 101
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "notificationsListingDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "webhookId": {
                  "type": "number"
                },
                "notifications": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "AuthorizationNotification",
                      "authorization.changed",
                      "BootNotification",
                      "ChargePointChangedNotification",
                      "chargePoint.changed",
                      "evse.changed",
                      "ChargePointSyncConfigurationNotification",
                      "CircuitConsumptionNotification",
                      "circuit.changed",
                      "DiagnosticsStatusNotification",
                      "FirmwareStatusNotification",
                      "HardwareStatusNotification",
                      "LocationChangedNotification",
                      "NetworkStatusNotification",
                      "SecurityEventNotification",
                      "SessionMeterValuesNotification",
                      "SessionStartStopNotification",
                      "session.start.stop.notification",
                      "SessionUpdateNotification",
                      "session.chargingPeriod.changed",
                      "UserChangedNotification",
                      "SubOperatorChangedNotification",
                      "TariffChangedNotification",
                      "tariffGroup.changed",
                      "user.subscriptionChanged",
                      "user.subscription.changed",
                      "ReservationChangedNotification",
                      "PaymentMethodChangedNotification",
                      "PartnerInviteChangedNotification",
                      "reservation.changed",
                      "user.paymentMethod.changed",
                      "userBalance.changed",
                      "partnerInvite.changed",
                      "partnerInviteCorporateBillingPolicy.changed",
                      "roamingPlatform.changed",
                      "parkingSpace.occupancyStatus.changed",
                      "partner.changed",
                      "transaction.changed",
                      "settlementReport.created",
                      "idTag.changed",
                      "issue.changed",
                      "chargePoint.dataTransferReceived",
                      "subscriptionPlan.changed",
                      "user.invoiceDetails.changed",
                      "cdr.received",
                      "chargingProfile.applied",
                      "installerJob.changed",
                      "corporateBilling.limitReached"
                    ]
                  }
                },
                "callbackUrl": {
                  "type": "string",
                  "format": "uri",
                  "example": "https://myserver.com/send/callback/here"
                },
                "includeTimestampInSignature": {
                  "type": "boolean",
                  "default": false,
                  "description": "When true, the notification timestamp will be included in the HMAC signature calculation. The timestamp is added in front of the signed JSON payload delimited by '.' (dot)."
                }
              },
              "required": [
                "webhookId",
                "notifications",
                "callbackUrl"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page"
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page"
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page",
                "nullable": true
              }
            },
            "required": [
              "first",
              "last"
            ]
          },
          "meta": {
            "type": "object",
            "properties": {
              "current_page": {
                "type": "integer",
                "description": "The number of the current page being fetched"
              },
              "from": {
                "type": "integer",
                "description": "The first of the fetched item's position in the total list",
                "nullable": true
              },
              "last_page": {
                "type": "integer",
                "description": "The number of the past page"
              },
              "links": {
                "type": "array",
                "description": "Array of link objects pointing to the previous/current/next pages",
                "items": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string",
                      "nullable": true,
                      "description": "The URL to the previous/current/next page or null if such page does not exist"
                    },
                    "label": {
                      "type": "string",
                      "description": "The name of the page that the links should be pointing to"
                    },
                    "active": {
                      "type": "boolean",
                      "description": "Is the link active, it will be true only when there is an URL"
                    }
                  }
                }
              },
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "to": {
                "type": "integer",
                "description": "The last of the fetched item's position in the total list",
                "nullable": true
              },
              "total": {
                "type": "integer",
                "description": "The total number of items in the list"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "notificationsSubscribeDeprecated": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "webhookId": {
            "type": "number"
          },
          "notifications": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "AuthorizationNotification",
                "authorization.changed",
                "BootNotification",
                "ChargePointChangedNotification",
                "chargePoint.changed",
                "evse.changed",
                "ChargePointSyncConfigurationNotification",
                "CircuitConsumptionNotification",
                "circuit.changed",
                "DiagnosticsStatusNotification",
                "FirmwareStatusNotification",
                "HardwareStatusNotification",
                "LocationChangedNotification",
                "NetworkStatusNotification",
                "SecurityEventNotification",
                "SessionMeterValuesNotification",
                "SessionStartStopNotification",
                "session.start.stop.notification",
                "SessionUpdateNotification",
                "session.chargingPeriod.changed",
                "UserChangedNotification",
                "SubOperatorChangedNotification",
                "TariffChangedNotification",
                "tariffGroup.changed",
                "user.subscriptionChanged",
                "user.subscription.changed",
                "ReservationChangedNotification",
                "PaymentMethodChangedNotification",
                "PartnerInviteChangedNotification",
                "reservation.changed",
                "user.paymentMethod.changed",
                "userBalance.changed",
                "partnerInvite.changed",
                "partnerInviteCorporateBillingPolicy.changed",
                "roamingPlatform.changed",
                "parkingSpace.occupancyStatus.changed",
                "partner.changed",
                "transaction.changed",
                "settlementReport.created",
                "idTag.changed",
                "issue.changed",
                "chargePoint.dataTransferReceived",
                "subscriptionPlan.changed",
                "user.invoiceDetails.changed",
                "cdr.received",
                "chargingProfile.applied",
                "installerJob.changed",
                "corporateBilling.limitReached"
              ]
            }
          },
          "callbackUrl": {
            "type": "string",
            "format": "uri",
            "example": "https://myserver.com/send/callback/here"
          },
          "includeTimestampInSignature": {
            "type": "boolean",
            "default": false,
            "description": "When true, the notification timestamp will be included in the HMAC signature calculation. The timestamp is added in front of the signed JSON payload delimited by '.' (dot)."
          }
        },
        "required": [
          "webhookId",
          "notifications",
          "callbackUrl"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "notificationsReadDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "webhookId": {
                "type": "number"
              },
              "notifications": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "AuthorizationNotification",
                    "authorization.changed",
                    "BootNotification",
                    "ChargePointChangedNotification",
                    "chargePoint.changed",
                    "evse.changed",
                    "ChargePointSyncConfigurationNotification",
                    "CircuitConsumptionNotification",
                    "circuit.changed",
                    "DiagnosticsStatusNotification",
                    "FirmwareStatusNotification",
                    "HardwareStatusNotification",
                    "LocationChangedNotification",
                    "NetworkStatusNotification",
                    "SecurityEventNotification",
                    "SessionMeterValuesNotification",
                    "SessionStartStopNotification",
                    "session.start.stop.notification",
                    "SessionUpdateNotification",
                    "session.chargingPeriod.changed",
                    "UserChangedNotification",
                    "SubOperatorChangedNotification",
                    "TariffChangedNotification",
                    "tariffGroup.changed",
                    "user.subscriptionChanged",
                    "user.subscription.changed",
                    "ReservationChangedNotification",
                    "PaymentMethodChangedNotification",
                    "PartnerInviteChangedNotification",
                    "reservation.changed",
                    "user.paymentMethod.changed",
                    "userBalance.changed",
                    "partnerInvite.changed",
                    "partnerInviteCorporateBillingPolicy.changed",
                    "roamingPlatform.changed",
                    "parkingSpace.occupancyStatus.changed",
                    "partner.changed",
                    "transaction.changed",
                    "settlementReport.created",
                    "idTag.changed",
                    "issue.changed",
                    "chargePoint.dataTransferReceived",
                    "subscriptionPlan.changed",
                    "user.invoiceDetails.changed",
                    "cdr.received",
                    "chargingProfile.applied",
                    "installerJob.changed",
                    "corporateBilling.limitReached"
                  ]
                }
              },
              "callbackUrl": {
                "type": "string",
                "format": "uri",
                "example": "https://myserver.com/send/callback/here"
              },
              "includeTimestampInSignature": {
                "type": "boolean",
                "default": false,
                "description": "When true, the notification timestamp will be included in the HMAC signature calculation. The timestamp is added in front of the signed JSON payload delimited by '.' (dot)."
              }
            },
            "required": [
              "webhookId",
              "notifications",
              "callbackUrl"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "notificationsUpdateDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "webhookId": {
                "type": "number"
              },
              "notifications": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "AuthorizationNotification",
                    "authorization.changed",
                    "BootNotification",
                    "ChargePointChangedNotification",
                    "chargePoint.changed",
                    "evse.changed",
                    "ChargePointSyncConfigurationNotification",
                    "CircuitConsumptionNotification",
                    "circuit.changed",
                    "DiagnosticsStatusNotification",
                    "FirmwareStatusNotification",
                    "HardwareStatusNotification",
                    "LocationChangedNotification",
                    "NetworkStatusNotification",
                    "SecurityEventNotification",
                    "SessionMeterValuesNotification",
                    "SessionStartStopNotification",
                    "session.start.stop.notification",
                    "SessionUpdateNotification",
                    "session.chargingPeriod.changed",
                    "UserChangedNotification",
                    "SubOperatorChangedNotification",
                    "TariffChangedNotification",
                    "tariffGroup.changed",
                    "user.subscriptionChanged",
                    "user.subscription.changed",
                    "ReservationChangedNotification",
                    "PaymentMethodChangedNotification",
                    "PartnerInviteChangedNotification",
                    "reservation.changed",
                    "user.paymentMethod.changed",
                    "userBalance.changed",
                    "partnerInvite.changed",
                    "partnerInviteCorporateBillingPolicy.changed",
                    "roamingPlatform.changed",
                    "parkingSpace.occupancyStatus.changed",
                    "partner.changed",
                    "transaction.changed",
                    "settlementReport.created",
                    "idTag.changed",
                    "issue.changed",
                    "chargePoint.dataTransferReceived",
                    "subscriptionPlan.changed",
                    "user.invoiceDetails.changed",
                    "cdr.received",
                    "chargingProfile.applied",
                    "installerJob.changed",
                    "corporateBilling.limitReached"
                  ]
                }
              },
              "callbackUrl": {
                "type": "string",
                "format": "uri",
                "example": "https://myserver.com/send/callback/here"
              },
              "includeTimestampInSignature": {
                "type": "boolean",
                "default": false,
                "description": "When true, the notification timestamp will be included in the HMAC signature calculation. The timestamp is added in front of the signed JSON payload delimited by '.' (dot)."
              }
            },
            "required": [
              "webhookId",
              "notifications",
              "callbackUrl"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "notificationsUnsubscribeDeprecated": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "notificationsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "number",
                  "readOnly": true
                },
                "via": {
                  "type": "string",
                  "enum": [
                    "webhook",
                    "kafka"
                  ]
                },
                "notifications": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "AuthorizationNotification",
                      "authorization.changed",
                      "BootNotification",
                      "ChargePointChangedNotification",
                      "chargePoint.changed",
                      "evse.changed",
                      "ChargePointSyncConfigurationNotification",
                      "CircuitConsumptionNotification",
                      "circuit.changed",
                      "DiagnosticsStatusNotification",
                      "FirmwareStatusNotification",
                      "HardwareStatusNotification",
                      "LocationChangedNotification",
                      "NetworkStatusNotification",
                      "SecurityEventNotification",
                      "SessionMeterValuesNotification",
                      "SessionStartStopNotification",
                      "session.start.stop.notification",
                      "SessionUpdateNotification",
                      "session.chargingPeriod.changed",
                      "UserChangedNotification",
                      "SubOperatorChangedNotification",
                      "TariffChangedNotification",
                      "tariffGroup.changed",
                      "user.subscriptionChanged",
                      "user.subscription.changed",
                      "ReservationChangedNotification",
                      "PaymentMethodChangedNotification",
                      "PartnerInviteChangedNotification",
                      "reservation.changed",
                      "user.paymentMethod.changed",
                      "userBalance.changed",
                      "partnerInvite.changed",
                      "partnerInviteCorporateBillingPolicy.changed",
                      "roamingPlatform.changed",
                      "parkingSpace.occupancyStatus.changed",
                      "partner.changed",
                      "transaction.changed",
                      "settlementReport.created",
                      "idTag.changed",
                      "issue.changed",
                      "chargePoint.dataTransferReceived",
                      "subscriptionPlan.changed",
                      "user.invoiceDetails.changed",
                      "cdr.received",
                      "chargingProfile.applied",
                      "installerJob.changed",
                      "corporateBilling.limitReached"
                    ]
                  }
                },
                "includeTimestampInSignature": {
                  "type": "boolean",
                  "default": false,
                  "description": "When true, the notification timestamp will be included in the HMAC signature calculation. The timestamp is added in front of the signed JSON payload delimited by '.' (dot)."
                },
                "skipRoamingInfrastructure": {
                  "type": "boolean",
                  "default": false,
                  "description": "When set to true, notification updates for infrastructure received via roaming are excluded. Affected notification types: ChargePointChangedNotification, chargePoint.changed, evse.changed, and LocationChangedNotification. All other notification types are unaffected."
                },
                "suppressSelfNotifications": {
                  "type": "boolean",
                  "default": false,
                  "description": "When true, this webhook will not send notifications for actions performed via the Public API using the same API token that owns this webhook. Useful when the integration only needs to react to external events."
                },
                "webhook": {
                  "type": "object",
                  "description": "Webhook configuration. Only present and required in case via = webhook",
                  "properties": {
                    "callbackUrl": {
                      "type": "string",
                      "format": "uri",
                      "maxLength": 500,
                      "example": "https://myserver.com/send/callback/here"
                    }
                  },
                  "required": [
                    "callbackUrl"
                  ]
                },
                "kafka": {
                  "type": "object",
                  "description": "Kafka configuration. Only present and required in case via = kafka",
                  "properties": {
                    "topic": {
                      "type": "string",
                      "example": "my-topic"
                    },
                    "brokers": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "example": [
                        "localhost:9092"
                      ]
                    },
                    "compressionCodec": {
                      "type": "string",
                      "enum": [
                        "none",
                        "gzip",
                        "snappy",
                        "lz4"
                      ],
                      "default": "gzip"
                    },
                    "securityProtocol": {
                      "type": "string",
                      "enum": [
                        "PLAINTEXT",
                        "SASL_SSL"
                      ],
                      "default": "PLAINTEXT"
                    },
                    "saslMechanism": {
                      "type": "string",
                      "enum": [
                        "PLAIN",
                        "SCRAM-SHA-256",
                        "SCRAM-SHA-512"
                      ],
                      "default": "PLAIN",
                      "nullable": true
                    },
                    "saslUsername": {
                      "type": "string",
                      "nullable": true
                    },
                    "saslPassword": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "topic",
                    "brokers"
                  ]
                }
              },
              "required": [
                "id",
                "notifications",
                "via"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "notificationsSubscribe": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "number",
                "readOnly": true
              },
              "via": {
                "type": "string",
                "enum": [
                  "webhook",
                  "kafka"
                ]
              },
              "notifications": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "AuthorizationNotification",
                    "authorization.changed",
                    "BootNotification",
                    "ChargePointChangedNotification",
                    "chargePoint.changed",
                    "evse.changed",
                    "ChargePointSyncConfigurationNotification",
                    "CircuitConsumptionNotification",
                    "circuit.changed",
                    "DiagnosticsStatusNotification",
                    "FirmwareStatusNotification",
                    "HardwareStatusNotification",
                    "LocationChangedNotification",
                    "NetworkStatusNotification",
                    "SecurityEventNotification",
                    "SessionMeterValuesNotification",
                    "SessionStartStopNotification",
                    "session.start.stop.notification",
                    "SessionUpdateNotification",
                    "session.chargingPeriod.changed",
                    "UserChangedNotification",
                    "SubOperatorChangedNotification",
                    "TariffChangedNotification",
                    "tariffGroup.changed",
                    "user.subscriptionChanged",
                    "user.subscription.changed",
                    "ReservationChangedNotification",
                    "PaymentMethodChangedNotification",
                    "PartnerInviteChangedNotification",
                    "reservation.changed",
                    "user.paymentMethod.changed",
                    "userBalance.changed",
                    "partnerInvite.changed",
                    "partnerInviteCorporateBillingPolicy.changed",
                    "roamingPlatform.changed",
                    "parkingSpace.occupancyStatus.changed",
                    "partner.changed",
                    "transaction.changed",
                    "settlementReport.created",
                    "idTag.changed",
                    "issue.changed",
                    "chargePoint.dataTransferReceived",
                    "subscriptionPlan.changed",
                    "user.invoiceDetails.changed",
                    "cdr.received",
                    "chargingProfile.applied",
                    "installerJob.changed",
                    "corporateBilling.limitReached"
                  ]
                }
              },
              "includeTimestampInSignature": {
                "type": "boolean",
                "default": false,
                "description": "When true, the notification timestamp will be included in the HMAC signature calculation. The timestamp is added in front of the signed JSON payload delimited by '.' (dot)."
              },
              "skipRoamingInfrastructure": {
                "type": "boolean",
                "default": false,
                "description": "When set to true, notification updates for infrastructure received via roaming are excluded. Affected notification types: ChargePointChangedNotification, chargePoint.changed, evse.changed, and LocationChangedNotification. All other notification types are unaffected."
              },
              "suppressSelfNotifications": {
                "type": "boolean",
                "default": false,
                "description": "When true, this webhook will not send notifications for actions performed via the Public API using the same API token that owns this webhook. Useful when the integration only needs to react to external events."
              },
              "webhook": {
                "type": "object",
                "description": "Webhook configuration. Only present and required in case via = webhook",
                "properties": {
                  "callbackUrl": {
                    "type": "string",
                    "format": "uri",
                    "maxLength": 500,
                    "example": "https://myserver.com/send/callback/here"
                  }
                },
                "required": [
                  "callbackUrl"
                ]
              },
              "kafka": {
                "type": "object",
                "description": "Kafka configuration. Only present and required in case via = kafka",
                "properties": {
                  "topic": {
                    "type": "string",
                    "example": "my-topic"
                  },
                  "brokers": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "example": [
                      "localhost:9092"
                    ]
                  },
                  "compressionCodec": {
                    "type": "string",
                    "enum": [
                      "none",
                      "gzip",
                      "snappy",
                      "lz4"
                    ],
                    "default": "gzip"
                  },
                  "securityProtocol": {
                    "type": "string",
                    "enum": [
                      "PLAINTEXT",
                      "SASL_SSL"
                    ],
                    "default": "PLAINTEXT"
                  },
                  "saslMechanism": {
                    "type": "string",
                    "enum": [
                      "PLAIN",
                      "SCRAM-SHA-256",
                      "SCRAM-SHA-512"
                    ],
                    "default": "PLAIN",
                    "nullable": true
                  },
                  "saslUsername": {
                    "type": "string",
                    "nullable": true
                  },
                  "saslPassword": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "required": [
                  "topic",
                  "brokers"
                ]
              }
            },
            "required": [
              "id",
              "notifications",
              "via"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "notificationRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "number",
                "readOnly": true
              },
              "via": {
                "type": "string",
                "enum": [
                  "webhook",
                  "kafka"
                ]
              },
              "notifications": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "AuthorizationNotification",
                    "authorization.changed",
                    "BootNotification",
                    "ChargePointChangedNotification",
                    "chargePoint.changed",
                    "evse.changed",
                    "ChargePointSyncConfigurationNotification",
                    "CircuitConsumptionNotification",
                    "circuit.changed",
                    "DiagnosticsStatusNotification",
                    "FirmwareStatusNotification",
                    "HardwareStatusNotification",
                    "LocationChangedNotification",
                    "NetworkStatusNotification",
                    "SecurityEventNotification",
                    "SessionMeterValuesNotification",
                    "SessionStartStopNotification",
                    "session.start.stop.notification",
                    "SessionUpdateNotification",
                    "session.chargingPeriod.changed",
                    "UserChangedNotification",
                    "SubOperatorChangedNotification",
                    "TariffChangedNotification",
                    "tariffGroup.changed",
                    "user.subscriptionChanged",
                    "user.subscription.changed",
                    "ReservationChangedNotification",
                    "PaymentMethodChangedNotification",
                    "PartnerInviteChangedNotification",
                    "reservation.changed",
                    "user.paymentMethod.changed",
                    "userBalance.changed",
                    "partnerInvite.changed",
                    "partnerInviteCorporateBillingPolicy.changed",
                    "roamingPlatform.changed",
                    "parkingSpace.occupancyStatus.changed",
                    "partner.changed",
                    "transaction.changed",
                    "settlementReport.created",
                    "idTag.changed",
                    "issue.changed",
                    "chargePoint.dataTransferReceived",
                    "subscriptionPlan.changed",
                    "user.invoiceDetails.changed",
                    "cdr.received",
                    "chargingProfile.applied",
                    "installerJob.changed",
                    "corporateBilling.limitReached"
                  ]
                }
              },
              "includeTimestampInSignature": {
                "type": "boolean",
                "default": false,
                "description": "When true, the notification timestamp will be included in the HMAC signature calculation. The timestamp is added in front of the signed JSON payload delimited by '.' (dot)."
              },
              "skipRoamingInfrastructure": {
                "type": "boolean",
                "default": false,
                "description": "When set to true, notification updates for infrastructure received via roaming are excluded. Affected notification types: ChargePointChangedNotification, chargePoint.changed, evse.changed, and LocationChangedNotification. All other notification types are unaffected."
              },
              "suppressSelfNotifications": {
                "type": "boolean",
                "default": false,
                "description": "When true, this webhook will not send notifications for actions performed via the Public API using the same API token that owns this webhook. Useful when the integration only needs to react to external events."
              },
              "webhook": {
                "type": "object",
                "description": "Webhook configuration. Only present and required in case via = webhook",
                "properties": {
                  "callbackUrl": {
                    "type": "string",
                    "format": "uri",
                    "maxLength": 500,
                    "example": "https://myserver.com/send/callback/here"
                  }
                },
                "required": [
                  "callbackUrl"
                ]
              },
              "kafka": {
                "type": "object",
                "description": "Kafka configuration. Only present and required in case via = kafka",
                "properties": {
                  "topic": {
                    "type": "string",
                    "example": "my-topic"
                  },
                  "brokers": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "example": [
                      "localhost:9092"
                    ]
                  },
                  "compressionCodec": {
                    "type": "string",
                    "enum": [
                      "none",
                      "gzip",
                      "snappy",
                      "lz4"
                    ],
                    "default": "gzip"
                  },
                  "securityProtocol": {
                    "type": "string",
                    "enum": [
                      "PLAINTEXT",
                      "SASL_SSL"
                    ],
                    "default": "PLAINTEXT"
                  },
                  "saslMechanism": {
                    "type": "string",
                    "enum": [
                      "PLAIN",
                      "SCRAM-SHA-256",
                      "SCRAM-SHA-512"
                    ],
                    "default": "PLAIN",
                    "nullable": true
                  },
                  "saslUsername": {
                    "type": "string",
                    "nullable": true
                  },
                  "saslPassword": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "required": [
                  "topic",
                  "brokers"
                ]
              }
            },
            "required": [
              "id",
              "notifications",
              "via"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "notificationsCreate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "number",
                "readOnly": true
              },
              "via": {
                "type": "string",
                "enum": [
                  "webhook",
                  "kafka"
                ]
              },
              "notifications": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "AuthorizationNotification",
                    "authorization.changed",
                    "BootNotification",
                    "ChargePointChangedNotification",
                    "chargePoint.changed",
                    "evse.changed",
                    "ChargePointSyncConfigurationNotification",
                    "CircuitConsumptionNotification",
                    "circuit.changed",
                    "DiagnosticsStatusNotification",
                    "FirmwareStatusNotification",
                    "HardwareStatusNotification",
                    "LocationChangedNotification",
                    "NetworkStatusNotification",
                    "SecurityEventNotification",
                    "SessionMeterValuesNotification",
                    "SessionStartStopNotification",
                    "session.start.stop.notification",
                    "SessionUpdateNotification",
                    "session.chargingPeriod.changed",
                    "UserChangedNotification",
                    "SubOperatorChangedNotification",
                    "TariffChangedNotification",
                    "tariffGroup.changed",
                    "user.subscriptionChanged",
                    "user.subscription.changed",
                    "ReservationChangedNotification",
                    "PaymentMethodChangedNotification",
                    "PartnerInviteChangedNotification",
                    "reservation.changed",
                    "user.paymentMethod.changed",
                    "userBalance.changed",
                    "partnerInvite.changed",
                    "partnerInviteCorporateBillingPolicy.changed",
                    "roamingPlatform.changed",
                    "parkingSpace.occupancyStatus.changed",
                    "partner.changed",
                    "transaction.changed",
                    "settlementReport.created",
                    "idTag.changed",
                    "issue.changed",
                    "chargePoint.dataTransferReceived",
                    "subscriptionPlan.changed",
                    "user.invoiceDetails.changed",
                    "cdr.received",
                    "chargingProfile.applied",
                    "installerJob.changed",
                    "corporateBilling.limitReached"
                  ]
                }
              },
              "includeTimestampInSignature": {
                "type": "boolean",
                "default": false,
                "description": "When true, the notification timestamp will be included in the HMAC signature calculation. The timestamp is added in front of the signed JSON payload delimited by '.' (dot)."
              },
              "skipRoamingInfrastructure": {
                "type": "boolean",
                "default": false,
                "description": "When set to true, notification updates for infrastructure received via roaming are excluded. Affected notification types: ChargePointChangedNotification, chargePoint.changed, evse.changed, and LocationChangedNotification. All other notification types are unaffected."
              },
              "suppressSelfNotifications": {
                "type": "boolean",
                "default": false,
                "description": "When true, this webhook will not send notifications for actions performed via the Public API using the same API token that owns this webhook. Useful when the integration only needs to react to external events."
              },
              "webhook": {
                "type": "object",
                "description": "Webhook configuration. Only present and required in case via = webhook",
                "properties": {
                  "callbackUrl": {
                    "type": "string",
                    "format": "uri",
                    "maxLength": 500,
                    "example": "https://myserver.com/send/callback/here"
                  }
                },
                "required": [
                  "callbackUrl"
                ]
              },
              "kafka": {
                "type": "object",
                "description": "Kafka configuration. Only present and required in case via = kafka",
                "properties": {
                  "topic": {
                    "type": "string",
                    "example": "my-topic"
                  },
                  "brokers": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "example": [
                      "localhost:9092"
                    ]
                  },
                  "compressionCodec": {
                    "type": "string",
                    "enum": [
                      "none",
                      "gzip",
                      "snappy",
                      "lz4"
                    ],
                    "default": "gzip"
                  },
                  "securityProtocol": {
                    "type": "string",
                    "enum": [
                      "PLAINTEXT",
                      "SASL_SSL"
                    ],
                    "default": "PLAINTEXT"
                  },
                  "saslMechanism": {
                    "type": "string",
                    "enum": [
                      "PLAIN",
                      "SCRAM-SHA-256",
                      "SCRAM-SHA-512"
                    ],
                    "default": "PLAIN",
                    "nullable": true
                  },
                  "saslUsername": {
                    "type": "string",
                    "nullable": true
                  },
                  "saslPassword": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "required": [
                  "topic",
                  "brokers"
                ]
              }
            },
            "required": [
              "id",
              "notifications",
              "via"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "notificationsUnsubscribe": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "oauthTokenRevoke": {
    "200": {
      "schema": {
        "type": "object",
        "maxProperties": 0,
        "additionalProperties": false
      }
    },
    "400": {
      "schema": {
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "description": "OAuth 2.0 error code returned by token exchange or token revocation responses.",
            "type": "string",
            "enum": [
              "invalid_request",
              "invalid_client",
              "unsupported_grant_type"
            ],
            "example": "invalid_client"
          },
          "error_description": {
            "type": "string",
            "description": "A human-readable description of the error, suitable for logging or display to a developer.",
            "example": "Client authentication failed."
          }
        },
        "description": "OAuth 2.0 error response per RFC 6749 Section 5.2 and RFC 7009 Section 2.2.1. This shape differs from the standard API error envelope to comply with the OAuth specification.\n"
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "description": "OAuth 2.0 error code returned by token exchange or token revocation responses.",
            "type": "string",
            "enum": [
              "invalid_request",
              "invalid_client",
              "unsupported_grant_type"
            ],
            "example": "invalid_client"
          },
          "error_description": {
            "type": "string",
            "description": "A human-readable description of the error, suitable for logging or display to a developer.",
            "example": "Client authentication failed."
          }
        },
        "description": "OAuth 2.0 error response per RFC 6749 Section 5.2 and RFC 7009 Section 2.2.1. This shape differs from the standard API error envelope to comply with the OAuth specification.\n"
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "oauthTokenExchange": {
    "200": {
      "schema": {
        "type": "object",
        "required": [
          "access_token",
          "token_type",
          "expires_in"
        ],
        "properties": {
          "access_token": {
            "type": "string",
            "description": "The opaque bearer token. Use in the `Authorization: Bearer ...` header on subsequent API requests.",
            "example": "a3f1c0d2b9e4..."
          },
          "token_type": {
            "type": "string",
            "enum": [
              "Bearer"
            ],
            "description": "The token type. Always `Bearer` per RFC 6749 Section 7.1."
          },
          "expires_in": {
            "type": "integer",
            "description": "The bearer token lifetime in seconds. Always 3600 (1 hour).",
            "example": 3600
          }
        },
        "description": "Successful token exchange response per RFC 6749 Section 5.1. No `refresh_token` is issued — machine clients call the token exchange endpoint again with their client credentials when the bearer token expires.\n"
      }
    },
    "400": {
      "schema": {
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "description": "OAuth 2.0 error code returned by token exchange or token revocation responses.",
            "type": "string",
            "enum": [
              "invalid_request",
              "invalid_client",
              "unsupported_grant_type"
            ],
            "example": "invalid_client"
          },
          "error_description": {
            "type": "string",
            "description": "A human-readable description of the error, suitable for logging or display to a developer.",
            "example": "Client authentication failed."
          }
        },
        "description": "OAuth 2.0 error response per RFC 6749 Section 5.2 and RFC 7009 Section 2.2.1. This shape differs from the standard API error envelope to comply with the OAuth specification.\n"
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "description": "OAuth 2.0 error code returned by token exchange or token revocation responses.",
            "type": "string",
            "enum": [
              "invalid_request",
              "invalid_client",
              "unsupported_grant_type"
            ],
            "example": "invalid_client"
          },
          "error_description": {
            "type": "string",
            "description": "A human-readable description of the error, suitable for logging or display to a developer.",
            "example": "Client authentication failed."
          }
        },
        "description": "OAuth 2.0 error response per RFC 6749 Section 5.2 and RFC 7009 Section 2.2.1. This shape differs from the standard API error envelope to comply with the OAuth specification.\n"
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "adminList": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "operatorId",
                "email",
                "name",
                "roleId"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "Unique identifier of the administrator"
                },
                "operatorId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "email": {
                  "type": "string",
                  "format": "email",
                  "description": "Email address of the administrator"
                },
                "name": {
                  "type": "string",
                  "description": "Display name of the administrator"
                },
                "externalSsoId": {
                  "type": "string",
                  "description": "External SSO identifier from the identity provider (e.g., Azure AD object ID, Okta user ID).\nOnly present when the administrator has SSO authentication enabled. Omitted from response when not applicable.\n"
                },
                "partnerId": {
                  "type": "integer",
                  "description": "Partner ID if the administrator is a partner admin.\nOnly present for partner admins, omitted for operator admins.\n"
                },
                "subOperatorId": {
                  "type": "integer",
                  "description": "Sub-operator ID if admin belongs to a sub-operator.\nOmitted when not applicable.\n"
                },
                "installationAndMaintenanceCompanyId": {
                  "type": "integer",
                  "description": "Installation and maintenance company ID if admin belongs to an I&M company.\nOmitted when not applicable.\n"
                },
                "roleId": {
                  "type": "integer",
                  "description": "Admin role ID"
                },
                "permissions": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "List of permission names assigned to the administrator.\nOnly present when `?include[]=permissions` is specified.\n",
                  "example": [
                    "ChargePoints.view",
                    "ChargePoints.update",
                    "Sessions.view"
                  ]
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "adminRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "operatorId",
              "email",
              "name",
              "roleId"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "Unique identifier of the administrator"
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "email": {
                "type": "string",
                "format": "email",
                "description": "Email address of the administrator"
              },
              "name": {
                "type": "string",
                "description": "Display name of the administrator"
              },
              "externalSsoId": {
                "type": "string",
                "description": "External SSO identifier from the identity provider (e.g., Azure AD object ID, Okta user ID).\nOnly present when the administrator has SSO authentication enabled. Omitted from response when not applicable.\n"
              },
              "partnerId": {
                "type": "integer",
                "description": "Partner ID if the administrator is a partner admin.\nOnly present for partner admins, omitted for operator admins.\n"
              },
              "subOperatorId": {
                "type": "integer",
                "description": "Sub-operator ID if admin belongs to a sub-operator.\nOmitted when not applicable.\n"
              },
              "installationAndMaintenanceCompanyId": {
                "type": "integer",
                "description": "Installation and maintenance company ID if admin belongs to an I&M company.\nOmitted when not applicable.\n"
              },
              "roleId": {
                "type": "integer",
                "description": "Admin role ID"
              },
              "permissions": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "List of permission names assigned to the administrator.\nOnly present when `?include[]=permissions` is specified.\n",
                "example": [
                  "ChargePoints.view",
                  "ChargePoints.update",
                  "Sessions.view"
                ]
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "adminPermissions": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of permission names",
            "example": [
              "ChargePoints.view",
              "ChargePoints.update",
              "Sessions.view"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "authorizationReadDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Authorization.\n\nReturned by the deprecated Authorization / Read (v1.0) endpoint. Session responses and session\nwebhook notifications embed the session authorization schema instead.\n",
            "properties": {
              "id": {
                "type": "integer"
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "method": {
                "description": "The method used to authorize the charging session.\n- `user_device` - Authorization via mobile app or web portal\n- `rfid_tag` - Authorization via physical RFID card\n- `mac_address` - Authorization via vehicle MAC address (AutoCharge)\n- `admin` - Manual authorization by admin user\n- `plug_and_charge` - Authorization via Plug & Charge\n- `plug_and_charge_iso15118` - Authorization via ISO 15118 Plug & Charge\n- `payment_terminal` - Authorization via payment terminal\n- `mobile_app` - Authorization received from a roaming platform via OCPI\n",
                "type": "string",
                "enum": [
                  "user_device",
                  "rfid_tag",
                  "mac_address",
                  "admin",
                  "plug_and_charge",
                  "plug_and_charge_iso15118",
                  "payment_terminal",
                  "mobile_app"
                ]
              },
              "source": {
                "description": "The origin of the authorization request.\n- `local` - Authorization initiated directly on this platform\n- `roaming` - Authorization received from a roaming platform (OCPI/Hubject). OCPI authorizations report the method as `mobile_app`.\n- `third_party` - Authorization initiated by a third-party authority\n",
                "type": "string",
                "enum": [
                  "local",
                  "roaming",
                  "third_party"
                ]
              },
              "createdAt": {
                "type": "string",
                "format": "date-time"
              },
              "createdAtLocal": {
                "type": "string",
                "format": "date-time",
                "description": "The creation time in the local time zone of the charge point, falling back to the operator's default time zone."
              },
              "status": {
                "description": "The status of the authorization request.\n- `accepted` - Authorization was approved and the user can start charging\n- `rejected` - Authorization was denied and the user cannot charge\n- `pending` - Authorization is awaiting approval or validation\n",
                "type": "string",
                "enum": [
                  "accepted",
                  "rejected",
                  "pending"
                ]
              },
              "rejectionReason": {
                "type": "string",
                "nullable": true,
                "description": "The reason for rejecting the authorization. `null` unless status is `rejected`."
              },
              "userId": {
                "type": "integer",
                "nullable": true,
                "description": "The user that is authorized. `null` when the authorization is not linked to a local user."
              },
              "rfidTagUid": {
                "type": "string",
                "nullable": true,
                "description": "The UID of the identification tag that created the authorization. Only populated when source is\n`local` or `third_party`; `null` for roaming authorizations, whose token details are in the `roaming`\nobject.\n"
              },
              "roaming": {
                "description": "In case source is `roaming`, this object describes the EMSP that gave the authorization",
                "type": "object",
                "properties": {
                  "platformId": {
                    "description": "The roaming platform ID that gave the authorization",
                    "type": "integer"
                  },
                  "platformRoleId": {
                    "description": "The role that gave the authorization (the EMSP)",
                    "type": "integer"
                  },
                  "platformRole": {
                    "description": "The role identifier",
                    "type": "string"
                  },
                  "reference": {
                    "description": "OCPI's authorization_reference, or Hubject's SessionID",
                    "type": "string"
                  },
                  "client": {
                    "description": "OCPI's contractId, or Hubject's EVCO ID",
                    "type": "string"
                  }
                },
                "required": [
                  "platformId",
                  "platformRoleId",
                  "platformRole",
                  "reference",
                  "client"
                ]
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "method",
              "source",
              "createdAt",
              "status",
              "rejectionReason",
              "userId",
              "rfidTagUid",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "authorizationsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Authorization",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "method": {
                  "description": "The method used to authorize the charging session.\n- `user_device` - Authorization via mobile app or web portal\n- `id_tag` - Authorization via physical RFID card\n- `admin` - Manual authorization by admin user\n- `plug_and_charge` - Authorization via Plug & Charge protocol\n- `roaming` - Authorization via roaming platform (OCPI/Hubject)\n- `payment_terminal` - Authorization via payment terminal\n- `plug_and_charge_iso15118` - Authorization via ISO15118 Plug & Charge protocol\n",
                  "type": "string",
                  "enum": [
                    "user_device",
                    "id_tag",
                    "admin",
                    "plug_and_charge",
                    "roaming",
                    "payment_terminal",
                    "plug_and_charge_iso15118"
                  ]
                },
                "source": {
                  "description": "In case roaming is set, the method can only be user_device or id_tag",
                  "type": "string",
                  "enum": [
                    "local",
                    "roaming"
                  ]
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "accepted",
                    "rejected",
                    "pending"
                  ]
                },
                "rejectionReason": {
                  "type": "string",
                  "nullable": true
                },
                "userId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The user that is authorized. For anonymous users this value is 0"
                },
                "idTagUid": {
                  "type": "string",
                  "nullable": true,
                  "description": "The UID of the Id Tag that created the authorization. It could be of an RFID card or MAC address."
                },
                "roaming": {
                  "description": "Roaming information for authorizations from external EMSPs.\nPresent only when source is 'roaming'.\n\nNote: The platformRoleId field is conditionally included:\n- Always present for OCPI authorizations\n- May be absent for Hubject authorizations (only included when hubject_platform_role_id is set)\n",
                  "type": "object",
                  "nullable": true,
                  "properties": {
                    "platformId": {
                      "description": "The roaming platform ID that gave the authorization",
                      "type": "integer"
                    },
                    "platformRoleId": {
                      "description": "The ID of the roaming operator role (EMSP) that gave the authorization.\n\nConditional presence:\n- OCPI: Always present\n- Hubject: Only present when hubject_platform_role_id is set in the authorization\n",
                      "type": "integer"
                    },
                    "platformRole": {
                      "description": "The role identifier",
                      "type": "string"
                    },
                    "reference": {
                      "description": "OCPI's authorization_reference, or Hubjects SessionID",
                      "type": "string"
                    },
                    "client": {
                      "description": "OCPI's contractId, or Hubjects EVCO ID",
                      "type": "string"
                    }
                  }
                },
                "chargePointId": {
                  "type": "integer"
                },
                "evseId": {
                  "type": "integer"
                },
                "sessionIds": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  }
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "method",
                "source",
                "createdAt",
                "status",
                "rejectionReason",
                "chargePointId",
                "sessionIds"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "authorizationRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Authorization",
            "properties": {
              "id": {
                "type": "integer"
              },
              "method": {
                "description": "The method used to authorize the charging session.\n- `user_device` - Authorization via mobile app or web portal\n- `id_tag` - Authorization via physical RFID card\n- `admin` - Manual authorization by admin user\n- `plug_and_charge` - Authorization via Plug & Charge protocol\n- `roaming` - Authorization via roaming platform (OCPI/Hubject)\n- `payment_terminal` - Authorization via payment terminal\n- `plug_and_charge_iso15118` - Authorization via ISO15118 Plug & Charge protocol\n",
                "type": "string",
                "enum": [
                  "user_device",
                  "id_tag",
                  "admin",
                  "plug_and_charge",
                  "roaming",
                  "payment_terminal",
                  "plug_and_charge_iso15118"
                ]
              },
              "source": {
                "description": "In case roaming is set, the method can only be user_device or id_tag",
                "type": "string",
                "enum": [
                  "local",
                  "roaming"
                ]
              },
              "createdAt": {
                "type": "string",
                "format": "date-time"
              },
              "status": {
                "type": "string",
                "enum": [
                  "accepted",
                  "rejected",
                  "pending"
                ]
              },
              "rejectionReason": {
                "type": "string",
                "nullable": true
              },
              "userId": {
                "type": "integer",
                "nullable": true,
                "description": "The user that is authorized. For anonymous users this value is 0"
              },
              "idTagUid": {
                "type": "string",
                "nullable": true,
                "description": "The UID of the Id Tag that created the authorization. It could be of an RFID card or MAC address."
              },
              "roaming": {
                "description": "Roaming information for authorizations from external EMSPs.\nPresent only when source is 'roaming'.\n\nNote: The platformRoleId field is conditionally included:\n- Always present for OCPI authorizations\n- May be absent for Hubject authorizations (only included when hubject_platform_role_id is set)\n",
                "type": "object",
                "nullable": true,
                "properties": {
                  "platformId": {
                    "description": "The roaming platform ID that gave the authorization",
                    "type": "integer"
                  },
                  "platformRoleId": {
                    "description": "The ID of the roaming operator role (EMSP) that gave the authorization.\n\nConditional presence:\n- OCPI: Always present\n- Hubject: Only present when hubject_platform_role_id is set in the authorization\n",
                    "type": "integer"
                  },
                  "platformRole": {
                    "description": "The role identifier",
                    "type": "string"
                  },
                  "reference": {
                    "description": "OCPI's authorization_reference, or Hubjects SessionID",
                    "type": "string"
                  },
                  "client": {
                    "description": "OCPI's contractId, or Hubjects EVCO ID",
                    "type": "string"
                  }
                }
              },
              "chargePointId": {
                "type": "integer"
              },
              "evseId": {
                "type": "integer"
              },
              "sessionIds": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "method",
              "source",
              "createdAt",
              "status",
              "rejectionReason",
              "chargePointId",
              "sessionIds"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "authorizationsListingV2_1": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Authorization",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "operatorId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "method": {
                  "description": "The method used to authorize the charging session.\n- `user_device` - Authorization via mobile app or web portal\n- `id_tag` - Authorization via physical RFID card\n- `mac_address` - Authorization via vehicle MAC address (AutoCharge)\n- `admin` - Manual authorization by admin user\n- `plug_and_charge` - Authorization via Plug & Charge protocol\n- `roaming` - Authorization via roaming platform (OCPI/Hubject)\n- `payment_terminal` - Authorization via payment terminal\n- `plug_and_charge_iso15118` - Authorization via ISO15118 Plug & Charge protocol\n",
                  "type": "string",
                  "enum": [
                    "user_device",
                    "id_tag",
                    "mac_address",
                    "admin",
                    "plug_and_charge",
                    "roaming",
                    "payment_terminal",
                    "plug_and_charge_iso15118"
                  ]
                },
                "source": {
                  "description": "The origin of the authorization request.\n- `local` - Authorization initiated directly on this platform (via mobile app, RFID card, MAC address, admin, or payment terminal)\n- `roaming` - Authorization received from a roaming platform (OCPI/Hubject). When source is roaming, method can only be user_device or id_tag.\n",
                  "type": "string",
                  "enum": [
                    "local",
                    "roaming"
                  ]
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "status": {
                  "description": "The status of the authorization request.\n- `accepted` - Authorization was approved and the user can start charging\n- `rejected` - Authorization was denied and the user cannot charge\n- `pending` - Authorization is awaiting approval or validation\n",
                  "type": "string",
                  "enum": [
                    "accepted",
                    "rejected",
                    "pending"
                  ]
                },
                "rejectionReason": {
                  "type": "string",
                  "description": "The reason for rejecting the authorization. Only present when status is rejected."
                },
                "userId": {
                  "type": "integer",
                  "description": "The user that is authorized. For anonymous users this value is 0"
                },
                "idTagUid": {
                  "type": "string",
                  "description": "The UID of the Id Tag that created the authorization. It could be of an RFID card or MAC address."
                },
                "roaming": {
                  "description": "Roaming information for authorizations from external EMSPs.\nPresent only when source is 'roaming'.\n\nNote: The platformRoleId field is conditionally included:\n- Always present for OCPI authorizations\n- May be absent for Hubject authorizations (only included when hubject_platform_role_id is set)\n",
                  "type": "object",
                  "properties": {
                    "platformId": {
                      "description": "The roaming platform ID that gave the authorization",
                      "type": "integer"
                    },
                    "platformRoleId": {
                      "description": "The ID of the roaming operator role (EMSP) that gave the authorization.\n\nConditional presence:\n- OCPI: Always present\n- Hubject: Only present when hubject_platform_role_id is set in the authorization\n",
                      "type": "integer"
                    },
                    "platformRole": {
                      "description": "The role identifier",
                      "type": "string"
                    },
                    "reference": {
                      "description": "OCPI's authorization_reference, or Hubjects SessionID",
                      "type": "string"
                    },
                    "client": {
                      "description": "OCPI's contractId, or Hubjects EVCO ID",
                      "type": "string"
                    },
                    "uid": {
                      "description": "OCPI's token UID, as recorded at the moment the authorization was created. Absent for Hubject\nauthorizations and for authorizations created before the identifiers were recorded.\n",
                      "type": "string"
                    },
                    "visualNumber": {
                      "description": "OCPI's token visual_number, as recorded at the moment the authorization was created. Absent for\nHubject authorizations, for authorizations created before the identifiers were recorded, and when\nthe roaming platform did not provide a visual number.\n",
                      "type": "string"
                    }
                  },
                  "required": [
                    "platformId",
                    "platformRole",
                    "reference",
                    "client"
                  ]
                },
                "chargePointId": {
                  "type": "integer"
                },
                "evseId": {
                  "type": "integer"
                },
                "sessionIds": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  }
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "method",
                "source",
                "createdAt",
                "status",
                "userId",
                "idTagUid",
                "sessionIds",
                "lastUpdatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "authorizationReadV2_1": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Authorization",
            "properties": {
              "id": {
                "type": "integer"
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "method": {
                "description": "The method used to authorize the charging session.\n- `user_device` - Authorization via mobile app or web portal\n- `id_tag` - Authorization via physical RFID card\n- `mac_address` - Authorization via vehicle MAC address (AutoCharge)\n- `admin` - Manual authorization by admin user\n- `plug_and_charge` - Authorization via Plug & Charge protocol\n- `roaming` - Authorization via roaming platform (OCPI/Hubject)\n- `payment_terminal` - Authorization via payment terminal\n- `plug_and_charge_iso15118` - Authorization via ISO15118 Plug & Charge protocol\n",
                "type": "string",
                "enum": [
                  "user_device",
                  "id_tag",
                  "mac_address",
                  "admin",
                  "plug_and_charge",
                  "roaming",
                  "payment_terminal",
                  "plug_and_charge_iso15118"
                ]
              },
              "source": {
                "description": "The origin of the authorization request.\n- `local` - Authorization initiated directly on this platform (via mobile app, RFID card, MAC address, admin, or payment terminal)\n- `roaming` - Authorization received from a roaming platform (OCPI/Hubject). When source is roaming, method can only be user_device or id_tag.\n",
                "type": "string",
                "enum": [
                  "local",
                  "roaming"
                ]
              },
              "createdAt": {
                "type": "string",
                "format": "date-time"
              },
              "status": {
                "description": "The status of the authorization request.\n- `accepted` - Authorization was approved and the user can start charging\n- `rejected` - Authorization was denied and the user cannot charge\n- `pending` - Authorization is awaiting approval or validation\n",
                "type": "string",
                "enum": [
                  "accepted",
                  "rejected",
                  "pending"
                ]
              },
              "rejectionReason": {
                "type": "string",
                "description": "The reason for rejecting the authorization. Only present when status is rejected."
              },
              "userId": {
                "type": "integer",
                "description": "The user that is authorized. For anonymous users this value is 0"
              },
              "idTagUid": {
                "type": "string",
                "description": "The UID of the Id Tag that created the authorization. It could be of an RFID card or MAC address."
              },
              "roaming": {
                "description": "Roaming information for authorizations from external EMSPs.\nPresent only when source is 'roaming'.\n\nNote: The platformRoleId field is conditionally included:\n- Always present for OCPI authorizations\n- May be absent for Hubject authorizations (only included when hubject_platform_role_id is set)\n",
                "type": "object",
                "properties": {
                  "platformId": {
                    "description": "The roaming platform ID that gave the authorization",
                    "type": "integer"
                  },
                  "platformRoleId": {
                    "description": "The ID of the roaming operator role (EMSP) that gave the authorization.\n\nConditional presence:\n- OCPI: Always present\n- Hubject: Only present when hubject_platform_role_id is set in the authorization\n",
                    "type": "integer"
                  },
                  "platformRole": {
                    "description": "The role identifier",
                    "type": "string"
                  },
                  "reference": {
                    "description": "OCPI's authorization_reference, or Hubjects SessionID",
                    "type": "string"
                  },
                  "client": {
                    "description": "OCPI's contractId, or Hubjects EVCO ID",
                    "type": "string"
                  },
                  "uid": {
                    "description": "OCPI's token UID, as recorded at the moment the authorization was created. Absent for Hubject\nauthorizations and for authorizations created before the identifiers were recorded.\n",
                    "type": "string"
                  },
                  "visualNumber": {
                    "description": "OCPI's token visual_number, as recorded at the moment the authorization was created. Absent for\nHubject authorizations, for authorizations created before the identifiers were recorded, and when\nthe roaming platform did not provide a visual number.\n",
                    "type": "string"
                  }
                },
                "required": [
                  "platformId",
                  "platformRole",
                  "reference",
                  "client"
                ]
              },
              "chargePointId": {
                "type": "integer"
              },
              "evseId": {
                "type": "integer"
              },
              "sessionIds": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "method",
              "source",
              "createdAt",
              "status",
              "userId",
              "idTagUid",
              "sessionIds",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "bookingRequestsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "title": "Create Booking Base",
                  "description": "Base properties for create booking request (shared between input and response)",
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "System-generated unique identifier",
                      "readOnly": true
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "create"
                      ],
                      "description": "Type of booking request - must be \"create\""
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "pending",
                        "approved",
                        "rejected"
                      ],
                      "readOnly": true,
                      "description": "Status of booking request:\n- **pending**: Request is awaiting processing\n- **approved**: Request has been approved\n- **rejected**: Request has been rejected\n"
                    },
                    "rejectionReason": {
                      "type": "string",
                      "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
                      "readOnly": true
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time",
                      "readOnly": true
                    },
                    "lastUpdatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "readOnly": true
                    },
                    "userId": {
                      "type": "integer",
                      "description": "ID of the user for whom the booking is made"
                    },
                    "locationId": {
                      "type": "integer",
                      "description": "ID of the target location"
                    },
                    "externalId": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "External identifier from roaming partner (e.g., OCPI request_id).\n\nResponse behavior: Only present when an external ID was provided. Omitted when not specified.\n"
                    },
                    "startAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "Start time of the booking"
                    },
                    "endAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "End time of the booking"
                    },
                    "evseId": {
                      "type": "integer",
                      "description": "Specific EVSE ID to book.\n\nResponse behavior: Only present when a specific EVSE was requested. Omitted when EVSE selection was based on criteria or left to the system.\n"
                    },
                    "evseCriteria": {
                      "type": "object",
                      "description": "Criteria for automatic EVSE selection based on technical requirements. Ignored when evseId is explicitly provided.\n\nResponse behavior: Only present when EVSE criteria were specified in the request. Omitted when evseId was provided or no criteria were specified.\n",
                      "properties": {
                        "currentType": {
                          "type": "string",
                          "nullable": true,
                          "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n",
                          "enum": [
                            "ac",
                            "dc"
                          ]
                        },
                        "minPower": {
                          "type": "number",
                          "description": "Minimum power requirement in kW. Omitted in response when not specified."
                        },
                        "maxPower": {
                          "type": "number",
                          "description": "Maximum power requirement in kW. Omitted in response when not specified."
                        },
                        "connectorType": {
                          "type": "string",
                          "nullable": true,
                          "description": "Type of connector available on the EVSE:\n- **type1**: Type 1 connector (SAE J1772 AC)\n- **type2**: Type 2 connector (IEC 62196-2 AC)\n- **type3**: Type 3 connector (IEC 62196-2 AC)\n- **chademo**: CHAdeMO DC fast charging\n- **ccs1**: Combined Charging System 1 (CCS1/Combo 1)\n- **ccs2**: Combined Charging System 2 (CCS2/Combo 2)\n- **schuko**: Standard European household socket\n- **nacs**: North American Charging Standard (Tesla)\n- **cee16**: CEE 16A industrial connector\n- **cee32**: CEE 32A industrial connector\n- **j1772**: SAE J1772 connector\n- **inductive**: Inductive/wireless charging\n- **nema-5-20**: Domestic M NEMA 5-20 Socket\n- **type-e-french**: French Type E socket\n- **type-g-british**: British Type G socket\n- **type-j-swiss**: Swiss Type J socket\n- **avcon**: AVCON connector (Australian standard)\n- **gb-t-ac**: GB/T AC connector (Chinese standard)\n- **gb-t-dc**: GB/T DC connector (Chinese standard)\n- **chaoji**: ChaoJi (CHAdeMO 3.0)\n- **nema-6-30**: NEMA 6-30\n- **nema-6-50**: NEMA 6-50\n- **mcs**: Megawatt Charging System (MCS)\n- **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows.\n",
                          "enum": [
                            "type1",
                            "type2",
                            "type3",
                            "chademo",
                            "ccs1",
                            "ccs2",
                            "schuko",
                            "nacs",
                            "cee16",
                            "cee32",
                            "j1772",
                            "inductive",
                            "nema-5-20",
                            "type-e-french",
                            "type-g-british",
                            "type-j-swiss",
                            "avcon",
                            "gb-t-ac",
                            "gb-t-dc",
                            "chaoji",
                            "nema-6-30",
                            "nema-6-50",
                            "mcs",
                            "unknown"
                          ]
                        }
                      }
                    },
                    "parkingSpaceCriteria": {
                      "type": "object",
                      "description": "Parking space criteria for selecting EVSE with suitable parking.\n\nResponse behavior: This property is only included in the response when parking criteria were specified in the request. If no criteria were provided, this property is omitted entirely.\n",
                      "properties": {
                        "vehicleWeightKg": {
                          "type": "integer",
                          "description": "Vehicle weight in kilograms. Omitted in response when not specified.",
                          "minimum": 1
                        },
                        "vehicleHeightCm": {
                          "type": "integer",
                          "description": "Vehicle height in centimeters. Omitted in response when not specified.",
                          "minimum": 1
                        },
                        "vehicleLengthCm": {
                          "type": "integer",
                          "description": "Vehicle length in centimeters. Omitted in response when not specified.",
                          "minimum": 1
                        },
                        "vehicleWidthCm": {
                          "type": "integer",
                          "description": "Vehicle width in centimeters. Omitted in response when not specified.",
                          "minimum": 1
                        },
                        "vehicleType": {
                          "type": "string",
                          "nullable": true,
                          "description": "Type of vehicle that can use the parking space:\n- **two_and_three_wheel_vehicles_and_quadricycles**: Motorcycles, scooters, and similar\n- **passenger_vehicles**: Standard cars\n- **passenger_vehicles_with_trailer**: Cars with trailers attached\n- **light_duty_vans**: Small commercial vans\n- **heavy_duty_tractor_units_without_trailer**: Heavy trucks without trailer\n- **heavy_duty_trucks_without_articulation_point**: Heavy trucks without articulation\n- **heavy_duty_trucks_with_trailer_attached**: Heavy trucks with trailer\n- **buses_or_motor_coaches**: Buses and coaches\n",
                          "enum": [
                            "two_and_three_wheel_vehicles_and_quadricycles",
                            "passenger_vehicles",
                            "passenger_vehicles_with_trailer",
                            "light_duty_vans",
                            "heavy_duty_tractor_units_without_trailer",
                            "heavy_duty_trucks_without_articulation_point",
                            "heavy_duty_trucks_with_trailer_attached",
                            "buses_or_motor_coaches"
                          ]
                        },
                        "driveThroughRequired": {
                          "type": "boolean",
                          "description": "Whether parking space must support drive-through charging. Omitted in response when not specified."
                        },
                        "refrigerationOutletRequired": {
                          "type": "boolean",
                          "description": "Whether parking space must have refrigeration outlet. Omitted in response when not specified."
                        },
                        "dangerousGoodsAllowed": {
                          "type": "boolean",
                          "description": "Whether parking space must allow dangerous goods vehicles. Omitted in response when not specified."
                        }
                      }
                    },
                    "authorizedTokens": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
                          },
                          "uid": {
                            "type": "string",
                            "description": "Unique identifier of the OCPI token"
                          },
                          "type": {
                            "type": "string",
                            "description": "Type of token (e.g., RFID, APP_USER)"
                          },
                          "contractId": {
                            "type": "string",
                            "description": "Contract identifier associated with the token (optional)"
                          },
                          "emspCountryCode": {
                            "type": "string",
                            "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
                          },
                          "emspPartyId": {
                            "type": "string",
                            "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
                          }
                        },
                        "required": [
                          "id",
                          "uid",
                          "type",
                          "emspCountryCode",
                          "emspPartyId"
                        ]
                      },
                      "description": "Array of OCPI token details authorized for this booking, including eMSP information for roaming scenarios.\n\nResponse behavior: Only present when the booking has authorized tokens. Omitted when no tokens are associated with the booking.\n"
                    },
                    "bookingId": {
                      "type": "integer",
                      "description": "ID of the created booking.\n\nResponse behavior: Only present when status is \"approved\". Omitted for \"pending\" and \"rejected\" requests.\n"
                    }
                  },
                  "required": [
                    "type",
                    "userId",
                    "locationId",
                    "startAt",
                    "endAt",
                    "id",
                    "status",
                    "createdAt",
                    "lastUpdatedAt"
                  ]
                },
                {
                  "title": "Update Booking Base",
                  "description": "Base properties for update booking request (shared between input and response)",
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "System-generated unique identifier",
                      "readOnly": true
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "update"
                      ],
                      "description": "Type of booking request - must be \"update\""
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "pending",
                        "approved",
                        "rejected"
                      ],
                      "readOnly": true,
                      "description": "Status of booking request:\n- **pending**: Request is awaiting processing\n- **approved**: Request has been approved\n- **rejected**: Request has been rejected\n"
                    },
                    "rejectionReason": {
                      "type": "string",
                      "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
                      "readOnly": true
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time",
                      "readOnly": true
                    },
                    "lastUpdatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "readOnly": true
                    },
                    "bookingId": {
                      "type": "integer",
                      "description": "ID of the target booking to update"
                    },
                    "userId": {
                      "type": "integer",
                      "description": "ID of the user for whom the booking is made"
                    },
                    "externalId": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "External identifier from roaming partner (e.g., OCPI request_id).\n\nResponse behavior: Only present when an external ID was provided. Omitted when not specified.\n"
                    },
                    "startAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "Updated start time of the booking"
                    },
                    "endAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "Updated end time of the booking"
                    },
                    "authorizedTokens": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
                          },
                          "uid": {
                            "type": "string",
                            "description": "Unique identifier of the OCPI token"
                          },
                          "type": {
                            "type": "string",
                            "description": "Type of token (e.g., RFID, APP_USER)"
                          },
                          "contractId": {
                            "type": "string",
                            "description": "Contract identifier associated with the token (optional)"
                          },
                          "emspCountryCode": {
                            "type": "string",
                            "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
                          },
                          "emspPartyId": {
                            "type": "string",
                            "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
                          }
                        },
                        "required": [
                          "id",
                          "uid",
                          "type",
                          "emspCountryCode",
                          "emspPartyId"
                        ]
                      },
                      "description": "Array of OCPI token details authorized for this booking, including eMSP information for roaming scenarios.\n\nResponse behavior: Only present when the booking has authorized tokens. Omitted when no tokens are associated with the booking.\n"
                    }
                  },
                  "required": [
                    "type",
                    "bookingId",
                    "id",
                    "status",
                    "createdAt",
                    "lastUpdatedAt"
                  ]
                },
                {
                  "title": "Cancel Booking",
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "System-generated unique identifier",
                      "readOnly": true
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "cancel"
                      ],
                      "description": "Type of booking request - must be \"cancel\""
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "pending",
                        "approved",
                        "rejected"
                      ],
                      "readOnly": true,
                      "description": "Status of booking request:\n- **pending**: Request is awaiting processing\n- **approved**: Request has been approved\n- **rejected**: Request has been rejected\n"
                    },
                    "rejectionReason": {
                      "type": "string",
                      "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
                      "readOnly": true
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time",
                      "readOnly": true
                    },
                    "lastUpdatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "readOnly": true
                    },
                    "bookingId": {
                      "type": "integer",
                      "description": "ID of the target booking to cancel"
                    },
                    "externalId": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "External identifier from roaming partner (e.g., OCPI request_id).\n\nResponse behavior: Only present when an external ID was provided. Omitted when not specified.\n"
                    }
                  },
                  "required": [
                    "type",
                    "bookingId",
                    "id",
                    "status",
                    "createdAt",
                    "lastUpdatedAt"
                  ]
                }
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "bookingRequestCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "anyOf": [
              {
                "title": "Create Booking Base",
                "description": "Base properties for create booking request (shared between input and response)",
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "System-generated unique identifier",
                    "readOnly": true
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "create"
                    ],
                    "description": "Type of booking request - must be \"create\""
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "pending",
                      "approved",
                      "rejected"
                    ],
                    "readOnly": true,
                    "description": "Status of booking request:\n- **pending**: Request is awaiting processing\n- **approved**: Request has been approved\n- **rejected**: Request has been rejected\n"
                  },
                  "rejectionReason": {
                    "type": "string",
                    "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
                    "readOnly": true
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "readOnly": true
                  },
                  "lastUpdatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "readOnly": true
                  },
                  "userId": {
                    "type": "integer",
                    "description": "ID of the user for whom the booking is made"
                  },
                  "locationId": {
                    "type": "integer",
                    "description": "ID of the target location"
                  },
                  "externalId": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "External identifier from roaming partner (e.g., OCPI request_id).\n\nResponse behavior: Only present when an external ID was provided. Omitted when not specified.\n"
                  },
                  "startAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Start time of the booking"
                  },
                  "endAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "End time of the booking"
                  },
                  "evseId": {
                    "type": "integer",
                    "description": "Specific EVSE ID to book.\n\nResponse behavior: Only present when a specific EVSE was requested. Omitted when EVSE selection was based on criteria or left to the system.\n"
                  },
                  "evseCriteria": {
                    "type": "object",
                    "description": "Criteria for automatic EVSE selection based on technical requirements. Ignored when evseId is explicitly provided.\n\nResponse behavior: Only present when EVSE criteria were specified in the request. Omitted when evseId was provided or no criteria were specified.\n",
                    "properties": {
                      "currentType": {
                        "type": "string",
                        "nullable": true,
                        "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n",
                        "enum": [
                          "ac",
                          "dc"
                        ]
                      },
                      "minPower": {
                        "type": "number",
                        "description": "Minimum power requirement in kW. Omitted in response when not specified."
                      },
                      "maxPower": {
                        "type": "number",
                        "description": "Maximum power requirement in kW. Omitted in response when not specified."
                      },
                      "connectorType": {
                        "type": "string",
                        "nullable": true,
                        "description": "Type of connector available on the EVSE:\n- **type1**: Type 1 connector (SAE J1772 AC)\n- **type2**: Type 2 connector (IEC 62196-2 AC)\n- **type3**: Type 3 connector (IEC 62196-2 AC)\n- **chademo**: CHAdeMO DC fast charging\n- **ccs1**: Combined Charging System 1 (CCS1/Combo 1)\n- **ccs2**: Combined Charging System 2 (CCS2/Combo 2)\n- **schuko**: Standard European household socket\n- **nacs**: North American Charging Standard (Tesla)\n- **cee16**: CEE 16A industrial connector\n- **cee32**: CEE 32A industrial connector\n- **j1772**: SAE J1772 connector\n- **inductive**: Inductive/wireless charging\n- **nema-5-20**: Domestic M NEMA 5-20 Socket\n- **type-e-french**: French Type E socket\n- **type-g-british**: British Type G socket\n- **type-j-swiss**: Swiss Type J socket\n- **avcon**: AVCON connector (Australian standard)\n- **gb-t-ac**: GB/T AC connector (Chinese standard)\n- **gb-t-dc**: GB/T DC connector (Chinese standard)\n- **chaoji**: ChaoJi (CHAdeMO 3.0)\n- **nema-6-30**: NEMA 6-30\n- **nema-6-50**: NEMA 6-50\n- **mcs**: Megawatt Charging System (MCS)\n- **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows.\n",
                        "enum": [
                          "type1",
                          "type2",
                          "type3",
                          "chademo",
                          "ccs1",
                          "ccs2",
                          "schuko",
                          "nacs",
                          "cee16",
                          "cee32",
                          "j1772",
                          "inductive",
                          "nema-5-20",
                          "type-e-french",
                          "type-g-british",
                          "type-j-swiss",
                          "avcon",
                          "gb-t-ac",
                          "gb-t-dc",
                          "chaoji",
                          "nema-6-30",
                          "nema-6-50",
                          "mcs",
                          "unknown"
                        ]
                      }
                    }
                  },
                  "parkingSpaceCriteria": {
                    "type": "object",
                    "description": "Parking space criteria for selecting EVSE with suitable parking.\n\nResponse behavior: This property is only included in the response when parking criteria were specified in the request. If no criteria were provided, this property is omitted entirely.\n",
                    "properties": {
                      "vehicleWeightKg": {
                        "type": "integer",
                        "description": "Vehicle weight in kilograms. Omitted in response when not specified.",
                        "minimum": 1
                      },
                      "vehicleHeightCm": {
                        "type": "integer",
                        "description": "Vehicle height in centimeters. Omitted in response when not specified.",
                        "minimum": 1
                      },
                      "vehicleLengthCm": {
                        "type": "integer",
                        "description": "Vehicle length in centimeters. Omitted in response when not specified.",
                        "minimum": 1
                      },
                      "vehicleWidthCm": {
                        "type": "integer",
                        "description": "Vehicle width in centimeters. Omitted in response when not specified.",
                        "minimum": 1
                      },
                      "vehicleType": {
                        "type": "string",
                        "nullable": true,
                        "description": "Type of vehicle that can use the parking space:\n- **two_and_three_wheel_vehicles_and_quadricycles**: Motorcycles, scooters, and similar\n- **passenger_vehicles**: Standard cars\n- **passenger_vehicles_with_trailer**: Cars with trailers attached\n- **light_duty_vans**: Small commercial vans\n- **heavy_duty_tractor_units_without_trailer**: Heavy trucks without trailer\n- **heavy_duty_trucks_without_articulation_point**: Heavy trucks without articulation\n- **heavy_duty_trucks_with_trailer_attached**: Heavy trucks with trailer\n- **buses_or_motor_coaches**: Buses and coaches\n",
                        "enum": [
                          "two_and_three_wheel_vehicles_and_quadricycles",
                          "passenger_vehicles",
                          "passenger_vehicles_with_trailer",
                          "light_duty_vans",
                          "heavy_duty_tractor_units_without_trailer",
                          "heavy_duty_trucks_without_articulation_point",
                          "heavy_duty_trucks_with_trailer_attached",
                          "buses_or_motor_coaches"
                        ]
                      },
                      "driveThroughRequired": {
                        "type": "boolean",
                        "description": "Whether parking space must support drive-through charging. Omitted in response when not specified."
                      },
                      "refrigerationOutletRequired": {
                        "type": "boolean",
                        "description": "Whether parking space must have refrigeration outlet. Omitted in response when not specified."
                      },
                      "dangerousGoodsAllowed": {
                        "type": "boolean",
                        "description": "Whether parking space must allow dangerous goods vehicles. Omitted in response when not specified."
                      }
                    }
                  },
                  "authorizedTokens": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
                        },
                        "uid": {
                          "type": "string",
                          "description": "Unique identifier of the OCPI token"
                        },
                        "type": {
                          "type": "string",
                          "description": "Type of token (e.g., RFID, APP_USER)"
                        },
                        "contractId": {
                          "type": "string",
                          "description": "Contract identifier associated with the token (optional)"
                        },
                        "emspCountryCode": {
                          "type": "string",
                          "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
                        },
                        "emspPartyId": {
                          "type": "string",
                          "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
                        }
                      },
                      "required": [
                        "id",
                        "uid",
                        "type",
                        "emspCountryCode",
                        "emspPartyId"
                      ]
                    },
                    "description": "Array of OCPI token details authorized for this booking, including eMSP information for roaming scenarios.\n\nResponse behavior: Only present when the booking has authorized tokens. Omitted when no tokens are associated with the booking.\n"
                  },
                  "bookingId": {
                    "type": "integer",
                    "description": "ID of the created booking.\n\nResponse behavior: Only present when status is \"approved\". Omitted for \"pending\" and \"rejected\" requests.\n"
                  }
                },
                "required": [
                  "type",
                  "userId",
                  "locationId",
                  "startAt",
                  "endAt",
                  "id",
                  "status",
                  "createdAt",
                  "lastUpdatedAt"
                ]
              },
              {
                "title": "Update Booking Base",
                "description": "Base properties for update booking request (shared between input and response)",
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "System-generated unique identifier",
                    "readOnly": true
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "update"
                    ],
                    "description": "Type of booking request - must be \"update\""
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "pending",
                      "approved",
                      "rejected"
                    ],
                    "readOnly": true,
                    "description": "Status of booking request:\n- **pending**: Request is awaiting processing\n- **approved**: Request has been approved\n- **rejected**: Request has been rejected\n"
                  },
                  "rejectionReason": {
                    "type": "string",
                    "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
                    "readOnly": true
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "readOnly": true
                  },
                  "lastUpdatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "readOnly": true
                  },
                  "bookingId": {
                    "type": "integer",
                    "description": "ID of the target booking to update"
                  },
                  "userId": {
                    "type": "integer",
                    "description": "ID of the user for whom the booking is made"
                  },
                  "externalId": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "External identifier from roaming partner (e.g., OCPI request_id).\n\nResponse behavior: Only present when an external ID was provided. Omitted when not specified.\n"
                  },
                  "startAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Updated start time of the booking"
                  },
                  "endAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Updated end time of the booking"
                  },
                  "authorizedTokens": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
                        },
                        "uid": {
                          "type": "string",
                          "description": "Unique identifier of the OCPI token"
                        },
                        "type": {
                          "type": "string",
                          "description": "Type of token (e.g., RFID, APP_USER)"
                        },
                        "contractId": {
                          "type": "string",
                          "description": "Contract identifier associated with the token (optional)"
                        },
                        "emspCountryCode": {
                          "type": "string",
                          "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
                        },
                        "emspPartyId": {
                          "type": "string",
                          "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
                        }
                      },
                      "required": [
                        "id",
                        "uid",
                        "type",
                        "emspCountryCode",
                        "emspPartyId"
                      ]
                    },
                    "description": "Array of OCPI token details authorized for this booking, including eMSP information for roaming scenarios.\n\nResponse behavior: Only present when the booking has authorized tokens. Omitted when no tokens are associated with the booking.\n"
                  }
                },
                "required": [
                  "type",
                  "bookingId",
                  "id",
                  "status",
                  "createdAt",
                  "lastUpdatedAt"
                ]
              },
              {
                "title": "Cancel Booking",
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "System-generated unique identifier",
                    "readOnly": true
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "cancel"
                    ],
                    "description": "Type of booking request - must be \"cancel\""
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "pending",
                      "approved",
                      "rejected"
                    ],
                    "readOnly": true,
                    "description": "Status of booking request:\n- **pending**: Request is awaiting processing\n- **approved**: Request has been approved\n- **rejected**: Request has been rejected\n"
                  },
                  "rejectionReason": {
                    "type": "string",
                    "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
                    "readOnly": true
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "readOnly": true
                  },
                  "lastUpdatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "readOnly": true
                  },
                  "bookingId": {
                    "type": "integer",
                    "description": "ID of the target booking to cancel"
                  },
                  "externalId": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "External identifier from roaming partner (e.g., OCPI request_id).\n\nResponse behavior: Only present when an external ID was provided. Omitted when not specified.\n"
                  }
                },
                "required": [
                  "type",
                  "bookingId",
                  "id",
                  "status",
                  "createdAt",
                  "lastUpdatedAt"
                ]
              }
            ]
          }
        }
      }
    },
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "bookingRequestRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "anyOf": [
              {
                "title": "Create Booking Base",
                "description": "Base properties for create booking request (shared between input and response)",
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "System-generated unique identifier",
                    "readOnly": true
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "create"
                    ],
                    "description": "Type of booking request - must be \"create\""
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "pending",
                      "approved",
                      "rejected"
                    ],
                    "readOnly": true,
                    "description": "Status of booking request:\n- **pending**: Request is awaiting processing\n- **approved**: Request has been approved\n- **rejected**: Request has been rejected\n"
                  },
                  "rejectionReason": {
                    "type": "string",
                    "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
                    "readOnly": true
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "readOnly": true
                  },
                  "lastUpdatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "readOnly": true
                  },
                  "userId": {
                    "type": "integer",
                    "description": "ID of the user for whom the booking is made"
                  },
                  "locationId": {
                    "type": "integer",
                    "description": "ID of the target location"
                  },
                  "externalId": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "External identifier from roaming partner (e.g., OCPI request_id).\n\nResponse behavior: Only present when an external ID was provided. Omitted when not specified.\n"
                  },
                  "startAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Start time of the booking"
                  },
                  "endAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "End time of the booking"
                  },
                  "evseId": {
                    "type": "integer",
                    "description": "Specific EVSE ID to book.\n\nResponse behavior: Only present when a specific EVSE was requested. Omitted when EVSE selection was based on criteria or left to the system.\n"
                  },
                  "evseCriteria": {
                    "type": "object",
                    "description": "Criteria for automatic EVSE selection based on technical requirements. Ignored when evseId is explicitly provided.\n\nResponse behavior: Only present when EVSE criteria were specified in the request. Omitted when evseId was provided or no criteria were specified.\n",
                    "properties": {
                      "currentType": {
                        "type": "string",
                        "nullable": true,
                        "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n",
                        "enum": [
                          "ac",
                          "dc"
                        ]
                      },
                      "minPower": {
                        "type": "number",
                        "description": "Minimum power requirement in kW. Omitted in response when not specified."
                      },
                      "maxPower": {
                        "type": "number",
                        "description": "Maximum power requirement in kW. Omitted in response when not specified."
                      },
                      "connectorType": {
                        "type": "string",
                        "nullable": true,
                        "description": "Type of connector available on the EVSE:\n- **type1**: Type 1 connector (SAE J1772 AC)\n- **type2**: Type 2 connector (IEC 62196-2 AC)\n- **type3**: Type 3 connector (IEC 62196-2 AC)\n- **chademo**: CHAdeMO DC fast charging\n- **ccs1**: Combined Charging System 1 (CCS1/Combo 1)\n- **ccs2**: Combined Charging System 2 (CCS2/Combo 2)\n- **schuko**: Standard European household socket\n- **nacs**: North American Charging Standard (Tesla)\n- **cee16**: CEE 16A industrial connector\n- **cee32**: CEE 32A industrial connector\n- **j1772**: SAE J1772 connector\n- **inductive**: Inductive/wireless charging\n- **nema-5-20**: Domestic M NEMA 5-20 Socket\n- **type-e-french**: French Type E socket\n- **type-g-british**: British Type G socket\n- **type-j-swiss**: Swiss Type J socket\n- **avcon**: AVCON connector (Australian standard)\n- **gb-t-ac**: GB/T AC connector (Chinese standard)\n- **gb-t-dc**: GB/T DC connector (Chinese standard)\n- **chaoji**: ChaoJi (CHAdeMO 3.0)\n- **nema-6-30**: NEMA 6-30\n- **nema-6-50**: NEMA 6-50\n- **mcs**: Megawatt Charging System (MCS)\n- **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows.\n",
                        "enum": [
                          "type1",
                          "type2",
                          "type3",
                          "chademo",
                          "ccs1",
                          "ccs2",
                          "schuko",
                          "nacs",
                          "cee16",
                          "cee32",
                          "j1772",
                          "inductive",
                          "nema-5-20",
                          "type-e-french",
                          "type-g-british",
                          "type-j-swiss",
                          "avcon",
                          "gb-t-ac",
                          "gb-t-dc",
                          "chaoji",
                          "nema-6-30",
                          "nema-6-50",
                          "mcs",
                          "unknown"
                        ]
                      }
                    }
                  },
                  "parkingSpaceCriteria": {
                    "type": "object",
                    "description": "Parking space criteria for selecting EVSE with suitable parking.\n\nResponse behavior: This property is only included in the response when parking criteria were specified in the request. If no criteria were provided, this property is omitted entirely.\n",
                    "properties": {
                      "vehicleWeightKg": {
                        "type": "integer",
                        "description": "Vehicle weight in kilograms. Omitted in response when not specified.",
                        "minimum": 1
                      },
                      "vehicleHeightCm": {
                        "type": "integer",
                        "description": "Vehicle height in centimeters. Omitted in response when not specified.",
                        "minimum": 1
                      },
                      "vehicleLengthCm": {
                        "type": "integer",
                        "description": "Vehicle length in centimeters. Omitted in response when not specified.",
                        "minimum": 1
                      },
                      "vehicleWidthCm": {
                        "type": "integer",
                        "description": "Vehicle width in centimeters. Omitted in response when not specified.",
                        "minimum": 1
                      },
                      "vehicleType": {
                        "type": "string",
                        "nullable": true,
                        "description": "Type of vehicle that can use the parking space:\n- **two_and_three_wheel_vehicles_and_quadricycles**: Motorcycles, scooters, and similar\n- **passenger_vehicles**: Standard cars\n- **passenger_vehicles_with_trailer**: Cars with trailers attached\n- **light_duty_vans**: Small commercial vans\n- **heavy_duty_tractor_units_without_trailer**: Heavy trucks without trailer\n- **heavy_duty_trucks_without_articulation_point**: Heavy trucks without articulation\n- **heavy_duty_trucks_with_trailer_attached**: Heavy trucks with trailer\n- **buses_or_motor_coaches**: Buses and coaches\n",
                        "enum": [
                          "two_and_three_wheel_vehicles_and_quadricycles",
                          "passenger_vehicles",
                          "passenger_vehicles_with_trailer",
                          "light_duty_vans",
                          "heavy_duty_tractor_units_without_trailer",
                          "heavy_duty_trucks_without_articulation_point",
                          "heavy_duty_trucks_with_trailer_attached",
                          "buses_or_motor_coaches"
                        ]
                      },
                      "driveThroughRequired": {
                        "type": "boolean",
                        "description": "Whether parking space must support drive-through charging. Omitted in response when not specified."
                      },
                      "refrigerationOutletRequired": {
                        "type": "boolean",
                        "description": "Whether parking space must have refrigeration outlet. Omitted in response when not specified."
                      },
                      "dangerousGoodsAllowed": {
                        "type": "boolean",
                        "description": "Whether parking space must allow dangerous goods vehicles. Omitted in response when not specified."
                      }
                    }
                  },
                  "authorizedTokens": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
                        },
                        "uid": {
                          "type": "string",
                          "description": "Unique identifier of the OCPI token"
                        },
                        "type": {
                          "type": "string",
                          "description": "Type of token (e.g., RFID, APP_USER)"
                        },
                        "contractId": {
                          "type": "string",
                          "description": "Contract identifier associated with the token (optional)"
                        },
                        "emspCountryCode": {
                          "type": "string",
                          "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
                        },
                        "emspPartyId": {
                          "type": "string",
                          "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
                        }
                      },
                      "required": [
                        "id",
                        "uid",
                        "type",
                        "emspCountryCode",
                        "emspPartyId"
                      ]
                    },
                    "description": "Array of OCPI token details authorized for this booking, including eMSP information for roaming scenarios.\n\nResponse behavior: Only present when the booking has authorized tokens. Omitted when no tokens are associated with the booking.\n"
                  },
                  "bookingId": {
                    "type": "integer",
                    "description": "ID of the created booking.\n\nResponse behavior: Only present when status is \"approved\". Omitted for \"pending\" and \"rejected\" requests.\n"
                  }
                },
                "required": [
                  "type",
                  "userId",
                  "locationId",
                  "startAt",
                  "endAt",
                  "id",
                  "status",
                  "createdAt",
                  "lastUpdatedAt"
                ]
              },
              {
                "title": "Update Booking Base",
                "description": "Base properties for update booking request (shared between input and response)",
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "System-generated unique identifier",
                    "readOnly": true
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "update"
                    ],
                    "description": "Type of booking request - must be \"update\""
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "pending",
                      "approved",
                      "rejected"
                    ],
                    "readOnly": true,
                    "description": "Status of booking request:\n- **pending**: Request is awaiting processing\n- **approved**: Request has been approved\n- **rejected**: Request has been rejected\n"
                  },
                  "rejectionReason": {
                    "type": "string",
                    "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
                    "readOnly": true
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "readOnly": true
                  },
                  "lastUpdatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "readOnly": true
                  },
                  "bookingId": {
                    "type": "integer",
                    "description": "ID of the target booking to update"
                  },
                  "userId": {
                    "type": "integer",
                    "description": "ID of the user for whom the booking is made"
                  },
                  "externalId": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "External identifier from roaming partner (e.g., OCPI request_id).\n\nResponse behavior: Only present when an external ID was provided. Omitted when not specified.\n"
                  },
                  "startAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Updated start time of the booking"
                  },
                  "endAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Updated end time of the booking"
                  },
                  "authorizedTokens": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
                        },
                        "uid": {
                          "type": "string",
                          "description": "Unique identifier of the OCPI token"
                        },
                        "type": {
                          "type": "string",
                          "description": "Type of token (e.g., RFID, APP_USER)"
                        },
                        "contractId": {
                          "type": "string",
                          "description": "Contract identifier associated with the token (optional)"
                        },
                        "emspCountryCode": {
                          "type": "string",
                          "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
                        },
                        "emspPartyId": {
                          "type": "string",
                          "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
                        }
                      },
                      "required": [
                        "id",
                        "uid",
                        "type",
                        "emspCountryCode",
                        "emspPartyId"
                      ]
                    },
                    "description": "Array of OCPI token details authorized for this booking, including eMSP information for roaming scenarios.\n\nResponse behavior: Only present when the booking has authorized tokens. Omitted when no tokens are associated with the booking.\n"
                  }
                },
                "required": [
                  "type",
                  "bookingId",
                  "id",
                  "status",
                  "createdAt",
                  "lastUpdatedAt"
                ]
              },
              {
                "title": "Cancel Booking",
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "System-generated unique identifier",
                    "readOnly": true
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "cancel"
                    ],
                    "description": "Type of booking request - must be \"cancel\""
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "pending",
                      "approved",
                      "rejected"
                    ],
                    "readOnly": true,
                    "description": "Status of booking request:\n- **pending**: Request is awaiting processing\n- **approved**: Request has been approved\n- **rejected**: Request has been rejected\n"
                  },
                  "rejectionReason": {
                    "type": "string",
                    "description": "Human-readable reason for rejection.\n\nResponse behavior: Only present when status is \"rejected\". Omitted for \"pending\" and \"approved\" requests.\n",
                    "readOnly": true
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "readOnly": true
                  },
                  "lastUpdatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "readOnly": true
                  },
                  "bookingId": {
                    "type": "integer",
                    "description": "ID of the target booking to cancel"
                  },
                  "externalId": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "External identifier from roaming partner (e.g., OCPI request_id).\n\nResponse behavior: Only present when an external ID was provided. Omitted when not specified.\n"
                  }
                },
                "required": [
                  "type",
                  "bookingId",
                  "id",
                  "status",
                  "createdAt",
                  "lastUpdatedAt"
                ]
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "bookingsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Booking information for listing views (without detailed EVSE information)",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "System-generated unique identifier"
                },
                "userId": {
                  "type": "integer",
                  "description": "ID of the user associated with the booking"
                },
                "authorizedTokens": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
                      },
                      "uid": {
                        "type": "string",
                        "description": "Unique identifier of the OCPI token"
                      },
                      "type": {
                        "type": "string",
                        "description": "Type of token (e.g., RFID, APP_USER)"
                      },
                      "contractId": {
                        "type": "string",
                        "description": "Contract identifier associated with the token (optional)"
                      },
                      "emspCountryCode": {
                        "type": "string",
                        "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
                      },
                      "emspPartyId": {
                        "type": "string",
                        "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
                      }
                    },
                    "required": [
                      "id",
                      "uid",
                      "type",
                      "emspCountryCode",
                      "emspPartyId"
                    ]
                  },
                  "description": "Array of OCPI token details authorized for this booking, including eMSP information for roaming scenarios. Only present when the booking has authorized tokens (omitted when empty or null)."
                },
                "locationId": {
                  "type": "integer",
                  "description": "ID of the location for the booking"
                },
                "startAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "Confirmed start time of the booking"
                },
                "endAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "Confirmed end time of the booking"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "accepted",
                    "reserved",
                    "completed",
                    "cancelled",
                    "no-show",
                    "failed"
                  ],
                  "description": "Status of booking:\n- **accepted**: Booking has been approved and confirmed\n- **reserved**: EVSE has been reserved via OCPP ReserveNow command\n- **completed**: User has started a charging session and fulfilled the booking\n- **cancelled**: Booking has been cancelled by user or system\n- **no-show**: User failed to start session within the no-show timeout period\n- **failed**: System failed to reserve the EVSE after multiple attempts\n"
                },
                "sessionId": {
                  "type": "integer",
                  "description": "ID of the charging session that fulfilled the booking"
                },
                "accessMethods": {
                  "type": "array",
                  "nullable": true,
                  "items": {
                    "type": "string",
                    "enum": [
                      "OPEN",
                      "TOKEN",
                      "LICENSE_PLATE",
                      "ACCESS_CODE",
                      "INTERCOM",
                      "PARKING_TICKET"
                    ]
                  },
                  "description": "Physical access methods copied from the location at booking creation time. This snapshot preserves the access methods that were available when the booking was made, even if the location's access methods change later.\n\n**Response behavior (GET):**\n- Field is omitted from the response when no access methods were configured at the location during booking creation (null in database)\n- When access methods were configured but the array was empty, returns an empty array `[]`\n"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "locationId",
                "startAt",
                "endAt",
                "status",
                "createdAt",
                "lastUpdatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "bookingRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Detailed booking information that can include EVSE details when requested",
            "properties": {
              "id": {
                "type": "integer",
                "description": "System-generated unique identifier"
              },
              "userId": {
                "type": "integer",
                "description": "ID of the user associated with the booking"
              },
              "authorizedTokens": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Internal token ID for use in API requests (e.g., authorizedTokenIds in create/update)"
                    },
                    "uid": {
                      "type": "string",
                      "description": "Unique identifier of the OCPI token"
                    },
                    "type": {
                      "type": "string",
                      "description": "Type of token (e.g., RFID, APP_USER)"
                    },
                    "contractId": {
                      "type": "string",
                      "description": "Contract identifier associated with the token (optional)"
                    },
                    "emspCountryCode": {
                      "type": "string",
                      "description": "Country code of the eMSP (electric Mobility Service Provider) that issued the token"
                    },
                    "emspPartyId": {
                      "type": "string",
                      "description": "Party identifier of the eMSP (electric Mobility Service Provider) that issued the token"
                    }
                  },
                  "required": [
                    "id",
                    "uid",
                    "type",
                    "emspCountryCode",
                    "emspPartyId"
                  ]
                },
                "description": "Array of OCPI token details authorized for this booking, including eMSP information for roaming scenarios. Only present when the booking has authorized tokens (omitted when empty or null)."
              },
              "locationId": {
                "type": "integer",
                "description": "ID of the location for the booking"
              },
              "startAt": {
                "type": "string",
                "format": "date-time",
                "description": "Confirmed start time of the booking"
              },
              "endAt": {
                "type": "string",
                "format": "date-time",
                "description": "Confirmed end time of the booking"
              },
              "status": {
                "type": "string",
                "enum": [
                  "accepted",
                  "reserved",
                  "completed",
                  "cancelled",
                  "no-show",
                  "failed"
                ],
                "description": "Status of booking:\n- **accepted**: Booking has been approved and confirmed\n- **reserved**: EVSE has been reserved via OCPP ReserveNow command\n- **completed**: User has started a charging session and fulfilled the booking\n- **cancelled**: Booking has been cancelled by user or system\n- **no-show**: User failed to start session within the no-show timeout period\n- **failed**: System failed to reserve the EVSE after multiple attempts\n"
              },
              "sessionId": {
                "type": "integer",
                "description": "ID of the charging session that fulfilled the booking"
              },
              "accessMethods": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "string",
                  "enum": [
                    "OPEN",
                    "TOKEN",
                    "LICENSE_PLATE",
                    "ACCESS_CODE",
                    "INTERCOM",
                    "PARKING_TICKET"
                  ]
                },
                "description": "Physical access methods copied from the location at booking creation time. This snapshot preserves the access methods that were available when the booking was made, even if the location's access methods change later.\n\n**Response behavior (GET):**\n- Field is omitted from the response when no access methods were configured at the location during booking creation (null in database)\n- When access methods were configured but the array was empty, returns an empty array `[]`\n"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "bookedEvses": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "EVSE ID"
                    }
                  },
                  "required": [
                    "id"
                  ]
                },
                "description": "Array of EVSE objects linked to this booking (up to 3). Only included when include[]=bookedEvses is specified"
              }
            },
            "required": [
              "id",
              "locationId",
              "startAt",
              "endAt",
              "status",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "cdrsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "operatorId": {
                  "type": "integer"
                },
                "platformId": {
                  "type": "integer"
                },
                "protocolType": {
                  "type": "string",
                  "enum": [
                    "OCPI",
                    "Hubject"
                  ]
                },
                "sessionId": {
                  "type": "string",
                  "description": "Unique ID of the session for which this CDR is sent."
                },
                "roamingSessionId": {
                  "type": "string",
                  "description": "External roaming counterparty session ID. This is the session reference from the roaming partner, as opposed to sessionId which is the internal AMPECO session ID."
                },
                "receivedAt": {
                  "description": "ISO 8601 formatted date",
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                },
                "startTime": {
                  "type": "string",
                  "format": "datetime",
                  "description": "Start timestamp of the charging session, or in-case of a reservation (before the start of a session) the start of the reservation."
                },
                "endTime": {
                  "type": "string",
                  "format": "datetime",
                  "description": "The timestamp when the session was completed/finished, charging might have finished before the session ends, for example - EV is full, but parking cost also has to be paid."
                },
                "ocpiData": {
                  "description": "When the CDR is based on the OCPI protocols. The field descriptions follow the specifications in the different protocols (OCPI 2.1.1, OCPI 2.2). As the data is served in the API without any, based on the protocol validation, the response can contain differences compared to the protocol description.",
                  "type": "object",
                  "properties": {
                    "version": {
                      "type": "string",
                      "enum": [
                        "2.1.1",
                        "2.2"
                      ]
                    },
                    "signedData": {
                      "type": "object",
                      "description": "Signed data that belongs to this charging Session. Omitted if protocol differs from OCPI 2.2 or object is empty."
                    },
                    "cdrToken": {
                      "type": "object",
                      "description": "Token used to start this charging session, includes all the relevant information to identify the unique token. Omitted if protocol differs from OCPI 2.2."
                    },
                    "authMethod": {
                      "type": "string",
                      "description": "Method used for authentication."
                    },
                    "authorizationReference": {
                      "type": "string",
                      "description": "Reference to the authorization given by the eMSP. Omitted if protocol differs from OCPI 2.2 or OCPI 2.1.1 Gireve"
                    },
                    "cdrLocation": {
                      "type": "object",
                      "description": "Location where the charging session took place, including only the relevant EVSE and Connector. The properties in the object differ according to the version and source of protocol OCPI 2.1.1, OCPI 2.2"
                    },
                    "chargingPeriods": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      },
                      "description": "List of Charging Periods that make up this charging session. A session consists of 1 or more periods, where each period has a different relevant Tariff. The properties in the object differ according to the version and source of protocol (OCPI 2.1.1 or OCPI 2.2)"
                    },
                    "currency": {
                      "type": "string",
                      "description": "ISO 4217 code of the currency used for this session."
                    },
                    "totalCost": {
                      "type": "number",
                      "description": "The total cost excl VAT of the session in the specified currency."
                    },
                    "totalFixedCost": {
                      "type": "number",
                      "description": "Total sum excl VAT of all the fixed costs in the specified currency, except fixed price components of parking and reservation."
                    },
                    "totalEnergy": {
                      "type": "number",
                      "description": "Total energy charged, in kWh."
                    },
                    "totalEnergyCost": {
                      "type": "number",
                      "description": "Total sum excl VAT of all the cost of all the energy used, in the specified currency."
                    },
                    "totalTime": {
                      "type": "number",
                      "description": "Total duration of the charging session (including the duration of charging and not charging), in hours."
                    },
                    "totalTimeCost": {
                      "type": "number",
                      "description": "Total sum of all the cost related to duration of charging during this transaction, in the specified currency."
                    },
                    "totalParkingTime": {
                      "type": "number",
                      "description": "Total duration of the charging session where the EV was not charging (no energy was transferred between EVSE and EV), in hours."
                    },
                    "totalParkingCost": {
                      "type": "number",
                      "description": "Total sum excl VAT of all the cost related to parking of this transaction, including fixed price components, in the specified currency."
                    },
                    "invoiceReferenceId": {
                      "type": "string",
                      "description": "This field can be used to reference an invoice, that will later be send for this CDR."
                    }
                  },
                  "required": [
                    "version"
                  ]
                },
                "oicpData": {
                  "description": "When the CDR is based on the OICP protocols. The field descriptions follow the specifications in the different protocols (Hubject 2.2, Hubject 2.3). As the data is served in the API without any, based on the protocol validation, the response can contain differences compared to the protocol description.",
                  "type": "object",
                  "properties": {
                    "sessionId": {
                      "type": "string"
                    },
                    "version": {
                      "type": "string",
                      "enum": [
                        "2.2",
                        "2.3"
                      ]
                    },
                    "cpoPartnerSessionId": {
                      "type": "string",
                      "nullable": true
                    },
                    "empPartnerSessionId": {
                      "type": "string",
                      "nullable": true
                    },
                    "partnerProductId": {
                      "type": "string",
                      "nullable": true
                    },
                    "evseId": {
                      "type": "string"
                    },
                    "identification": {
                      "type": "object",
                      "properties": {
                        "plugAndChargeIdentification": {
                          "type": "object",
                          "properties": {
                            "evcoId": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "evcoId"
                          ]
                        },
                        "qrCodeIdentification": {
                          "type": "object",
                          "properties": {
                            "evcoID": {
                              "type": "string"
                            },
                            "hashedPin": {
                              "type": "object",
                              "properties": {
                                "value": {
                                  "type": "string"
                                },
                                "function": {
                                  "type": "string"
                                },
                                "legacyHashedData": {
                                  "type": "object",
                                  "properties": {
                                    "function": {
                                      "type": "string"
                                    },
                                    "salt": {
                                      "type": "string"
                                    },
                                    "value": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "function"
                                  ]
                                },
                                "pin": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "value",
                                "function"
                              ]
                            },
                            "pin": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "evcoID"
                          ]
                        },
                        "rfidIdentification": {
                          "type": "object",
                          "properties": {
                            "uid": {
                              "type": "string"
                            },
                            "evcoId": {
                              "type": "string"
                            },
                            "rfid": {
                              "type": "string"
                            },
                            "printedNumber": {
                              "type": "string"
                            },
                            "expiryDate": {
                              "type": "string",
                              "format": "date-time"
                            }
                          },
                          "required": [
                            "uid",
                            "rfid"
                          ]
                        },
                        "rfidMifareFamilyIdentification": {
                          "type": "object",
                          "properties": {
                            "uid": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "uid"
                          ]
                        },
                        "remoteIdentification": {
                          "type": "object",
                          "properties": {
                            "evcoId": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "evcoId"
                          ]
                        }
                      },
                      "description": "Authentication data details. The data structure differs depending on the authentication technology"
                    },
                    "chargingStart": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true,
                      "description": "The date and time at which the charging process started. The field is required in version 2.3 and optional in version 2.2"
                    },
                    "chargingEnd": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true,
                      "description": "The date and time at which the charging process stopped. The field is required in version 2.3 and optional in version 2.2."
                    },
                    "sessionStart": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "sessionEnd": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "meterValueStart": {
                      "type": "number",
                      "format": "decimal",
                      "multipleOf": 0.001,
                      "nullable": true
                    },
                    "meterValueEnd": {
                      "type": "number",
                      "format": "decimal",
                      "multipleOf": 0.001,
                      "nullable": true
                    },
                    "meterValueInBetween": {
                      "type": "string",
                      "nullable": true,
                      "description": "JSON-serialized string containing intermediate meter values recorded during the charging session (in kWh). The value is a JSON-encoded object with the structure {\"meterValues\":[number]}, matching the Hubject OICP 2.3 MeterValueInBetweenDTO format. In the JSON response, the value appears as an escaped string, e.g. \"{\\\"meterValues\\\":[10.123,20.456]}\""
                    },
                    "consumedEnergy": {
                      "type": "number",
                      "format": "decimal",
                      "multipleOf": 0.001,
                      "nullable": true,
                      "description": "The difference between MeterValueEnd and MeterValueStart in kWh. The field is required in version 2.3 and optional in version 2.2."
                    },
                    "signedMeteringValues": {
                      "description": "Omitted if protocol differs from version 2.3",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "signedMeteringValue": {
                            "type": "string",
                            "nullable": true
                          },
                          "meteringStatus": {
                            "type": "string",
                            "nullable": true,
                            "enum": [
                              "Start",
                              "Progress",
                              "End"
                            ]
                          }
                        }
                      },
                      "nullable": true
                    },
                    "meteringSignature": {
                      "description": "Omitted if protocol differs from version 2.2",
                      "type": "string",
                      "nullable": true
                    },
                    "calibrationLawVerificationInfo": {
                      "description": "Omitted if protocol differs from version 2.3",
                      "type": "object",
                      "nullable": true,
                      "properties": {
                        "calibrationLawCertificateId": {
                          "type": "string",
                          "nullable": true
                        },
                        "publicKey": {
                          "type": "string",
                          "nullable": true
                        },
                        "meteringSignatureUrl": {
                          "type": "string",
                          "nullable": true
                        },
                        "meteringSignatureEncodingFormat": {
                          "type": "string",
                          "nullable": true
                        },
                        "signedMeteringValuesVerificationInstruction": {
                          "type": "string",
                          "nullable": true
                        }
                      }
                    },
                    "hubOperatorId": {
                      "type": "string",
                      "nullable": true
                    },
                    "hubProviderId": {
                      "type": "string",
                      "nullable": true
                    },
                    "operatorId": {
                      "type": "string",
                      "nullable": true,
                      "description": "The OperatorID from the Hubject OICP protocol CDR data."
                    }
                  },
                  "required": [
                    "sessionId",
                    "version",
                    "evseId",
                    "identification",
                    "sessionStart",
                    "sessionEnd"
                  ]
                },
                "roamingId": {
                  "type": "string",
                  "description": "Uniquely identifies the CDR within the CPO’s platform (and sub operator platforms)."
                },
                "credit": {
                  "type": "boolean",
                  "description": "Indicates whether it is a credit CDR."
                },
                "creditReferenceId": {
                  "type": "string",
                  "description": "For a credit CDR, the roamingId of the original CDR it credits."
                },
                "isLocal": {
                  "type": "boolean",
                  "description": "True indicates that we issued the CDR in the role of CPO, false indicates that we received the CDR as an eMSP."
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "sentAt": {
                  "description": "ISO 8601 formatted date",
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                },
                "deliveryResponse": {
                  "type": "string",
                  "enum": [
                    "success",
                    "fail"
                  ],
                  "description": "Status of the response from the EMSP. Presented only for local CDRs."
                },
                "externalAppData": {
                  "description": "Used to hold any external application data related to the CDR.",
                  "type": "object",
                  "nullable": true,
                  "additionalProperties": true
                },
                "externalId": {
                  "description": "An optional external identifier for integration purposes",
                  "type": "string",
                  "maxLength": 255
                }
              },
              "required": [
                "id",
                "operatorId",
                "platformId",
                "protocolType",
                "startTime",
                "isLocal",
                "endTime",
                "receivedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "cdrRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "operatorId": {
                "type": "integer"
              },
              "platformId": {
                "type": "integer"
              },
              "protocolType": {
                "type": "string",
                "enum": [
                  "OCPI",
                  "Hubject"
                ]
              },
              "sessionId": {
                "type": "string",
                "description": "Unique ID of the session for which this CDR is sent."
              },
              "roamingSessionId": {
                "type": "string",
                "description": "External roaming counterparty session ID. This is the session reference from the roaming partner, as opposed to sessionId which is the internal AMPECO session ID."
              },
              "receivedAt": {
                "description": "ISO 8601 formatted date",
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "startTime": {
                "type": "string",
                "format": "datetime",
                "description": "Start timestamp of the charging session, or in-case of a reservation (before the start of a session) the start of the reservation."
              },
              "endTime": {
                "type": "string",
                "format": "datetime",
                "description": "The timestamp when the session was completed/finished, charging might have finished before the session ends, for example - EV is full, but parking cost also has to be paid."
              },
              "ocpiData": {
                "description": "When the CDR is based on the OCPI protocols. The field descriptions follow the specifications in the different protocols (OCPI 2.1.1, OCPI 2.2). As the data is served in the API without any, based on the protocol validation, the response can contain differences compared to the protocol description.",
                "type": "object",
                "properties": {
                  "version": {
                    "type": "string",
                    "enum": [
                      "2.1.1",
                      "2.2"
                    ]
                  },
                  "signedData": {
                    "type": "object",
                    "description": "Signed data that belongs to this charging Session. Omitted if protocol differs from OCPI 2.2 or object is empty."
                  },
                  "cdrToken": {
                    "type": "object",
                    "description": "Token used to start this charging session, includes all the relevant information to identify the unique token. Omitted if protocol differs from OCPI 2.2."
                  },
                  "authMethod": {
                    "type": "string",
                    "description": "Method used for authentication."
                  },
                  "authorizationReference": {
                    "type": "string",
                    "description": "Reference to the authorization given by the eMSP. Omitted if protocol differs from OCPI 2.2 or OCPI 2.1.1 Gireve"
                  },
                  "cdrLocation": {
                    "type": "object",
                    "description": "Location where the charging session took place, including only the relevant EVSE and Connector. The properties in the object differ according to the version and source of protocol OCPI 2.1.1, OCPI 2.2"
                  },
                  "chargingPeriods": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    },
                    "description": "List of Charging Periods that make up this charging session. A session consists of 1 or more periods, where each period has a different relevant Tariff. The properties in the object differ according to the version and source of protocol (OCPI 2.1.1 or OCPI 2.2)"
                  },
                  "currency": {
                    "type": "string",
                    "description": "ISO 4217 code of the currency used for this session."
                  },
                  "totalCost": {
                    "type": "number",
                    "description": "The total cost excl VAT of the session in the specified currency."
                  },
                  "totalFixedCost": {
                    "type": "number",
                    "description": "Total sum excl VAT of all the fixed costs in the specified currency, except fixed price components of parking and reservation."
                  },
                  "totalEnergy": {
                    "type": "number",
                    "description": "Total energy charged, in kWh."
                  },
                  "totalEnergyCost": {
                    "type": "number",
                    "description": "Total sum excl VAT of all the cost of all the energy used, in the specified currency."
                  },
                  "totalTime": {
                    "type": "number",
                    "description": "Total duration of the charging session (including the duration of charging and not charging), in hours."
                  },
                  "totalTimeCost": {
                    "type": "number",
                    "description": "Total sum of all the cost related to duration of charging during this transaction, in the specified currency."
                  },
                  "totalParkingTime": {
                    "type": "number",
                    "description": "Total duration of the charging session where the EV was not charging (no energy was transferred between EVSE and EV), in hours."
                  },
                  "totalParkingCost": {
                    "type": "number",
                    "description": "Total sum excl VAT of all the cost related to parking of this transaction, including fixed price components, in the specified currency."
                  },
                  "invoiceReferenceId": {
                    "type": "string",
                    "description": "This field can be used to reference an invoice, that will later be send for this CDR."
                  }
                },
                "required": [
                  "version"
                ]
              },
              "oicpData": {
                "description": "When the CDR is based on the OICP protocols. The field descriptions follow the specifications in the different protocols (Hubject 2.2, Hubject 2.3). As the data is served in the API without any, based on the protocol validation, the response can contain differences compared to the protocol description.",
                "type": "object",
                "properties": {
                  "sessionId": {
                    "type": "string"
                  },
                  "version": {
                    "type": "string",
                    "enum": [
                      "2.2",
                      "2.3"
                    ]
                  },
                  "cpoPartnerSessionId": {
                    "type": "string",
                    "nullable": true
                  },
                  "empPartnerSessionId": {
                    "type": "string",
                    "nullable": true
                  },
                  "partnerProductId": {
                    "type": "string",
                    "nullable": true
                  },
                  "evseId": {
                    "type": "string"
                  },
                  "identification": {
                    "type": "object",
                    "properties": {
                      "plugAndChargeIdentification": {
                        "type": "object",
                        "properties": {
                          "evcoId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "evcoId"
                        ]
                      },
                      "qrCodeIdentification": {
                        "type": "object",
                        "properties": {
                          "evcoID": {
                            "type": "string"
                          },
                          "hashedPin": {
                            "type": "object",
                            "properties": {
                              "value": {
                                "type": "string"
                              },
                              "function": {
                                "type": "string"
                              },
                              "legacyHashedData": {
                                "type": "object",
                                "properties": {
                                  "function": {
                                    "type": "string"
                                  },
                                  "salt": {
                                    "type": "string"
                                  },
                                  "value": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "function"
                                ]
                              },
                              "pin": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "value",
                              "function"
                            ]
                          },
                          "pin": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "evcoID"
                        ]
                      },
                      "rfidIdentification": {
                        "type": "object",
                        "properties": {
                          "uid": {
                            "type": "string"
                          },
                          "evcoId": {
                            "type": "string"
                          },
                          "rfid": {
                            "type": "string"
                          },
                          "printedNumber": {
                            "type": "string"
                          },
                          "expiryDate": {
                            "type": "string",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "uid",
                          "rfid"
                        ]
                      },
                      "rfidMifareFamilyIdentification": {
                        "type": "object",
                        "properties": {
                          "uid": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "uid"
                        ]
                      },
                      "remoteIdentification": {
                        "type": "object",
                        "properties": {
                          "evcoId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "evcoId"
                        ]
                      }
                    },
                    "description": "Authentication data details. The data structure differs depending on the authentication technology"
                  },
                  "chargingStart": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true,
                    "description": "The date and time at which the charging process started. The field is required in version 2.3 and optional in version 2.2"
                  },
                  "chargingEnd": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true,
                    "description": "The date and time at which the charging process stopped. The field is required in version 2.3 and optional in version 2.2."
                  },
                  "sessionStart": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "sessionEnd": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "meterValueStart": {
                    "type": "number",
                    "format": "decimal",
                    "multipleOf": 0.001,
                    "nullable": true
                  },
                  "meterValueEnd": {
                    "type": "number",
                    "format": "decimal",
                    "multipleOf": 0.001,
                    "nullable": true
                  },
                  "meterValueInBetween": {
                    "type": "string",
                    "nullable": true,
                    "description": "JSON-serialized string containing intermediate meter values recorded during the charging session (in kWh). The value is a JSON-encoded object with the structure {\"meterValues\":[number]}, matching the Hubject OICP 2.3 MeterValueInBetweenDTO format. In the JSON response, the value appears as an escaped string, e.g. \"{\\\"meterValues\\\":[10.123,20.456]}\""
                  },
                  "consumedEnergy": {
                    "type": "number",
                    "format": "decimal",
                    "multipleOf": 0.001,
                    "nullable": true,
                    "description": "The difference between MeterValueEnd and MeterValueStart in kWh. The field is required in version 2.3 and optional in version 2.2."
                  },
                  "signedMeteringValues": {
                    "description": "Omitted if protocol differs from version 2.3",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "signedMeteringValue": {
                          "type": "string",
                          "nullable": true
                        },
                        "meteringStatus": {
                          "type": "string",
                          "nullable": true,
                          "enum": [
                            "Start",
                            "Progress",
                            "End"
                          ]
                        }
                      }
                    },
                    "nullable": true
                  },
                  "meteringSignature": {
                    "description": "Omitted if protocol differs from version 2.2",
                    "type": "string",
                    "nullable": true
                  },
                  "calibrationLawVerificationInfo": {
                    "description": "Omitted if protocol differs from version 2.3",
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "calibrationLawCertificateId": {
                        "type": "string",
                        "nullable": true
                      },
                      "publicKey": {
                        "type": "string",
                        "nullable": true
                      },
                      "meteringSignatureUrl": {
                        "type": "string",
                        "nullable": true
                      },
                      "meteringSignatureEncodingFormat": {
                        "type": "string",
                        "nullable": true
                      },
                      "signedMeteringValuesVerificationInstruction": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  "hubOperatorId": {
                    "type": "string",
                    "nullable": true
                  },
                  "hubProviderId": {
                    "type": "string",
                    "nullable": true
                  },
                  "operatorId": {
                    "type": "string",
                    "nullable": true,
                    "description": "The OperatorID from the Hubject OICP protocol CDR data."
                  }
                },
                "required": [
                  "sessionId",
                  "version",
                  "evseId",
                  "identification",
                  "sessionStart",
                  "sessionEnd"
                ]
              },
              "roamingId": {
                "type": "string",
                "description": "Uniquely identifies the CDR within the CPO’s platform (and sub operator platforms)."
              },
              "credit": {
                "type": "boolean",
                "description": "Indicates whether it is a credit CDR."
              },
              "creditReferenceId": {
                "type": "string",
                "description": "For a credit CDR, the roamingId of the original CDR it credits."
              },
              "isLocal": {
                "type": "boolean",
                "description": "True indicates that we issued the CDR in the role of CPO, false indicates that we received the CDR as an eMSP."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "sentAt": {
                "description": "ISO 8601 formatted date",
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "deliveryResponse": {
                "type": "string",
                "enum": [
                  "success",
                  "fail"
                ],
                "description": "Status of the response from the EMSP. Presented only for local CDRs."
              },
              "externalAppData": {
                "description": "Used to hold any external application data related to the CDR.",
                "type": "object",
                "nullable": true,
                "additionalProperties": true
              },
              "externalId": {
                "description": "An optional external identifier for integration purposes",
                "type": "string",
                "maxLength": 255
              }
            },
            "required": [
              "id",
              "operatorId",
              "platformId",
              "protocolType",
              "startTime",
              "isLocal",
              "endTime",
              "receivedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointDowntimePeriodsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "chargePointId": {
                  "type": "integer",
                  "description": "Id of the charge point for which the downtime period is recorded."
                },
                "startedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date. The time at which the charge point changed its status to meet the requirements for entering a downtime period."
                },
                "endedAt": {
                  "type": "string",
                  "format": "date-time",
                  "nullable": true,
                  "description": "ISO 8601 formatted date. The time at which the charge point changed its status to meet the requirements for exiting the downtime period."
                },
                "statusLog": {
                  "type": "object",
                  "description": "The StatusLog entry that triggered this downtime period. Null when no trigger StatusLog exists (legacy records or manual entries).",
                  "required": [
                    "id",
                    "timestamp",
                    "status"
                  ],
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "StatusLog record identifier"
                    },
                    "timestamp": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO 8601 timestamp when the status change was recorded",
                      "example": "2024-01-01T12:00:00Z"
                    },
                    "status": {
                      "type": "string",
                      "description": "The hardware or network status value"
                    },
                    "errorCode": {
                      "type": "string",
                      "description": "OCPP error code or \"NoError\"",
                      "example": "NoError"
                    },
                    "info": {
                      "type": "string",
                      "description": "Additional information from the charge point",
                      "example": "Connector successfully locked"
                    },
                    "vendorId": {
                      "type": "string",
                      "description": "Vendor identifier",
                      "example": "ABB"
                    },
                    "vendorErrorCode": {
                      "type": "string",
                      "description": "Vendor-specific error code",
                      "example": "E001"
                    },
                    "errorCodeDescription": {
                      "type": "string",
                      "description": "Human-readable description from vendor catalog",
                      "example": "Communication timeout with vehicle"
                    },
                    "errorCodeCustomerAction": {
                      "type": "string",
                      "description": "Recommended action from vendor catalog",
                      "example": "Please ensure the charging cable is properly connected"
                    }
                  }
                },
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "locationId": {
                  "type": "integer",
                  "nullable": true,
                  "readOnly": true,
                  "description": "Id of associated location."
                },
                "entryMode": {
                  "type": "string",
                  "enum": [
                    "manual",
                    "automatic"
                  ],
                  "readOnly": true,
                  "description": "* `manual` - created by an admin\n* `automatic` - created automatically by the system.\n"
                },
                "noticeId": {
                  "type": "integer",
                  "description": "Id of the predefined notices from Downtime Period Notice Resource"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "downtime",
                    "exempt"
                  ],
                  "readOnly": true
                },
                "statuses": {
                  "type": "object",
                  "properties": {
                    "system": {
                      "type": "string",
                      "enum": [
                        "enabled",
                        "disabled",
                        "out of order",
                        "demo"
                      ],
                      "description": "Shows the system status of the Charge Point.\n  * `enabled` - the charge point is fully operative.\n  * `disabled` - the charge point would not be shown on the map if it is a commercial public or commercial private with the relevant option for visibility nor could be claimed or found by ID if it is personal (home). </br>\n  * `demo` - acts as a simulator so different setups could be tested.\n  * `out of order` - the charge point is visible and shared with users, but a charging session\n"
                    },
                    "network": {
                      "type": "string",
                      "enum": [
                        "never connected",
                        "available",
                        "temporarily unavailable",
                        "long-term unavailable"
                      ],
                      "description": "Connection status of the charge point:\n  * `never connected` - the charge point has not yet connected to the CPMS\n  * `available` - connected to the CPMS\n  * `temporarily unavailable` - disconnected a short while ago\n  * `long-term unavailable` - disconnected, and some time has passed, so we dont expect the connection will be restores\n"
                    },
                    "hardware": {
                      "type": "string",
                      "nullable": true,
                      "description": "EVSE hardware status:\n- **available**: EVSE is available for use\n- **preparing**: EVSE is preparing to charge (e.g., cable plugged in, awaiting authorization)\n- **charging**: EVSE is actively charging a vehicle\n- **suspendedEV**: Charging is suspended by the EV (vehicle-side pause)\n- **suspendedEVSE**: Charging is suspended by the EVSE (charger-side pause)\n- **finishing**: Charging session is finishing\n- **reserved**: EVSE is reserved\n- **unavailable**: EVSE is not available for use\n- **faulted**: EVSE is in a faulted state\n- **occupied**: EVSE is occupied\n",
                      "enum": [
                        "available",
                        "preparing",
                        "charging",
                        "suspendedEV",
                        "suspendedEVSE",
                        "finishing",
                        "reserved",
                        "unavailable",
                        "faulted",
                        "occupied"
                      ],
                      "example": "suspendedEV"
                    }
                  },
                  "readOnly": true,
                  "required": [
                    "system",
                    "network",
                    "hardware"
                  ],
                  "description": "A snapshot of the statuses of the charge point at the time of creation of the downtime period."
                }
              },
              "required": [
                "id",
                "chargePointId",
                "locationId",
                "entryMode",
                "type",
                "statuses",
                "startedAt",
                "endedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointDowntimePeriodCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "chargePointId": {
                "type": "integer",
                "description": "Id of the charge point for which the downtime period is recorded."
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date. The time at which the charge point changed its status to meet the requirements for entering a downtime period."
              },
              "endedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "description": "ISO 8601 formatted date. The time at which the charge point changed its status to meet the requirements for exiting the downtime period."
              },
              "statusLog": {
                "type": "object",
                "description": "The StatusLog entry that triggered this downtime period. Null when no trigger StatusLog exists (legacy records or manual entries).",
                "required": [
                  "id",
                  "timestamp",
                  "status"
                ],
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "StatusLog record identifier"
                  },
                  "timestamp": {
                    "type": "string",
                    "format": "date-time",
                    "description": "ISO 8601 timestamp when the status change was recorded",
                    "example": "2024-01-01T12:00:00Z"
                  },
                  "status": {
                    "type": "string",
                    "description": "The hardware or network status value"
                  },
                  "errorCode": {
                    "type": "string",
                    "description": "OCPP error code or \"NoError\"",
                    "example": "NoError"
                  },
                  "info": {
                    "type": "string",
                    "description": "Additional information from the charge point",
                    "example": "Connector successfully locked"
                  },
                  "vendorId": {
                    "type": "string",
                    "description": "Vendor identifier",
                    "example": "ABB"
                  },
                  "vendorErrorCode": {
                    "type": "string",
                    "description": "Vendor-specific error code",
                    "example": "E001"
                  },
                  "errorCodeDescription": {
                    "type": "string",
                    "description": "Human-readable description from vendor catalog",
                    "example": "Communication timeout with vehicle"
                  },
                  "errorCodeCustomerAction": {
                    "type": "string",
                    "description": "Recommended action from vendor catalog",
                    "example": "Please ensure the charging cable is properly connected"
                  }
                }
              },
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "locationId": {
                "type": "integer",
                "nullable": true,
                "readOnly": true,
                "description": "Id of associated location."
              },
              "entryMode": {
                "type": "string",
                "enum": [
                  "manual",
                  "automatic"
                ],
                "readOnly": true,
                "description": "* `manual` - created by an admin\n* `automatic` - created automatically by the system.\n"
              },
              "noticeId": {
                "type": "integer",
                "description": "Id of the predefined notices from Downtime Period Notice Resource"
              },
              "type": {
                "type": "string",
                "enum": [
                  "downtime",
                  "exempt"
                ],
                "readOnly": true
              },
              "statuses": {
                "type": "object",
                "properties": {
                  "system": {
                    "type": "string",
                    "enum": [
                      "enabled",
                      "disabled",
                      "out of order",
                      "demo"
                    ],
                    "description": "Shows the system status of the Charge Point.\n  * `enabled` - the charge point is fully operative.\n  * `disabled` - the charge point would not be shown on the map if it is a commercial public or commercial private with the relevant option for visibility nor could be claimed or found by ID if it is personal (home). </br>\n  * `demo` - acts as a simulator so different setups could be tested.\n  * `out of order` - the charge point is visible and shared with users, but a charging session\n"
                  },
                  "network": {
                    "type": "string",
                    "enum": [
                      "never connected",
                      "available",
                      "temporarily unavailable",
                      "long-term unavailable"
                    ],
                    "description": "Connection status of the charge point:\n  * `never connected` - the charge point has not yet connected to the CPMS\n  * `available` - connected to the CPMS\n  * `temporarily unavailable` - disconnected a short while ago\n  * `long-term unavailable` - disconnected, and some time has passed, so we dont expect the connection will be restores\n"
                  },
                  "hardware": {
                    "type": "string",
                    "nullable": true,
                    "description": "EVSE hardware status:\n- **available**: EVSE is available for use\n- **preparing**: EVSE is preparing to charge (e.g., cable plugged in, awaiting authorization)\n- **charging**: EVSE is actively charging a vehicle\n- **suspendedEV**: Charging is suspended by the EV (vehicle-side pause)\n- **suspendedEVSE**: Charging is suspended by the EVSE (charger-side pause)\n- **finishing**: Charging session is finishing\n- **reserved**: EVSE is reserved\n- **unavailable**: EVSE is not available for use\n- **faulted**: EVSE is in a faulted state\n- **occupied**: EVSE is occupied\n",
                    "enum": [
                      "available",
                      "preparing",
                      "charging",
                      "suspendedEV",
                      "suspendedEVSE",
                      "finishing",
                      "reserved",
                      "unavailable",
                      "faulted",
                      "occupied"
                    ],
                    "example": "suspendedEV"
                  }
                },
                "readOnly": true,
                "required": [
                  "system",
                  "network",
                  "hardware"
                ],
                "description": "A snapshot of the statuses of the charge point at the time of creation of the downtime period."
              }
            },
            "required": [
              "id",
              "chargePointId",
              "locationId",
              "entryMode",
              "type",
              "statuses",
              "startedAt",
              "endedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointDowntimePeriodRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "chargePointId": {
                "type": "integer",
                "description": "Id of the charge point for which the downtime period is recorded."
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date. The time at which the charge point changed its status to meet the requirements for entering a downtime period."
              },
              "endedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "description": "ISO 8601 formatted date. The time at which the charge point changed its status to meet the requirements for exiting the downtime period."
              },
              "statusLog": {
                "type": "object",
                "description": "The StatusLog entry that triggered this downtime period. Null when no trigger StatusLog exists (legacy records or manual entries).",
                "required": [
                  "id",
                  "timestamp",
                  "status"
                ],
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "StatusLog record identifier"
                  },
                  "timestamp": {
                    "type": "string",
                    "format": "date-time",
                    "description": "ISO 8601 timestamp when the status change was recorded",
                    "example": "2024-01-01T12:00:00Z"
                  },
                  "status": {
                    "type": "string",
                    "description": "The hardware or network status value"
                  },
                  "errorCode": {
                    "type": "string",
                    "description": "OCPP error code or \"NoError\"",
                    "example": "NoError"
                  },
                  "info": {
                    "type": "string",
                    "description": "Additional information from the charge point",
                    "example": "Connector successfully locked"
                  },
                  "vendorId": {
                    "type": "string",
                    "description": "Vendor identifier",
                    "example": "ABB"
                  },
                  "vendorErrorCode": {
                    "type": "string",
                    "description": "Vendor-specific error code",
                    "example": "E001"
                  },
                  "errorCodeDescription": {
                    "type": "string",
                    "description": "Human-readable description from vendor catalog",
                    "example": "Communication timeout with vehicle"
                  },
                  "errorCodeCustomerAction": {
                    "type": "string",
                    "description": "Recommended action from vendor catalog",
                    "example": "Please ensure the charging cable is properly connected"
                  }
                }
              },
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "locationId": {
                "type": "integer",
                "nullable": true,
                "readOnly": true,
                "description": "Id of associated location."
              },
              "entryMode": {
                "type": "string",
                "enum": [
                  "manual",
                  "automatic"
                ],
                "readOnly": true,
                "description": "* `manual` - created by an admin\n* `automatic` - created automatically by the system.\n"
              },
              "noticeId": {
                "type": "integer",
                "description": "Id of the predefined notices from Downtime Period Notice Resource"
              },
              "type": {
                "type": "string",
                "enum": [
                  "downtime",
                  "exempt"
                ],
                "readOnly": true
              },
              "statuses": {
                "type": "object",
                "properties": {
                  "system": {
                    "type": "string",
                    "enum": [
                      "enabled",
                      "disabled",
                      "out of order",
                      "demo"
                    ],
                    "description": "Shows the system status of the Charge Point.\n  * `enabled` - the charge point is fully operative.\n  * `disabled` - the charge point would not be shown on the map if it is a commercial public or commercial private with the relevant option for visibility nor could be claimed or found by ID if it is personal (home). </br>\n  * `demo` - acts as a simulator so different setups could be tested.\n  * `out of order` - the charge point is visible and shared with users, but a charging session\n"
                  },
                  "network": {
                    "type": "string",
                    "enum": [
                      "never connected",
                      "available",
                      "temporarily unavailable",
                      "long-term unavailable"
                    ],
                    "description": "Connection status of the charge point:\n  * `never connected` - the charge point has not yet connected to the CPMS\n  * `available` - connected to the CPMS\n  * `temporarily unavailable` - disconnected a short while ago\n  * `long-term unavailable` - disconnected, and some time has passed, so we dont expect the connection will be restores\n"
                  },
                  "hardware": {
                    "type": "string",
                    "nullable": true,
                    "description": "EVSE hardware status:\n- **available**: EVSE is available for use\n- **preparing**: EVSE is preparing to charge (e.g., cable plugged in, awaiting authorization)\n- **charging**: EVSE is actively charging a vehicle\n- **suspendedEV**: Charging is suspended by the EV (vehicle-side pause)\n- **suspendedEVSE**: Charging is suspended by the EVSE (charger-side pause)\n- **finishing**: Charging session is finishing\n- **reserved**: EVSE is reserved\n- **unavailable**: EVSE is not available for use\n- **faulted**: EVSE is in a faulted state\n- **occupied**: EVSE is occupied\n",
                    "enum": [
                      "available",
                      "preparing",
                      "charging",
                      "suspendedEV",
                      "suspendedEVSE",
                      "finishing",
                      "reserved",
                      "unavailable",
                      "faulted",
                      "occupied"
                    ],
                    "example": "suspendedEV"
                  }
                },
                "readOnly": true,
                "required": [
                  "system",
                  "network",
                  "hardware"
                ],
                "description": "A snapshot of the statuses of the charge point at the time of creation of the downtime period."
              }
            },
            "required": [
              "id",
              "chargePointId",
              "locationId",
              "entryMode",
              "type",
              "statuses",
              "startedAt",
              "endedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointDowntimePeriodDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointDowntimePeriodUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "chargePointId": {
                "type": "integer",
                "description": "Id of the charge point for which the downtime period is recorded."
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date. The time at which the charge point changed its status to meet the requirements for entering a downtime period."
              },
              "endedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "description": "ISO 8601 formatted date. The time at which the charge point changed its status to meet the requirements for exiting the downtime period."
              },
              "statusLog": {
                "type": "object",
                "description": "The StatusLog entry that triggered this downtime period. Null when no trigger StatusLog exists (legacy records or manual entries).",
                "required": [
                  "id",
                  "timestamp",
                  "status"
                ],
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "StatusLog record identifier"
                  },
                  "timestamp": {
                    "type": "string",
                    "format": "date-time",
                    "description": "ISO 8601 timestamp when the status change was recorded",
                    "example": "2024-01-01T12:00:00Z"
                  },
                  "status": {
                    "type": "string",
                    "description": "The hardware or network status value"
                  },
                  "errorCode": {
                    "type": "string",
                    "description": "OCPP error code or \"NoError\"",
                    "example": "NoError"
                  },
                  "info": {
                    "type": "string",
                    "description": "Additional information from the charge point",
                    "example": "Connector successfully locked"
                  },
                  "vendorId": {
                    "type": "string",
                    "description": "Vendor identifier",
                    "example": "ABB"
                  },
                  "vendorErrorCode": {
                    "type": "string",
                    "description": "Vendor-specific error code",
                    "example": "E001"
                  },
                  "errorCodeDescription": {
                    "type": "string",
                    "description": "Human-readable description from vendor catalog",
                    "example": "Communication timeout with vehicle"
                  },
                  "errorCodeCustomerAction": {
                    "type": "string",
                    "description": "Recommended action from vendor catalog",
                    "example": "Please ensure the charging cable is properly connected"
                  }
                }
              },
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "locationId": {
                "type": "integer",
                "nullable": true,
                "readOnly": true,
                "description": "Id of associated location."
              },
              "entryMode": {
                "type": "string",
                "enum": [
                  "manual",
                  "automatic"
                ],
                "readOnly": true,
                "description": "* `manual` - created by an admin\n* `automatic` - created automatically by the system.\n"
              },
              "noticeId": {
                "type": "integer",
                "description": "Id of the predefined notices from Downtime Period Notice Resource"
              },
              "type": {
                "type": "string",
                "enum": [
                  "downtime",
                  "exempt"
                ],
                "readOnly": true
              },
              "statuses": {
                "type": "object",
                "properties": {
                  "system": {
                    "type": "string",
                    "enum": [
                      "enabled",
                      "disabled",
                      "out of order",
                      "demo"
                    ],
                    "description": "Shows the system status of the Charge Point.\n  * `enabled` - the charge point is fully operative.\n  * `disabled` - the charge point would not be shown on the map if it is a commercial public or commercial private with the relevant option for visibility nor could be claimed or found by ID if it is personal (home). </br>\n  * `demo` - acts as a simulator so different setups could be tested.\n  * `out of order` - the charge point is visible and shared with users, but a charging session\n"
                  },
                  "network": {
                    "type": "string",
                    "enum": [
                      "never connected",
                      "available",
                      "temporarily unavailable",
                      "long-term unavailable"
                    ],
                    "description": "Connection status of the charge point:\n  * `never connected` - the charge point has not yet connected to the CPMS\n  * `available` - connected to the CPMS\n  * `temporarily unavailable` - disconnected a short while ago\n  * `long-term unavailable` - disconnected, and some time has passed, so we dont expect the connection will be restores\n"
                  },
                  "hardware": {
                    "type": "string",
                    "nullable": true,
                    "description": "EVSE hardware status:\n- **available**: EVSE is available for use\n- **preparing**: EVSE is preparing to charge (e.g., cable plugged in, awaiting authorization)\n- **charging**: EVSE is actively charging a vehicle\n- **suspendedEV**: Charging is suspended by the EV (vehicle-side pause)\n- **suspendedEVSE**: Charging is suspended by the EVSE (charger-side pause)\n- **finishing**: Charging session is finishing\n- **reserved**: EVSE is reserved\n- **unavailable**: EVSE is not available for use\n- **faulted**: EVSE is in a faulted state\n- **occupied**: EVSE is occupied\n",
                    "enum": [
                      "available",
                      "preparing",
                      "charging",
                      "suspendedEV",
                      "suspendedEVSE",
                      "finishing",
                      "reserved",
                      "unavailable",
                      "faulted",
                      "occupied"
                    ],
                    "example": "suspendedEV"
                  }
                },
                "readOnly": true,
                "required": [
                  "system",
                  "network",
                  "hardware"
                ],
                "description": "A snapshot of the statuses of the charge point at the time of creation of the downtime period."
              }
            },
            "required": [
              "id",
              "chargePointId",
              "locationId",
              "entryMode",
              "type",
              "statuses",
              "startedAt",
              "endedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointDowntimePeriodStatusLog": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "The StatusLog entry that triggered this downtime period. Null when no trigger StatusLog exists (legacy records or manual entries).",
            "required": [
              "id",
              "timestamp",
              "status"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "StatusLog record identifier"
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 timestamp when the status change was recorded",
                "example": "2024-01-01T12:00:00Z"
              },
              "status": {
                "type": "string",
                "description": "The hardware or network status value"
              },
              "errorCode": {
                "type": "string",
                "description": "OCPP error code or \"NoError\"",
                "example": "NoError"
              },
              "info": {
                "type": "string",
                "description": "Additional information from the charge point",
                "example": "Connector successfully locked"
              },
              "vendorId": {
                "type": "string",
                "description": "Vendor identifier",
                "example": "ABB"
              },
              "vendorErrorCode": {
                "type": "string",
                "description": "Vendor-specific error code",
                "example": "E001"
              },
              "errorCodeDescription": {
                "type": "string",
                "description": "Human-readable description from vendor catalog",
                "example": "Communication timeout with vehicle"
              },
              "errorCodeCustomerAction": {
                "type": "string",
                "description": "Recommended action from vendor catalog",
                "example": "Please ensure the charging cable is properly connected"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointModelsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "name": {
                  "type": "string"
                },
                "vendorId": {
                  "type": "integer"
                },
                "defaultPhoto": {
                  "type": "string",
                  "format": "uri",
                  "nullable": true,
                  "description": "For home chargers the default photo for the model is shown in the mobile app. The image URL is available for 24 hours after generated."
                },
                "userManual": {
                  "type": "string",
                  "format": "uri",
                  "nullable": true,
                  "description": "A download link for the user manual. Shown in the mobile app for home chargers."
                },
                "installerManual": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to an externally-hosted installer manual. The system stores this URL reference only (does not download or cache the document) and provides it to installers for viewing/downloading through the installer app interface. This field is omitted from the response when no installer manual is configured."
                }
              },
              "required": [
                "id",
                "name",
                "vendorId",
                "defaultPhoto",
                "userManual"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointModelCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "name": {
                "type": "string"
              },
              "vendorId": {
                "type": "integer"
              },
              "defaultPhoto": {
                "type": "string",
                "format": "uri",
                "nullable": true,
                "description": "For home chargers the default photo for the model is shown in the mobile app. The image URL is available for 24 hours after generated."
              },
              "userManual": {
                "type": "string",
                "format": "uri",
                "nullable": true,
                "description": "A download link for the user manual. Shown in the mobile app for home chargers."
              },
              "installerManual": {
                "type": "string",
                "format": "uri",
                "description": "URL to an externally-hosted installer manual. The system stores this URL reference only (does not download or cache the document) and provides it to installers for viewing/downloading through the installer app interface. This field is omitted from the response when no installer manual is configured."
              }
            },
            "required": [
              "id",
              "name",
              "vendorId",
              "defaultPhoto",
              "userManual"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointModelRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "name": {
                "type": "string"
              },
              "vendorId": {
                "type": "integer"
              },
              "defaultPhoto": {
                "type": "string",
                "format": "uri",
                "nullable": true,
                "description": "For home chargers the default photo for the model is shown in the mobile app. The image URL is available for 24 hours after generated."
              },
              "userManual": {
                "type": "string",
                "format": "uri",
                "nullable": true,
                "description": "A download link for the user manual. Shown in the mobile app for home chargers."
              },
              "installerManual": {
                "type": "string",
                "format": "uri",
                "description": "URL to an externally-hosted installer manual. The system stores this URL reference only (does not download or cache the document) and provides it to installers for viewing/downloading through the installer app interface. This field is omitted from the response when no installer manual is configured."
              }
            },
            "required": [
              "id",
              "name",
              "vendorId",
              "defaultPhoto",
              "userManual"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointModelDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointModelUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "name": {
                "type": "string"
              },
              "vendorId": {
                "type": "integer"
              },
              "defaultPhoto": {
                "type": "string",
                "format": "uri",
                "nullable": true,
                "description": "For home chargers the default photo for the model is shown in the mobile app. The image URL is available for 24 hours after generated."
              },
              "userManual": {
                "type": "string",
                "format": "uri",
                "nullable": true,
                "description": "A download link for the user manual. Shown in the mobile app for home chargers."
              },
              "installerManual": {
                "type": "string",
                "format": "uri",
                "description": "URL to an externally-hosted installer manual. The system stores this URL reference only (does not download or cache the document) and provides it to installers for viewing/downloading through the installer app interface. This field is omitted from the response when no installer manual is configured."
              }
            },
            "required": [
              "id",
              "name",
              "vendorId",
              "defaultPhoto",
              "userManual"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointVendorsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "name": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "name"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointVendorCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "name"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointVendorRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "name"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointVendorDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointVendorUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "name"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointsListingDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "chargingProfile": {
                  "type": "object",
                  "nullable": true,
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "min_charging_rate": {
                      "type": "number",
                      "nullable": true
                    },
                    "schedule_periods": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "object",
                        "properties": {
                          "startPeriod": {
                            "type": "integer"
                          },
                          "limit": {
                            "type": "number",
                            "multipleOf": 0.1
                          },
                          "numberPhases": {
                            "type": "integer"
                          }
                        }
                      }
                    },
                    "schedule_start": {
                      "type": "string",
                      "format": "datetime",
                      "nullable": true
                    },
                    "charging_rate_unit": {
                      "type": "string",
                      "enum": [
                        "A",
                        "W"
                      ]
                    },
                    "stack_level": {
                      "type": "integer"
                    },
                    "charging_profile_kind": {
                      "type": "string",
                      "enum": [
                        "Absolute",
                        "Recurring",
                        "Relative"
                      ]
                    },
                    "recurrency_kind": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "daily",
                        "weekly"
                      ]
                    },
                    "charging_complete_at": {
                      "type": "string",
                      "format": "datetime",
                      "nullable": true
                    },
                    "purpose": {
                      "type": "string",
                      "enum": [
                        "ChargePointMaxProfile",
                        "TxDefaultProfile",
                        "TxProfile"
                      ]
                    },
                    "valid_to": {
                      "type": "string",
                      "format": "datetime",
                      "nullable": true
                    },
                    "valid_from": {
                      "type": "string",
                      "format": "datetime",
                      "nullable": true
                    },
                    "duration": {
                      "type": "integer",
                      "nullable": true
                    }
                  }
                },
                "evses": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "hardwareStatus": {
                        "type": "string",
                        "nullable": true,
                        "description": "EVSE hardware status:\n- **available**: EVSE is available for use\n- **preparing**: EVSE is preparing to charge (e.g., cable plugged in, awaiting authorization)\n- **charging**: EVSE is actively charging a vehicle\n- **suspendedEV**: Charging is suspended by the EV (vehicle-side pause)\n- **suspendedEVSE**: Charging is suspended by the EVSE (charger-side pause)\n- **finishing**: Charging session is finishing\n- **reserved**: EVSE is reserved\n- **unavailable**: EVSE is not available for use\n- **faulted**: EVSE is in a faulted state\n- **occupied**: EVSE is occupied\n",
                        "enum": [
                          "available",
                          "preparing",
                          "charging",
                          "suspendedEV",
                          "suspendedEVSE",
                          "finishing",
                          "reserved",
                          "unavailable",
                          "faulted",
                          "occupied"
                        ],
                        "example": "suspendedEV"
                      },
                      "id": {
                        "type": "integer"
                      }
                    }
                  }
                },
                "lastBootNotification": {
                  "type": "object",
                  "nullable": true,
                  "properties": {
                    "model": {
                      "type": "string"
                    },
                    "vendor": {
                      "type": "string"
                    },
                    "charge_box_serial_number": {
                      "type": "string",
                      "nullable": true
                    },
                    "charge_point_serial_number": {
                      "type": "string",
                      "nullable": true
                    },
                    "firmware_version": {
                      "type": "string",
                      "nullable": true
                    },
                    "iccid": {
                      "type": "string",
                      "nullable": true
                    },
                    "imsi": {
                      "type": "string",
                      "nullable": true
                    },
                    "meter_serial_number": {
                      "type": "string",
                      "nullable": true
                    },
                    "meter_type": {
                      "type": "string",
                      "nullable": true
                    },
                    "reason": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                },
                "showToPublicWithNotice": {
                  "type": "boolean",
                  "description": "Only available if the ChargePoint has private access"
                },
                "notice": {
                  "type": "string",
                  "description": "The notice is only available if showToPublicWithNotice is set to \"true\"",
                  "nullable": true
                },
                "currentSecurityProfile": {
                  "type": "integer",
                  "description": "The security profile that is currenty being used by the charge point. Description of the supported security profiles can be found in the security whitepaper available here - https://www.openchargealliance.org/protocols/ocpp-16/"
                },
                "hardwareEnabledSecurityProfile": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The maximum security profile that the charge point hardware supports. Description of the supported security profiles can be found in the security whitepaper available here - https://www.openchargealliance.org/protocols/ocpp-16/"
                },
                "desiredSecurityProfileStatus": {
                  "type": "string",
                  "description": "Whether the last requested desiredSecurityProfile was successfully applied to the charge point",
                  "enum": [
                    "applied",
                    "pending",
                    "rejected"
                  ]
                },
                "roamingOperatorId": {
                  "type": "integer",
                  "description": "When null the charge point is a local one. For roaming charge points, the ID of the roaming operator is provided",
                  "nullable": true
                },
                "monitoringEnabled": {
                  "type": "boolean",
                  "default": true,
                  "description": "When enabled, issues are created for hardware faults and connectivity problems, and notifications/webhooks are sent. When disabled, no issues are created and no notifications are sent for this charge point."
                },
                "autoRecoveryEnabled": {
                  "type": "boolean",
                  "default": true,
                  "description": "When enabled, the system automatically attempts to recover the charge point when hardware faults are detected (status requests, soft reboots). When disabled, issues are still created (if monitoring is enabled) but no automated recovery actions are taken."
                },
                "autoFaultRecovery": {
                  "type": "boolean",
                  "deprecated": true,
                  "description": "**DEPRECATED:** Use `monitoringEnabled` and `autoRecoveryEnabled` instead. This field continues to work for backward compatibility, setting both new fields to the same value when provided. New integrations should use the new fields for independent control over monitoring and auto-recovery.\n"
                },
                "externalId": {
                  "type": "string",
                  "nullable": true,
                  "description": "The field should have unique value"
                },
                "displayTariffsAndCosts": {
                  "type": "boolean",
                  "nullable": true,
                  "readOnly": true
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "firstConnection": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "nullable": true,
                  "readOnly": true
                },
                "ownerUserId": {
                  "type": "integer",
                  "nullable": true,
                  "readOnly": true
                },
                "vendorErrorCode": {
                  "type": "string",
                  "readOnly": true,
                  "description": "This property is shown only when the hardwareStatus is faulted.",
                  "nullable": true
                },
                "tags": {
                  "type": "array",
                  "description": "Tags can be used for filtering and grouping chargers by tag. When doing a PATCH input all tags that should be associated with the charge point. Omitting a tag would remove it from the charge point.",
                  "items": {
                    "type": "string"
                  }
                },
                "uptimeTrackingEnabled": {
                  "type": "boolean",
                  "default": false,
                  "description": "When set to true, enables Uptime tracking for the charge point by creating an operational period.\nWhen set to false or omitted, Uptime tracking remains disabled.\n\n**Requirements:**\n- Charge point must be commercial type (public or private)\n- Operator must have operational availability enabled\n\n**Validation Errors:**\n- Returns HTTP 422 if charge point is personal type\n- Returns HTTP 422 if operator has operational availability disabled\n\n**Examples:**\n```json\n{\n  \"name\": \"CP-001\",\n  \"accessType\": \"public\",\n  \"uptimeTrackingEnabled\": true\n}\n```\n\n**Validation Error Examples:**\n\nPersonal charge point error:\n```json\n{\n  \"message\": \"The given data was invalid.\",\n  \"errors\": {\n    \"uptimeTrackingEnabled\": [\n      \"Uptime tracking can only be enabled for commercial charge points\"\n    ]\n  }\n}\n```\n\nOperator settings error:\n```json\n{\n  \"message\": \"The given data was invalid.\",\n  \"errors\": {\n    \"uptimeTrackingEnabled\": [\n      \"Operator must have operational availability enabled to track uptime\"\n    ]\n  }\n}\n```\n"
                },
                "uptimeTrackingActivatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The timestamp when Uptime tracking was activated (start of current open operational period).\nOmitted from response if Uptime tracking is not enabled or has never been activated.\nFormat: ISO 8601 with timezone offset.\n\n**Example:**\n`\"2025-10-14T08:30:00+00:00\"` - When uptime tracking is enabled\n\n**Note:** This field is omitted from the response when uptime tracking is disabled or never activated.\n",
                  "example": "2025-10-14T08:30:00+00:00"
                },
                "name": {
                  "type": "string"
                },
                "networkId": {
                  "type": "string",
                  "description": "OCPP Identifier",
                  "nullable": true
                },
                "networkProtocol": {
                  "type": "string",
                  "enum": [
                    "ocpp 1.5",
                    "ocpp 1.6",
                    "ocpp 1.6 soap",
                    "ocpp 2.0.1"
                  ]
                },
                "networkPassword": {
                  "type": "string",
                  "nullable": true
                },
                "networkIp": {
                  "type": "string",
                  "description": "required for ocpp 1.5 (SOAP)",
                  "nullable": true
                },
                "networkPort": {
                  "type": "string",
                  "description": "required for ocpp 1.5 (SOAP)",
                  "nullable": true
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "active",
                    "disabled",
                    "out of order",
                    "demo"
                  ]
                },
                "plugAndCharge": {
                  "type": "boolean",
                  "description": "Enable this flag if you the CP is configured in plug and charge mode, it automatically starts a session when a car is plugged in, and the ID tag should not be authorized.\n\nCannot be enabled on personal charge points when the operator has \"Enforce authentication on home chargers\" enabled in its Home charging settings.\n"
                },
                "locationId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "locationId is always a REQUIRED field for commercial public and commercial private charge points. It is NOT a required field only for personal charge points."
                },
                "pin": {
                  "type": "string",
                  "description": "pin is always a REQUIRED field for personal charge points. It is NOT a required field for commercial public and commercial private charge points."
                },
                "accessType": {
                  "default": "public",
                  "type": "string",
                  "enum": [
                    "private",
                    "public",
                    "personal"
                  ]
                },
                "desiredSecurityProfile": {
                  "type": "integer",
                  "nullable": true,
                  "minimum": 0,
                  "maximum": 2,
                  "description": "The security profile that the backend will try to force the charge point to use for connecting to the backend. Description of the supported security profiles can be found in the security whitepaper available here - https://www.openchargealliance.org/protocols/ocpp-16/"
                },
                "ownerPartnerId": {
                  "type": "integer",
                  "nullable": true
                },
                "ownerPartnerContractId": {
                  "type": "integer",
                  "nullable": true
                },
                "partnerCorporateBillingAsDefault": {
                  "type": "boolean",
                  "description": "For users who have corporate billing with the same Partner as the Partner assigned to the charge point, the default payment method on this charge point will be the respective corporate billing account of the Partner."
                },
                "partnerAccessType": {
                  "type": "string",
                  "description": "Applicable only to Commercial Private charge points. Further defines the access type and visibility of the charge point.",
                  "enum": [
                    "privateViewPrivateUse",
                    "privateViewPublicUse",
                    "publicViewPrivateUse"
                  ]
                },
                "capabilities": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "REMOTE_START_STOP_CAPABLE",
                      "METER_VALUES",
                      "STOP_TRANSACTION_ON_EV_DISCONNECT"
                    ]
                  }
                },
                "managedByOperator": {
                  "type": "boolean"
                },
                "networkStatus": {
                  "type": "string",
                  "enum": [
                    "never connected",
                    "available",
                    "temporarily unavailable",
                    "long-term unavailable"
                  ],
                  "description": "Connection status of the charge point:\n  * `never connected` - the charge point has not yet connected to the CPMS\n  * `available` - connected to the CPMS\n  * `temporarily unavailable` - disconnected a short while ago\n  * `long-term unavailable` - disconnected, and some time has passed, so we dont expect the connection will be restores\n"
                },
                "hardwareStatus": {
                  "type": "string",
                  "nullable": true,
                  "description": "Charge point hardware status:\n- **available**: Charge point is available for use\n- **unavailable**: Charge point is not available for use\n- **faulted**: Charge point is in a faulted state\n",
                  "enum": [
                    "available",
                    "unavailable",
                    "faulted"
                  ],
                  "example": "faulted"
                }
              },
              "required": [
                "id",
                "evses",
                "networkProtocol",
                "accessType",
                "monitoringEnabled",
                "autoRecoveryEnabled",
                "autoFaultRecovery",
                "networkStatus"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointCreateDeprecated": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "chargingProfile": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "id": {
                    "type": "integer"
                  },
                  "min_charging_rate": {
                    "type": "number",
                    "nullable": true
                  },
                  "schedule_periods": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "object",
                      "properties": {
                        "startPeriod": {
                          "type": "integer"
                        },
                        "limit": {
                          "type": "number",
                          "multipleOf": 0.1
                        },
                        "numberPhases": {
                          "type": "integer"
                        }
                      }
                    }
                  },
                  "schedule_start": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "charging_rate_unit": {
                    "type": "string",
                    "enum": [
                      "A",
                      "W"
                    ]
                  },
                  "stack_level": {
                    "type": "integer"
                  },
                  "charging_profile_kind": {
                    "type": "string",
                    "enum": [
                      "Absolute",
                      "Recurring",
                      "Relative"
                    ]
                  },
                  "recurrency_kind": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "daily",
                      "weekly"
                    ]
                  },
                  "charging_complete_at": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "purpose": {
                    "type": "string",
                    "enum": [
                      "ChargePointMaxProfile",
                      "TxDefaultProfile",
                      "TxProfile"
                    ]
                  },
                  "valid_to": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "valid_from": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "duration": {
                    "type": "integer",
                    "nullable": true
                  }
                }
              },
              "evses": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "hardwareStatus": {
                      "type": "string",
                      "nullable": true,
                      "description": "EVSE hardware status:\n- **available**: EVSE is available for use\n- **preparing**: EVSE is preparing to charge (e.g., cable plugged in, awaiting authorization)\n- **charging**: EVSE is actively charging a vehicle\n- **suspendedEV**: Charging is suspended by the EV (vehicle-side pause)\n- **suspendedEVSE**: Charging is suspended by the EVSE (charger-side pause)\n- **finishing**: Charging session is finishing\n- **reserved**: EVSE is reserved\n- **unavailable**: EVSE is not available for use\n- **faulted**: EVSE is in a faulted state\n- **occupied**: EVSE is occupied\n",
                      "enum": [
                        "available",
                        "preparing",
                        "charging",
                        "suspendedEV",
                        "suspendedEVSE",
                        "finishing",
                        "reserved",
                        "unavailable",
                        "faulted",
                        "occupied"
                      ],
                      "example": "suspendedEV"
                    },
                    "id": {
                      "type": "integer"
                    }
                  }
                }
              },
              "lastBootNotification": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "model": {
                    "type": "string"
                  },
                  "vendor": {
                    "type": "string"
                  },
                  "charge_box_serial_number": {
                    "type": "string",
                    "nullable": true
                  },
                  "charge_point_serial_number": {
                    "type": "string",
                    "nullable": true
                  },
                  "firmware_version": {
                    "type": "string",
                    "nullable": true
                  },
                  "iccid": {
                    "type": "string",
                    "nullable": true
                  },
                  "imsi": {
                    "type": "string",
                    "nullable": true
                  },
                  "meter_serial_number": {
                    "type": "string",
                    "nullable": true
                  },
                  "meter_type": {
                    "type": "string",
                    "nullable": true
                  },
                  "reason": {
                    "type": "string",
                    "nullable": true
                  }
                }
              },
              "showToPublicWithNotice": {
                "type": "boolean",
                "description": "Only available if the ChargePoint has private access"
              },
              "notice": {
                "type": "string",
                "description": "The notice is only available if showToPublicWithNotice is set to \"true\"",
                "nullable": true
              },
              "currentSecurityProfile": {
                "type": "integer",
                "description": "The security profile that is currenty being used by the charge point. Description of the supported security profiles can be found in the security whitepaper available here - https://www.openchargealliance.org/protocols/ocpp-16/"
              },
              "hardwareEnabledSecurityProfile": {
                "type": "integer",
                "nullable": true,
                "description": "The maximum security profile that the charge point hardware supports. Description of the supported security profiles can be found in the security whitepaper available here - https://www.openchargealliance.org/protocols/ocpp-16/"
              },
              "desiredSecurityProfileStatus": {
                "type": "string",
                "description": "Whether the last requested desiredSecurityProfile was successfully applied to the charge point",
                "enum": [
                  "applied",
                  "pending",
                  "rejected"
                ]
              },
              "roamingOperatorId": {
                "type": "integer",
                "description": "When null the charge point is a local one. For roaming charge points, the ID of the roaming operator is provided",
                "nullable": true
              },
              "monitoringEnabled": {
                "type": "boolean",
                "default": true,
                "description": "When enabled, issues are created for hardware faults and connectivity problems, and notifications/webhooks are sent. When disabled, no issues are created and no notifications are sent for this charge point."
              },
              "autoRecoveryEnabled": {
                "type": "boolean",
                "default": true,
                "description": "When enabled, the system automatically attempts to recover the charge point when hardware faults are detected (status requests, soft reboots). When disabled, issues are still created (if monitoring is enabled) but no automated recovery actions are taken."
              },
              "autoFaultRecovery": {
                "type": "boolean",
                "deprecated": true,
                "description": "**DEPRECATED:** Use `monitoringEnabled` and `autoRecoveryEnabled` instead. This field continues to work for backward compatibility, setting both new fields to the same value when provided. New integrations should use the new fields for independent control over monitoring and auto-recovery.\n"
              },
              "externalId": {
                "type": "string",
                "nullable": true,
                "description": "The field should have unique value"
              },
              "displayTariffsAndCosts": {
                "type": "boolean",
                "nullable": true,
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "firstConnection": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "nullable": true,
                "readOnly": true
              },
              "ownerUserId": {
                "type": "integer",
                "nullable": true,
                "readOnly": true
              },
              "vendorErrorCode": {
                "type": "string",
                "readOnly": true,
                "description": "This property is shown only when the hardwareStatus is faulted.",
                "nullable": true
              },
              "tags": {
                "type": "array",
                "description": "Tags can be used for filtering and grouping chargers by tag. When doing a PATCH input all tags that should be associated with the charge point. Omitting a tag would remove it from the charge point.",
                "items": {
                  "type": "string"
                }
              },
              "uptimeTrackingEnabled": {
                "type": "boolean",
                "default": false,
                "description": "When set to true, enables Uptime tracking for the charge point by creating an operational period.\nWhen set to false or omitted, Uptime tracking remains disabled.\n\n**Requirements:**\n- Charge point must be commercial type (public or private)\n- Operator must have operational availability enabled\n\n**Validation Errors:**\n- Returns HTTP 422 if charge point is personal type\n- Returns HTTP 422 if operator has operational availability disabled\n\n**Examples:**\n```json\n{\n  \"name\": \"CP-001\",\n  \"accessType\": \"public\",\n  \"uptimeTrackingEnabled\": true\n}\n```\n\n**Validation Error Examples:**\n\nPersonal charge point error:\n```json\n{\n  \"message\": \"The given data was invalid.\",\n  \"errors\": {\n    \"uptimeTrackingEnabled\": [\n      \"Uptime tracking can only be enabled for commercial charge points\"\n    ]\n  }\n}\n```\n\nOperator settings error:\n```json\n{\n  \"message\": \"The given data was invalid.\",\n  \"errors\": {\n    \"uptimeTrackingEnabled\": [\n      \"Operator must have operational availability enabled to track uptime\"\n    ]\n  }\n}\n```\n"
              },
              "uptimeTrackingActivatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "The timestamp when Uptime tracking was activated (start of current open operational period).\nOmitted from response if Uptime tracking is not enabled or has never been activated.\nFormat: ISO 8601 with timezone offset.\n\n**Example:**\n`\"2025-10-14T08:30:00+00:00\"` - When uptime tracking is enabled\n\n**Note:** This field is omitted from the response when uptime tracking is disabled or never activated.\n",
                "example": "2025-10-14T08:30:00+00:00"
              },
              "name": {
                "type": "string"
              },
              "networkId": {
                "type": "string",
                "description": "OCPP Identifier",
                "nullable": true
              },
              "networkProtocol": {
                "type": "string",
                "enum": [
                  "ocpp 1.5",
                  "ocpp 1.6",
                  "ocpp 1.6 soap",
                  "ocpp 2.0.1"
                ]
              },
              "networkPassword": {
                "type": "string",
                "nullable": true
              },
              "networkIp": {
                "type": "string",
                "description": "required for ocpp 1.5 (SOAP)",
                "nullable": true
              },
              "networkPort": {
                "type": "string",
                "description": "required for ocpp 1.5 (SOAP)",
                "nullable": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "active",
                  "disabled",
                  "out of order",
                  "demo"
                ]
              },
              "plugAndCharge": {
                "type": "boolean",
                "description": "Enable this flag if you the CP is configured in plug and charge mode, it automatically starts a session when a car is plugged in, and the ID tag should not be authorized.\n\nCannot be enabled on personal charge points when the operator has \"Enforce authentication on home chargers\" enabled in its Home charging settings.\n"
              },
              "locationId": {
                "type": "integer",
                "nullable": true,
                "description": "locationId is always a REQUIRED field for commercial public and commercial private charge points. It is NOT a required field only for personal charge points."
              },
              "pin": {
                "type": "string",
                "description": "pin is always a REQUIRED field for personal charge points. It is NOT a required field for commercial public and commercial private charge points."
              },
              "accessType": {
                "default": "public",
                "type": "string",
                "enum": [
                  "private",
                  "public",
                  "personal"
                ]
              },
              "desiredSecurityProfile": {
                "type": "integer",
                "nullable": true,
                "minimum": 0,
                "maximum": 2,
                "description": "The security profile that the backend will try to force the charge point to use for connecting to the backend. Description of the supported security profiles can be found in the security whitepaper available here - https://www.openchargealliance.org/protocols/ocpp-16/"
              },
              "ownerPartnerId": {
                "type": "integer",
                "nullable": true
              },
              "ownerPartnerContractId": {
                "type": "integer",
                "nullable": true
              },
              "partnerCorporateBillingAsDefault": {
                "type": "boolean",
                "description": "For users who have corporate billing with the same Partner as the Partner assigned to the charge point, the default payment method on this charge point will be the respective corporate billing account of the Partner."
              },
              "partnerAccessType": {
                "type": "string",
                "description": "Applicable only to Commercial Private charge points. Further defines the access type and visibility of the charge point.",
                "enum": [
                  "privateViewPrivateUse",
                  "privateViewPublicUse",
                  "publicViewPrivateUse"
                ]
              },
              "capabilities": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "REMOTE_START_STOP_CAPABLE",
                    "METER_VALUES",
                    "STOP_TRANSACTION_ON_EV_DISCONNECT"
                  ]
                }
              },
              "managedByOperator": {
                "type": "boolean"
              },
              "networkStatus": {
                "type": "string",
                "enum": [
                  "never connected",
                  "available",
                  "temporarily unavailable",
                  "long-term unavailable"
                ],
                "description": "Connection status of the charge point:\n  * `never connected` - the charge point has not yet connected to the CPMS\n  * `available` - connected to the CPMS\n  * `temporarily unavailable` - disconnected a short while ago\n  * `long-term unavailable` - disconnected, and some time has passed, so we dont expect the connection will be restores\n"
              },
              "hardwareStatus": {
                "type": "string",
                "nullable": true,
                "description": "Charge point hardware status:\n- **available**: Charge point is available for use\n- **unavailable**: Charge point is not available for use\n- **faulted**: Charge point is in a faulted state\n",
                "enum": [
                  "available",
                  "unavailable",
                  "faulted"
                ],
                "example": "faulted"
              }
            },
            "required": [
              "id",
              "evses",
              "networkProtocol",
              "accessType",
              "monitoringEnabled",
              "autoRecoveryEnabled",
              "autoFaultRecovery",
              "networkStatus"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointReadDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "chargingProfile": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "id": {
                    "type": "integer"
                  },
                  "min_charging_rate": {
                    "type": "number",
                    "nullable": true
                  },
                  "schedule_periods": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "object",
                      "properties": {
                        "startPeriod": {
                          "type": "integer"
                        },
                        "limit": {
                          "type": "number",
                          "multipleOf": 0.1
                        },
                        "numberPhases": {
                          "type": "integer"
                        }
                      }
                    }
                  },
                  "schedule_start": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "charging_rate_unit": {
                    "type": "string",
                    "enum": [
                      "A",
                      "W"
                    ]
                  },
                  "stack_level": {
                    "type": "integer"
                  },
                  "charging_profile_kind": {
                    "type": "string",
                    "enum": [
                      "Absolute",
                      "Recurring",
                      "Relative"
                    ]
                  },
                  "recurrency_kind": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "daily",
                      "weekly"
                    ]
                  },
                  "charging_complete_at": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "purpose": {
                    "type": "string",
                    "enum": [
                      "ChargePointMaxProfile",
                      "TxDefaultProfile",
                      "TxProfile"
                    ]
                  },
                  "valid_to": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "valid_from": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "duration": {
                    "type": "integer",
                    "nullable": true
                  }
                }
              },
              "evses": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "hardwareStatus": {
                      "type": "string",
                      "nullable": true,
                      "description": "EVSE hardware status:\n- **available**: EVSE is available for use\n- **preparing**: EVSE is preparing to charge (e.g., cable plugged in, awaiting authorization)\n- **charging**: EVSE is actively charging a vehicle\n- **suspendedEV**: Charging is suspended by the EV (vehicle-side pause)\n- **suspendedEVSE**: Charging is suspended by the EVSE (charger-side pause)\n- **finishing**: Charging session is finishing\n- **reserved**: EVSE is reserved\n- **unavailable**: EVSE is not available for use\n- **faulted**: EVSE is in a faulted state\n- **occupied**: EVSE is occupied\n",
                      "enum": [
                        "available",
                        "preparing",
                        "charging",
                        "suspendedEV",
                        "suspendedEVSE",
                        "finishing",
                        "reserved",
                        "unavailable",
                        "faulted",
                        "occupied"
                      ],
                      "example": "suspendedEV"
                    },
                    "id": {
                      "type": "integer"
                    }
                  }
                }
              },
              "lastBootNotification": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "model": {
                    "type": "string"
                  },
                  "vendor": {
                    "type": "string"
                  },
                  "charge_box_serial_number": {
                    "type": "string",
                    "nullable": true
                  },
                  "charge_point_serial_number": {
                    "type": "string",
                    "nullable": true
                  },
                  "firmware_version": {
                    "type": "string",
                    "nullable": true
                  },
                  "iccid": {
                    "type": "string",
                    "nullable": true
                  },
                  "imsi": {
                    "type": "string",
                    "nullable": true
                  },
                  "meter_serial_number": {
                    "type": "string",
                    "nullable": true
                  },
                  "meter_type": {
                    "type": "string",
                    "nullable": true
                  },
                  "reason": {
                    "type": "string",
                    "nullable": true
                  }
                }
              },
              "showToPublicWithNotice": {
                "type": "boolean",
                "description": "Only available if the ChargePoint has private access"
              },
              "notice": {
                "type": "string",
                "description": "The notice is only available if showToPublicWithNotice is set to \"true\"",
                "nullable": true
              },
              "currentSecurityProfile": {
                "type": "integer",
                "description": "The security profile that is currenty being used by the charge point. Description of the supported security profiles can be found in the security whitepaper available here - https://www.openchargealliance.org/protocols/ocpp-16/"
              },
              "hardwareEnabledSecurityProfile": {
                "type": "integer",
                "nullable": true,
                "description": "The maximum security profile that the charge point hardware supports. Description of the supported security profiles can be found in the security whitepaper available here - https://www.openchargealliance.org/protocols/ocpp-16/"
              },
              "desiredSecurityProfileStatus": {
                "type": "string",
                "description": "Whether the last requested desiredSecurityProfile was successfully applied to the charge point",
                "enum": [
                  "applied",
                  "pending",
                  "rejected"
                ]
              },
              "roamingOperatorId": {
                "type": "integer",
                "description": "When null the charge point is a local one. For roaming charge points, the ID of the roaming operator is provided",
                "nullable": true
              },
              "monitoringEnabled": {
                "type": "boolean",
                "default": true,
                "description": "When enabled, issues are created for hardware faults and connectivity problems, and notifications/webhooks are sent. When disabled, no issues are created and no notifications are sent for this charge point."
              },
              "autoRecoveryEnabled": {
                "type": "boolean",
                "default": true,
                "description": "When enabled, the system automatically attempts to recover the charge point when hardware faults are detected (status requests, soft reboots). When disabled, issues are still created (if monitoring is enabled) but no automated recovery actions are taken."
              },
              "autoFaultRecovery": {
                "type": "boolean",
                "deprecated": true,
                "description": "**DEPRECATED:** Use `monitoringEnabled` and `autoRecoveryEnabled` instead. This field continues to work for backward compatibility, setting both new fields to the same value when provided. New integrations should use the new fields for independent control over monitoring and auto-recovery.\n"
              },
              "externalId": {
                "type": "string",
                "nullable": true,
                "description": "The field should have unique value"
              },
              "displayTariffsAndCosts": {
                "type": "boolean",
                "nullable": true,
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "firstConnection": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "nullable": true,
                "readOnly": true
              },
              "ownerUserId": {
                "type": "integer",
                "nullable": true,
                "readOnly": true
              },
              "vendorErrorCode": {
                "type": "string",
                "readOnly": true,
                "description": "This property is shown only when the hardwareStatus is faulted.",
                "nullable": true
              },
              "tags": {
                "type": "array",
                "description": "Tags can be used for filtering and grouping chargers by tag. When doing a PATCH input all tags that should be associated with the charge point. Omitting a tag would remove it from the charge point.",
                "items": {
                  "type": "string"
                }
              },
              "uptimeTrackingEnabled": {
                "type": "boolean",
                "default": false,
                "description": "When set to true, enables Uptime tracking for the charge point by creating an operational period.\nWhen set to false or omitted, Uptime tracking remains disabled.\n\n**Requirements:**\n- Charge point must be commercial type (public or private)\n- Operator must have operational availability enabled\n\n**Validation Errors:**\n- Returns HTTP 422 if charge point is personal type\n- Returns HTTP 422 if operator has operational availability disabled\n\n**Examples:**\n```json\n{\n  \"name\": \"CP-001\",\n  \"accessType\": \"public\",\n  \"uptimeTrackingEnabled\": true\n}\n```\n\n**Validation Error Examples:**\n\nPersonal charge point error:\n```json\n{\n  \"message\": \"The given data was invalid.\",\n  \"errors\": {\n    \"uptimeTrackingEnabled\": [\n      \"Uptime tracking can only be enabled for commercial charge points\"\n    ]\n  }\n}\n```\n\nOperator settings error:\n```json\n{\n  \"message\": \"The given data was invalid.\",\n  \"errors\": {\n    \"uptimeTrackingEnabled\": [\n      \"Operator must have operational availability enabled to track uptime\"\n    ]\n  }\n}\n```\n"
              },
              "uptimeTrackingActivatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "The timestamp when Uptime tracking was activated (start of current open operational period).\nOmitted from response if Uptime tracking is not enabled or has never been activated.\nFormat: ISO 8601 with timezone offset.\n\n**Example:**\n`\"2025-10-14T08:30:00+00:00\"` - When uptime tracking is enabled\n\n**Note:** This field is omitted from the response when uptime tracking is disabled or never activated.\n",
                "example": "2025-10-14T08:30:00+00:00"
              },
              "name": {
                "type": "string"
              },
              "networkId": {
                "type": "string",
                "description": "OCPP Identifier",
                "nullable": true
              },
              "networkProtocol": {
                "type": "string",
                "enum": [
                  "ocpp 1.5",
                  "ocpp 1.6",
                  "ocpp 1.6 soap",
                  "ocpp 2.0.1"
                ]
              },
              "networkPassword": {
                "type": "string",
                "nullable": true
              },
              "networkIp": {
                "type": "string",
                "description": "required for ocpp 1.5 (SOAP)",
                "nullable": true
              },
              "networkPort": {
                "type": "string",
                "description": "required for ocpp 1.5 (SOAP)",
                "nullable": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "active",
                  "disabled",
                  "out of order",
                  "demo"
                ]
              },
              "plugAndCharge": {
                "type": "boolean",
                "description": "Enable this flag if you the CP is configured in plug and charge mode, it automatically starts a session when a car is plugged in, and the ID tag should not be authorized.\n\nCannot be enabled on personal charge points when the operator has \"Enforce authentication on home chargers\" enabled in its Home charging settings.\n"
              },
              "locationId": {
                "type": "integer",
                "nullable": true,
                "description": "locationId is always a REQUIRED field for commercial public and commercial private charge points. It is NOT a required field only for personal charge points."
              },
              "pin": {
                "type": "string",
                "description": "pin is always a REQUIRED field for personal charge points. It is NOT a required field for commercial public and commercial private charge points."
              },
              "accessType": {
                "default": "public",
                "type": "string",
                "enum": [
                  "private",
                  "public",
                  "personal"
                ]
              },
              "desiredSecurityProfile": {
                "type": "integer",
                "nullable": true,
                "minimum": 0,
                "maximum": 2,
                "description": "The security profile that the backend will try to force the charge point to use for connecting to the backend. Description of the supported security profiles can be found in the security whitepaper available here - https://www.openchargealliance.org/protocols/ocpp-16/"
              },
              "ownerPartnerId": {
                "type": "integer",
                "nullable": true
              },
              "ownerPartnerContractId": {
                "type": "integer",
                "nullable": true
              },
              "partnerCorporateBillingAsDefault": {
                "type": "boolean",
                "description": "For users who have corporate billing with the same Partner as the Partner assigned to the charge point, the default payment method on this charge point will be the respective corporate billing account of the Partner."
              },
              "partnerAccessType": {
                "type": "string",
                "description": "Applicable only to Commercial Private charge points. Further defines the access type and visibility of the charge point.",
                "enum": [
                  "privateViewPrivateUse",
                  "privateViewPublicUse",
                  "publicViewPrivateUse"
                ]
              },
              "capabilities": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "REMOTE_START_STOP_CAPABLE",
                    "METER_VALUES",
                    "STOP_TRANSACTION_ON_EV_DISCONNECT"
                  ]
                }
              },
              "managedByOperator": {
                "type": "boolean"
              },
              "networkStatus": {
                "type": "string",
                "enum": [
                  "never connected",
                  "available",
                  "temporarily unavailable",
                  "long-term unavailable"
                ],
                "description": "Connection status of the charge point:\n  * `never connected` - the charge point has not yet connected to the CPMS\n  * `available` - connected to the CPMS\n  * `temporarily unavailable` - disconnected a short while ago\n  * `long-term unavailable` - disconnected, and some time has passed, so we dont expect the connection will be restores\n"
              },
              "hardwareStatus": {
                "type": "string",
                "nullable": true,
                "description": "Charge point hardware status:\n- **available**: Charge point is available for use\n- **unavailable**: Charge point is not available for use\n- **faulted**: Charge point is in a faulted state\n",
                "enum": [
                  "available",
                  "unavailable",
                  "faulted"
                ],
                "example": "faulted"
              }
            },
            "required": [
              "id",
              "evses",
              "networkProtocol",
              "accessType",
              "monitoringEnabled",
              "autoRecoveryEnabled",
              "autoFaultRecovery",
              "networkStatus"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointDeleteDeprecated": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointUpdateDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "chargingProfile": {
            "type": "object",
            "nullable": true,
            "properties": {
              "id": {
                "type": "integer"
              },
              "min_charging_rate": {
                "type": "number",
                "nullable": true
              },
              "schedule_periods": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "object",
                  "properties": {
                    "startPeriod": {
                      "type": "integer"
                    },
                    "limit": {
                      "type": "number",
                      "multipleOf": 0.1
                    },
                    "numberPhases": {
                      "type": "integer"
                    }
                  }
                }
              },
              "schedule_start": {
                "type": "string",
                "format": "datetime",
                "nullable": true
              },
              "charging_rate_unit": {
                "type": "string",
                "enum": [
                  "A",
                  "W"
                ]
              },
              "stack_level": {
                "type": "integer"
              },
              "charging_profile_kind": {
                "type": "string",
                "enum": [
                  "Absolute",
                  "Recurring",
                  "Relative"
                ]
              },
              "recurrency_kind": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "daily",
                  "weekly"
                ]
              },
              "charging_complete_at": {
                "type": "string",
                "format": "datetime",
                "nullable": true
              },
              "purpose": {
                "type": "string",
                "enum": [
                  "ChargePointMaxProfile",
                  "TxDefaultProfile",
                  "TxProfile"
                ]
              },
              "valid_to": {
                "type": "string",
                "format": "datetime",
                "nullable": true
              },
              "valid_from": {
                "type": "string",
                "format": "datetime",
                "nullable": true
              },
              "duration": {
                "type": "integer",
                "nullable": true
              }
            }
          },
          "evses": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "hardwareStatus": {
                  "type": "string",
                  "nullable": true,
                  "description": "EVSE hardware status:\n- **available**: EVSE is available for use\n- **preparing**: EVSE is preparing to charge (e.g., cable plugged in, awaiting authorization)\n- **charging**: EVSE is actively charging a vehicle\n- **suspendedEV**: Charging is suspended by the EV (vehicle-side pause)\n- **suspendedEVSE**: Charging is suspended by the EVSE (charger-side pause)\n- **finishing**: Charging session is finishing\n- **reserved**: EVSE is reserved\n- **unavailable**: EVSE is not available for use\n- **faulted**: EVSE is in a faulted state\n- **occupied**: EVSE is occupied\n",
                  "enum": [
                    "available",
                    "preparing",
                    "charging",
                    "suspendedEV",
                    "suspendedEVSE",
                    "finishing",
                    "reserved",
                    "unavailable",
                    "faulted",
                    "occupied"
                  ],
                  "example": "suspendedEV"
                },
                "id": {
                  "type": "integer"
                }
              }
            }
          },
          "lastBootNotification": {
            "type": "object",
            "nullable": true,
            "properties": {
              "model": {
                "type": "string"
              },
              "vendor": {
                "type": "string"
              },
              "charge_box_serial_number": {
                "type": "string",
                "nullable": true
              },
              "charge_point_serial_number": {
                "type": "string",
                "nullable": true
              },
              "firmware_version": {
                "type": "string",
                "nullable": true
              },
              "iccid": {
                "type": "string",
                "nullable": true
              },
              "imsi": {
                "type": "string",
                "nullable": true
              },
              "meter_serial_number": {
                "type": "string",
                "nullable": true
              },
              "meter_type": {
                "type": "string",
                "nullable": true
              },
              "reason": {
                "type": "string",
                "nullable": true
              }
            }
          },
          "showToPublicWithNotice": {
            "type": "boolean",
            "description": "Only available if the ChargePoint has private access"
          },
          "notice": {
            "type": "string",
            "description": "The notice is only available if showToPublicWithNotice is set to \"true\"",
            "nullable": true
          },
          "currentSecurityProfile": {
            "type": "integer",
            "description": "The security profile that is currenty being used by the charge point. Description of the supported security profiles can be found in the security whitepaper available here - https://www.openchargealliance.org/protocols/ocpp-16/"
          },
          "hardwareEnabledSecurityProfile": {
            "type": "integer",
            "nullable": true,
            "description": "The maximum security profile that the charge point hardware supports. Description of the supported security profiles can be found in the security whitepaper available here - https://www.openchargealliance.org/protocols/ocpp-16/"
          },
          "desiredSecurityProfileStatus": {
            "type": "string",
            "description": "Whether the last requested desiredSecurityProfile was successfully applied to the charge point",
            "enum": [
              "applied",
              "pending",
              "rejected"
            ]
          },
          "roamingOperatorId": {
            "type": "integer",
            "description": "When null the charge point is a local one. For roaming charge points, the ID of the roaming operator is provided",
            "nullable": true
          },
          "monitoringEnabled": {
            "type": "boolean",
            "default": true,
            "description": "When enabled, issues are created for hardware faults and connectivity problems, and notifications/webhooks are sent. When disabled, no issues are created and no notifications are sent for this charge point."
          },
          "autoRecoveryEnabled": {
            "type": "boolean",
            "default": true,
            "description": "When enabled, the system automatically attempts to recover the charge point when hardware faults are detected (status requests, soft reboots). When disabled, issues are still created (if monitoring is enabled) but no automated recovery actions are taken."
          },
          "autoFaultRecovery": {
            "type": "boolean",
            "deprecated": true,
            "description": "**DEPRECATED:** Use `monitoringEnabled` and `autoRecoveryEnabled` instead. This field continues to work for backward compatibility, setting both new fields to the same value when provided. New integrations should use the new fields for independent control over monitoring and auto-recovery.\n"
          },
          "externalId": {
            "type": "string",
            "nullable": true,
            "description": "The field should have unique value"
          },
          "displayTariffsAndCosts": {
            "type": "boolean",
            "nullable": true,
            "readOnly": true
          },
          "lastUpdatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "ISO 8601 formatted date",
            "readOnly": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "ISO 8601 formatted date",
            "readOnly": true
          },
          "firstConnection": {
            "type": "string",
            "format": "date-time",
            "description": "ISO 8601 formatted date",
            "nullable": true,
            "readOnly": true
          },
          "ownerUserId": {
            "type": "integer",
            "nullable": true,
            "readOnly": true
          },
          "vendorErrorCode": {
            "type": "string",
            "readOnly": true,
            "description": "This property is shown only when the hardwareStatus is faulted.",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "description": "Tags can be used for filtering and grouping chargers by tag. When doing a PATCH input all tags that should be associated with the charge point. Omitting a tag would remove it from the charge point.",
            "items": {
              "type": "string"
            }
          },
          "uptimeTrackingEnabled": {
            "type": "boolean",
            "default": false,
            "description": "When set to true, enables Uptime tracking for the charge point by creating an operational period.\nWhen set to false or omitted, Uptime tracking remains disabled.\n\n**Requirements:**\n- Charge point must be commercial type (public or private)\n- Operator must have operational availability enabled\n\n**Validation Errors:**\n- Returns HTTP 422 if charge point is personal type\n- Returns HTTP 422 if operator has operational availability disabled\n\n**Examples:**\n```json\n{\n  \"name\": \"CP-001\",\n  \"accessType\": \"public\",\n  \"uptimeTrackingEnabled\": true\n}\n```\n\n**Validation Error Examples:**\n\nPersonal charge point error:\n```json\n{\n  \"message\": \"The given data was invalid.\",\n  \"errors\": {\n    \"uptimeTrackingEnabled\": [\n      \"Uptime tracking can only be enabled for commercial charge points\"\n    ]\n  }\n}\n```\n\nOperator settings error:\n```json\n{\n  \"message\": \"The given data was invalid.\",\n  \"errors\": {\n    \"uptimeTrackingEnabled\": [\n      \"Operator must have operational availability enabled to track uptime\"\n    ]\n  }\n}\n```\n"
          },
          "uptimeTrackingActivatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp when Uptime tracking was activated (start of current open operational period).\nOmitted from response if Uptime tracking is not enabled or has never been activated.\nFormat: ISO 8601 with timezone offset.\n\n**Example:**\n`\"2025-10-14T08:30:00+00:00\"` - When uptime tracking is enabled\n\n**Note:** This field is omitted from the response when uptime tracking is disabled or never activated.\n",
            "example": "2025-10-14T08:30:00+00:00"
          },
          "name": {
            "type": "string"
          },
          "networkId": {
            "type": "string",
            "description": "OCPP Identifier",
            "nullable": true
          },
          "networkProtocol": {
            "type": "string",
            "enum": [
              "ocpp 1.5",
              "ocpp 1.6",
              "ocpp 1.6 soap",
              "ocpp 2.0.1"
            ]
          },
          "networkPassword": {
            "type": "string",
            "nullable": true
          },
          "networkIp": {
            "type": "string",
            "description": "required for ocpp 1.5 (SOAP)",
            "nullable": true
          },
          "networkPort": {
            "type": "string",
            "description": "required for ocpp 1.5 (SOAP)",
            "nullable": true
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "disabled",
              "out of order",
              "demo"
            ]
          },
          "plugAndCharge": {
            "type": "boolean",
            "description": "Enable this flag if you the CP is configured in plug and charge mode, it automatically starts a session when a car is plugged in, and the ID tag should not be authorized.\n\nCannot be enabled on personal charge points when the operator has \"Enforce authentication on home chargers\" enabled in its Home charging settings.\n"
          },
          "locationId": {
            "type": "integer",
            "nullable": true,
            "description": "locationId is always a REQUIRED field for commercial public and commercial private charge points. It is NOT a required field only for personal charge points."
          },
          "pin": {
            "type": "string",
            "description": "pin is always a REQUIRED field for personal charge points. It is NOT a required field for commercial public and commercial private charge points."
          },
          "accessType": {
            "default": "public",
            "type": "string",
            "enum": [
              "private",
              "public",
              "personal"
            ]
          },
          "desiredSecurityProfile": {
            "type": "integer",
            "nullable": true,
            "minimum": 0,
            "maximum": 2,
            "description": "The security profile that the backend will try to force the charge point to use for connecting to the backend. Description of the supported security profiles can be found in the security whitepaper available here - https://www.openchargealliance.org/protocols/ocpp-16/"
          },
          "ownerPartnerId": {
            "type": "integer",
            "nullable": true
          },
          "ownerPartnerContractId": {
            "type": "integer",
            "nullable": true
          },
          "partnerCorporateBillingAsDefault": {
            "type": "boolean",
            "description": "For users who have corporate billing with the same Partner as the Partner assigned to the charge point, the default payment method on this charge point will be the respective corporate billing account of the Partner."
          },
          "partnerAccessType": {
            "type": "string",
            "description": "Applicable only to Commercial Private charge points. Further defines the access type and visibility of the charge point.",
            "enum": [
              "privateViewPrivateUse",
              "privateViewPublicUse",
              "publicViewPrivateUse"
            ]
          },
          "capabilities": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "REMOTE_START_STOP_CAPABLE",
                "METER_VALUES",
                "STOP_TRANSACTION_ON_EV_DISCONNECT"
              ]
            }
          },
          "managedByOperator": {
            "type": "boolean"
          },
          "networkStatus": {
            "type": "string",
            "enum": [
              "never connected",
              "available",
              "temporarily unavailable",
              "long-term unavailable"
            ],
            "description": "Connection status of the charge point:\n  * `never connected` - the charge point has not yet connected to the CPMS\n  * `available` - connected to the CPMS\n  * `temporarily unavailable` - disconnected a short while ago\n  * `long-term unavailable` - disconnected, and some time has passed, so we dont expect the connection will be restores\n"
          },
          "hardwareStatus": {
            "type": "string",
            "nullable": true,
            "description": "Charge point hardware status:\n- **available**: Charge point is available for use\n- **unavailable**: Charge point is not available for use\n- **faulted**: Charge point is in a faulted state\n",
            "enum": [
              "available",
              "unavailable",
              "faulted"
            ],
            "example": "faulted"
          }
        },
        "required": [
          "id",
          "evses",
          "networkProtocol",
          "accessType",
          "monitoringEnabled",
          "autoRecoveryEnabled",
          "autoFaultRecovery",
          "networkStatus"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointConfigurationsListingDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string",
                  "enum": [
                    "AllowOfflineTxForUnknownId",
                    "AuthorizationCacheEnabled",
                    "AuthorizeRemoteTxRequests",
                    "BlinkRepeat",
                    "ClockAlignedDataInterval",
                    "ConnectionTimeOut",
                    "ConnectorPhaseRotation",
                    "ConnectorPhaseRotationMaxLength",
                    "GetConfigurationMaxKeys",
                    "HeartbeatInterval",
                    "LightIntensity",
                    "LocalAuthorizeOffline",
                    "LocalPreAuthorize",
                    "MaxEnergyOnInvalidId",
                    "MeterValuesAlignedData",
                    "MeterValuesAlignedDataMaxLength",
                    "MeterValuesSampledData",
                    "MeterValuesSampledDataMaxLength",
                    "MeterValueSampleInterval",
                    "MinimumStatusDuration",
                    "NumberOfConnectors",
                    "ResetRetries",
                    "StopTransactionOnEVSideDisconnect",
                    "StopTransactionOnInvalidId",
                    "StopTxnAlignedData",
                    "StopTxnAlignedDataMaxLength",
                    "StopTxnSampledData",
                    "StopTxnSampledDataMaxLength",
                    "SupportedFeatureProfiles",
                    "SupportedFeatureProfilesMaxLength",
                    "TransactionMessageAttempts",
                    "TransactionMessageRetryInterval",
                    "UnlockConnectorOnEVSideDisconnect",
                    "WebSocketPingInterval",
                    "LocalAuthListEnabled",
                    "LocalAuthListMaxLength",
                    "SendLocalListMaxLength",
                    "ReserveConnectorZeroSupported",
                    "ChargeProfileMaxStackLevel",
                    "ChargingScheduleAllowedChargingRateUnit",
                    "ChargingScheduleMaxPeriods",
                    "ConnectorSwitch3to1PhaseSupported",
                    "MaxChargingProfilesInstalled",
                    "AuthorizationEnabled"
                  ]
                },
                "value": {
                  "type": "string"
                },
                "readonly": {
                  "type": "boolean"
                },
                "required": {
                  "type": "boolean"
                },
                "timestamp": {
                  "type": "string",
                  "format": "date-time",
                  "description": "When was the configuration last updated"
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointConfigurationReadDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "enum": [
                  "AllowOfflineTxForUnknownId",
                  "AuthorizationCacheEnabled",
                  "AuthorizeRemoteTxRequests",
                  "BlinkRepeat",
                  "ClockAlignedDataInterval",
                  "ConnectionTimeOut",
                  "ConnectorPhaseRotation",
                  "ConnectorPhaseRotationMaxLength",
                  "GetConfigurationMaxKeys",
                  "HeartbeatInterval",
                  "LightIntensity",
                  "LocalAuthorizeOffline",
                  "LocalPreAuthorize",
                  "MaxEnergyOnInvalidId",
                  "MeterValuesAlignedData",
                  "MeterValuesAlignedDataMaxLength",
                  "MeterValuesSampledData",
                  "MeterValuesSampledDataMaxLength",
                  "MeterValueSampleInterval",
                  "MinimumStatusDuration",
                  "NumberOfConnectors",
                  "ResetRetries",
                  "StopTransactionOnEVSideDisconnect",
                  "StopTransactionOnInvalidId",
                  "StopTxnAlignedData",
                  "StopTxnAlignedDataMaxLength",
                  "StopTxnSampledData",
                  "StopTxnSampledDataMaxLength",
                  "SupportedFeatureProfiles",
                  "SupportedFeatureProfilesMaxLength",
                  "TransactionMessageAttempts",
                  "TransactionMessageRetryInterval",
                  "UnlockConnectorOnEVSideDisconnect",
                  "WebSocketPingInterval",
                  "LocalAuthListEnabled",
                  "LocalAuthListMaxLength",
                  "SendLocalListMaxLength",
                  "ReserveConnectorZeroSupported",
                  "ChargeProfileMaxStackLevel",
                  "ChargingScheduleAllowedChargingRateUnit",
                  "ChargingScheduleMaxPeriods",
                  "ConnectorSwitch3to1PhaseSupported",
                  "MaxChargingProfilesInstalled",
                  "AuthorizationEnabled"
                ]
              },
              "value": {
                "type": "string"
              },
              "readonly": {
                "type": "boolean"
              },
              "required": {
                "type": "boolean"
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "When was the configuration last updated"
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointConfigurationUpdateDeprecated": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointStatusRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "networkStatus": {
                "type": "string",
                "enum": [
                  "never connected",
                  "available",
                  "temporarily unavailable",
                  "long-term unavailable"
                ],
                "description": "Connection status of the charge point:\n  * `never connected` - the charge point has not yet connected to the CPMS\n  * `available` - connected to the CPMS\n  * `temporarily unavailable` - disconnected a short while ago\n  * `long-term unavailable` - disconnected, and some time has passed, so we dont expect the connection will be restores\n"
              },
              "hardwareStatus": {
                "type": "string",
                "nullable": true,
                "description": "Charge point hardware status:\n- **available**: Charge point is available for use\n- **unavailable**: Charge point is not available for use\n- **faulted**: Charge point is in a faulted state\n",
                "enum": [
                  "available",
                  "unavailable",
                  "faulted"
                ],
                "example": "faulted"
              },
              "evses": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "hardwareStatus": {
                      "type": "string",
                      "nullable": true,
                      "description": "EVSE hardware status:\n- **available**: EVSE is available for use\n- **preparing**: EVSE is preparing to charge (e.g., cable plugged in, awaiting authorization)\n- **charging**: EVSE is actively charging a vehicle\n- **suspendedEV**: Charging is suspended by the EV (vehicle-side pause)\n- **suspendedEVSE**: Charging is suspended by the EVSE (charger-side pause)\n- **finishing**: Charging session is finishing\n- **reserved**: EVSE is reserved\n- **unavailable**: EVSE is not available for use\n- **faulted**: EVSE is in a faulted state\n- **occupied**: EVSE is occupied\n",
                      "enum": [
                        "available",
                        "preparing",
                        "charging",
                        "suspendedEV",
                        "suspendedEVSE",
                        "finishing",
                        "reserved",
                        "unavailable",
                        "faulted",
                        "occupied"
                      ],
                      "example": "suspendedEV"
                    },
                    "id": {
                      "type": "integer"
                    }
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "networkStatus"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "required": [
                "id",
                "operatorId",
                "name",
                "type",
                "status",
                "network",
                "security",
                "networkStatus",
                "autoStartWithoutAuthorization",
                "disableAutoStartEmulation",
                "monitoringEnabled",
                "autoRecoveryEnabled",
                "enableAutoFaultRecovery",
                "communicationMode",
                "lastUpdatedAt"
              ],
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "nullable": true,
                  "readOnly": true,
                  "description": "The ID of the operator this resource belongs to. Null for roaming charge points.",
                  "example": 1
                },
                "name": {
                  "type": "string",
                  "maxLength": 255
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "private",
                    "public",
                    "personal"
                  ],
                  "description": "`public` - a charge point visible on the map to everybody </br>\n`private` - by default hidden from the map and for private usage only - company and their employees for example. The visibility of the charge point could be managed in partner object, with the different options for accessType. </br>\n`personal` - the charge point could have a single owner only. The owner is set when the user claims the charger or with Actions / Change Owner. </br>\n"
                },
                "pin": {
                  "type": "string",
                  "description": "Required for personal charge points. The PIN should be provided in the mobile app when the charge point is claimed by a user. Should contain only numbers.\n"
                },
                "locationId": {
                  "type": "integer",
                  "description": "locationId is always a REQUIRED field for commercial public and commercial private charge points. It is NOT a required field only for personal charge points.\n"
                },
                "chargingZoneId": {
                  "type": "integer",
                  "nullable": true
                },
                "electricityRateId": {
                  "type": "integer",
                  "description": "If there is Electricity rate set to the Charge point the electricity cost for each charging session would be tracked. Dynamic electricity rates could not be selected, only ones created in the resource / electricity-rate.\n"
                },
                "subscription": {
                  "type": "object",
                  "description": "An active subscription could be required for personal (home) charge points in order to use the charge point.",
                  "properties": {
                    "required": {
                      "type": "boolean",
                      "description": "Only for personal charge points. Require an active subscription to use the charge point."
                    },
                    "planIds": {
                      "description": "Only for personal charge points. List of subscription plans for any of which the user should have an active subscription, to be able to use the charge point.",
                      "type": "array",
                      "items": {
                        "type": "integer"
                      }
                    }
                  }
                },
                "networkType": {
                  "type": "string",
                  "enum": [
                    "cellular",
                    "ethernet",
                    "wlan"
                  ]
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "enabled",
                    "disabled",
                    "out of order",
                    "demo"
                  ],
                  "description": "Shows the system status of the Charge Point. </br>\n`enabled` - the charge point is fully operative.\n`disabled` - the charge point would not be shown on the map if it is a commercial public or commercial private with the relevant option for visibility nor could be claimed or found by ID if it is personal (home). </br>\n`demo` - acts as a simulator so different setups could be tested. </br>\n`out of order` - the charge point is visible and shared with users, but a charging session\n"
                },
                "managedByOperator": {
                  "type": "boolean",
                  "default": true,
                  "description": "This flag indicates whether the operator can actively manage the charge point. If the flag is set to `false` the charge point can still be shown to users, but they can't request to start a session on it.\n\nDeprecated. Please use `communicationMode` instead.\n",
                  "deprecated": true
                },
                "externalId": {
                  "type": "string"
                },
                "network": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "nullable": true,
                      "description": "OCPP Identifier"
                    },
                    "protocol": {
                      "type": "string",
                      "enum": [
                        "ocpp 1.5",
                        "ocpp 1.6",
                        "ocpp 1.6 soap",
                        "ocpp 2.0.1"
                      ]
                    },
                    "password": {
                      "type": "string"
                    },
                    "ip": {
                      "type": "string",
                      "description": "Required for ocpp 1.5 (SOAP)"
                    },
                    "port": {
                      "type": "integer",
                      "description": "Required for ocpp 1.5 (SOAP)"
                    }
                  }
                },
                "capabilities": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "remote_start_stop_capable",
                      "meter_values",
                      "stop_transaction_on_ev_disconnect",
                      "disregard_the_heartbeats",
                      "display_messages"
                    ]
                  },
                  "description": "`remote_start_stop_capable` - whether Remote start/stop is possible for the Charge Point </br>\n`meter_values` - whether the Charge Point should send meter updates to the system </br>\n`stop_transaction_on_ev_disconnect` - for ongoing sessions, when the cable is unplugged this should stop the session and if it is returned back a new session would be created. </br>\n`disregard_the_heartbeats` - only for OCPP 1.5 SOAP. Network status by default is updated based on the heartbeat messages. When enabled, the Charge Point would be always treated as available and its network status would not depend on heartbeat messages. </br>\n`display_messages` - charger has a display and it is enabled to display messages. This capability is enabled automatically when the charger reports the corresponding configuration key. When creating a charge point, the capability is ignored as it is automatically detected on boot. </br>\n"
                },
                "autoStartWithoutAuthorization": {
                  "type": "boolean",
                  "default": false,
                  "description": "When enabled the system would allow charging sessions initiated </br>\nlocally by the charge point assuming it is setup to work in auto-start / </br>\nplug-and-charge mode. It would also automatically start a </br>\nsession with a remote start command if one is not already started by the charging stations a  </br>\nfew seconds after a Preparing status is detected indicating that a vehicle is connected.\n"
                },
                "disableAutoStartEmulation": {
                  "type": "boolean",
                  "default": false,
                  "description": "The Auto-start option above does 2 things: (1) it allows charging </br>\nsessions started by the charge point assuming that it may be set up locally </br>\nto auto-start charging when a vehicle is connected and (2) if the charging </br>\nstation doesnt start the session within a few seconds after the vehicles is </br>\nconnected the system sends a remote start command - which is to emulate auto-start </br>\ncharging. With this checkbox you can disable the emulation and rely </br>\nentirely on the charging station to auto-start the charging. </br>\n"
                },
                "security": {
                  "type": "object",
                  "properties": {
                    "desiredProfile": {
                      "type": "integer",
                      "description": "The backend will try to set it 3 times at boot notification. If the charge point does not support it, the backend will use the highest security profile the charge point could use. </br>\nThe following security profiles are supported: </br>\n0: `No Authentication` </br>\n1: `Unsecured Trasport with Basic Authentication (Plain-back Authentication)` - It does not include authentication for the CSMS, or measures to set up a secure communication channel. Therefore, it should only be used in trusted networks, for instance in networks where there is a VPN between the CSMS and the Charging Station. For field operation it is highly recommended to use a security profile with TLS. </br>\n2: `TLS with Basic Authentication (Encrypted Authentication)` - In the TLS with Basic Authentication profile, the communication channel is secured using Transport Layer Security (TLS). The CSMS authenticates itself using a TLS server certificate. The Charging Stations authenticate themselves using HTTP Basic Authentication. </br>\n3: `TLS with client-side certificates profile` </br>\n"
                    },
                    "currentProfile": {
                      "type": "integer",
                      "readOnly": true,
                      "description": "The security profile that is currenty being used by the charge point. Description of the supported security profiles can be found in the security whitepaper available here - https://www.openchargealliance.org/protocols/ocpp-16/"
                    },
                    "hardwareEnabledProfile": {
                      "type": "integer",
                      "readOnly": true,
                      "description": "The maximum security profile that the charge point hardware supports. Description of the supported security profiles can be found in the security whitepaper available here - https://www.openchargealliance.org/protocols/ocpp-16/"
                    },
                    "desiredProfileStatus": {
                      "type": "string",
                      "readOnly": true,
                      "enum": [
                        "applied",
                        "pending",
                        "rejected"
                      ],
                      "description": "Whether the last requested desiredSecurityProfile was successfully applied to the charge point.\n"
                    }
                  },
                  "required": [
                    "currentProfile"
                  ]
                },
                "modelId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The ID of the CP Model, if one is associated with the Charge Point. Can be set to null to remove the current CP Model associated with the Charge Point. Mind that on boot the charger reports the hardware model and it is automatically updated.\n"
                },
                "monitoringEnabled": {
                  "type": "boolean",
                  "default": true,
                  "description": "When enabled, issues are created for hardware faults and connectivity problems, and notifications/webhooks are sent. When disabled, no issues are created and no notifications are sent for this charge point."
                },
                "autoRecoveryEnabled": {
                  "type": "boolean",
                  "default": true,
                  "description": "When enabled, the system automatically attempts to recover the charge point when hardware faults are detected (status requests, soft reboots). When disabled, issues are still created (if monitoring is enabled) but no automated recovery actions are taken."
                },
                "enableAutoFaultRecovery": {
                  "type": "boolean",
                  "default": false,
                  "deprecated": true,
                  "description": "**DEPRECATED:** This field will be removed in v2.1 (target: Q2 2026). Use `monitoringEnabled` and `autoRecoveryEnabled` instead.\n\n**Previous Behavior (Single Toggle):**\nThis field previously controlled both monitoring/notifications AND auto-recovery with a single toggle. Setting it to `true` enabled both behaviors, while `false` disabled both. This forced an \"all-or-nothing\" approach.\n\n**New Behavior (Independent Controls):**\nThe new fields provide independent control:\n- `monitoringEnabled` - Controls issue creation and notifications\n- `autoRecoveryEnabled` - Controls automated recovery attempts\n\n**Current Backward Compatibility:**\nWhen provided in a request, this field sets **BOTH** `monitoringEnabled` AND `autoRecoveryEnabled` to the same value for backward compatibility.\n\n**Migration Guide - Common Use Cases:**\n1. **Receive notifications only (no auto-recovery):**\n   - Set `monitoringEnabled: true`, `autoRecoveryEnabled: false`\n   - Use case: Manual control over recovery, but still get alerts\n\n2. **Auto-recovery only (silent mode):**\n   - Set `monitoringEnabled: false`, `autoRecoveryEnabled: true`\n   - Use case: Auto-fix issues without creating alerts (not recommended - no visibility)\n\n3. **Full automation (current default):**\n   - Set `monitoringEnabled: true`, `autoRecoveryEnabled: true`\n   - Old equivalent: `enableAutoFaultRecovery: true`\n\n4. **Disabled (manual control):**\n   - Set `monitoringEnabled: false`, `autoRecoveryEnabled: false`\n   - Old equivalent: `enableAutoFaultRecovery: false`\n\n**Migration Deadline:** Please migrate to the new fields by Q1 2026.\n"
                },
                "user": {
                  "type": "object",
                  "description": "Owner information along with owner preferences of the charge point when of type *personal*. If smart charging is enabled, smart charging preferences are also included.",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "nullable": true
                    },
                    "automaticFirmwareUpdatesEnabled": {
                      "type": "boolean",
                      "default": true
                    }
                  }
                },
                "partner": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "contractId": {
                      "type": "integer"
                    },
                    "contactId": {
                      "deprecated": true,
                      "type": "integer"
                    },
                    "corporateBillingAsDefault": {
                      "type": "boolean",
                      "default": false,
                      "description": "The partner's corporate billing would be used as a payment method by default, when a user who is invited to use the partner's corporate billing starts a session on the charge point."
                    },
                    "accessType": {
                      "type": "string",
                      "description": "`private_view_private_use` - only users invited by the partner with the option to access private charge points could view this charge point on the map and use it. </br>\n`private_view_public_use` - only users invited by the partner with the option to access private charge points can view this charge point on the map but anyone who scans the QR or enters the ID can use it. </br>\n`public_view_private_use` - anyone could see the charge point on the map with a notice but only users invited by the partner with the option to access private charge points could use it.` </br>\n",
                      "enum": [
                        "private_view_private_use",
                        "private_view_public_use",
                        "public_view_private_use"
                      ]
                    },
                    "notice": {
                      "deprecated": true,
                      "description": "**Deprecated**: Use top-level `noticeId` and `notice` fields instead. The notice is only available if the charge point is of type `private` and the accessType is `public_view_private_use`.\n",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                },
                "utilityId": {
                  "type": "integer",
                  "nullable": true
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true,
                  "description": "ISO 8601 formatted date"
                },
                "firstContactAt": {
                  "type": "string",
                  "format": "date",
                  "readOnly": true,
                  "description": "ISO 8601 formatted date"
                },
                "roamingOperatorId": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "When null, the charge point is a local one. For roaming charge points, the ID of the roaming operator is provided"
                },
                "chargingProfile": {
                  "readOnly": true,
                  "type": "object",
                  "nullable": true,
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "minChargingRate": {
                      "type": "number",
                      "nullable": true
                    },
                    "schedulePeriods": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "object",
                        "properties": {
                          "startPeriod": {
                            "type": "integer"
                          },
                          "limit": {
                            "type": "number",
                            "multipleOf": 0.1
                          },
                          "numberPhases": {
                            "type": "integer"
                          }
                        }
                      }
                    },
                    "scheduleStart": {
                      "type": "string",
                      "format": "datetime",
                      "nullable": true
                    },
                    "chargingRateUnit": {
                      "type": "string",
                      "enum": [
                        "A",
                        "W"
                      ]
                    },
                    "stackLevel": {
                      "type": "integer"
                    },
                    "chargingProfileKind": {
                      "type": "string",
                      "enum": [
                        "Absolute",
                        "Recurring",
                        "Relative"
                      ]
                    },
                    "recurrencyKind": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "daily",
                        "weekly"
                      ]
                    },
                    "chargingCompleteAt": {
                      "type": "string",
                      "format": "datetime",
                      "nullable": true
                    },
                    "purpose": {
                      "type": "string",
                      "enum": [
                        "ChargePointMaxProfile",
                        "TxDefaultProfile",
                        "TxProfile"
                      ]
                    },
                    "validTo": {
                      "type": "string",
                      "format": "datetime",
                      "nullable": true
                    },
                    "validFrom": {
                      "type": "string",
                      "format": "datetime",
                      "nullable": true
                    },
                    "duration": {
                      "type": "integer",
                      "nullable": true
                    }
                  }
                },
                "displayTariffAndCosts": {
                  "readOnly": true,
                  "type": "boolean",
                  "description": "The charge point has a display and messages could be shown to the user."
                },
                "tariffDisplayMessages": {
                  "readOnly": true,
                  "type": "object",
                  "description": "Per-message settings for tariff and cost display. This object is only present when `displayTariffAndCosts` is `true`.\nAll fields default to `true` when not explicitly set.\n",
                  "properties": {
                    "sendDefaultPrice": {
                      "type": "boolean",
                      "default": true,
                      "description": "Sends default tariff information on boot and when tariffs change."
                    },
                    "sendUserPrice": {
                      "type": "boolean",
                      "default": true,
                      "description": "Sends the authorized user's tariff at session authorization."
                    },
                    "sendRunningCost": {
                      "type": "boolean",
                      "default": true,
                      "description": "Sends real-time cost updates during charging sessions."
                    },
                    "sendFinalCost": {
                      "type": "boolean",
                      "default": true,
                      "description": "Sends the total session cost after charging ends."
                    }
                  }
                },
                "lastBootNotification": {
                  "type": "object",
                  "nullable": true,
                  "readOnly": true,
                  "properties": {
                    "model": {
                      "type": "string"
                    },
                    "vendor": {
                      "type": "string"
                    },
                    "chargeBoxSerialNumber": {
                      "type": "string",
                      "nullable": true
                    },
                    "chargePointSerialNumber": {
                      "type": "string",
                      "nullable": true
                    },
                    "firmwareVersion": {
                      "type": "string",
                      "nullable": true
                    },
                    "iccid": {
                      "type": "string",
                      "nullable": true
                    },
                    "imsi": {
                      "type": "string",
                      "nullable": true
                    },
                    "meterSerialNumber": {
                      "type": "string",
                      "nullable": true
                    },
                    "meterType": {
                      "type": "string",
                      "nullable": true
                    },
                    "lastUpdatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO 8601 formatted date",
                      "readOnly": true
                    }
                  }
                },
                "networkStatus": {
                  "type": "string",
                  "readOnly": true,
                  "description": "Connection status of the charge point </br>\n`never_connected` - the charge point has not yet connected to the CPMS </br>\n`available` - connected to the CPMS </br>\n`temporarily_unavailable` - disconnected a short while ago </br>\n`long-term_unavailable` - disconnected, and some time has passed, so we dont expect the connection will be restores. </br>\n",
                  "enum": [
                    "never_connected",
                    "available",
                    "temporarily_unavailable",
                    "long-term_unavailable"
                  ]
                },
                "lastNetworkStatusUpdateAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true,
                  "nullable": true,
                  "description": "The datetime when the charge point's network status was last updated. This corresponds to the \"Latest heartbeat at\" value shown in the CPMS Hardware section. Returns null when the charge point has never connected."
                },
                "hardwareStatus": {
                  "type": "string",
                  "readOnly": true,
                  "enum": [
                    "available",
                    "unavailable",
                    "faulted"
                  ],
                  "description": "When hardware status is null, that means that the charge point has not connected yet or has not reported a hardware status for the charge point in the past."
                },
                "lastHardwareStatusUpdateAt": {
                  "description": "ISO 8601 formatted date",
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                },
                "vendorErrorCode": {
                  "type": "string",
                  "readOnly": true,
                  "description": "This property is shown only when the hardwareStatus is `faulted`"
                },
                "tags": {
                  "type": "array",
                  "description": "Tags can be used for filtering and grouping chargers by tag. When doing a PATCH input all tags that should be associated with the charge point. Omitting a tag would remove it from the charge point.",
                  "items": {
                    "type": "string"
                  }
                },
                "uptimeTrackingEnabled": {
                  "type": "boolean",
                  "description": "Indicates whether Uptime tracking is currently enabled for the charge point. `true` means an open operational period exists; `false` means none does.\n",
                  "example": true
                },
                "uptimeTrackingActivatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "nullable": true,
                  "description": "ISO 8601 timestamp (with timezone offset) marking the start of the current open operational period. Returns `null` when Uptime tracking is disabled or has never been activated.\n",
                  "example": "2025-10-14T08:30:00+00:00"
                },
                "sharingCode": {
                  "type": "string"
                },
                "sharingBillingRule": {
                  "type": "string",
                  "readOnly": true,
                  "description": "Billing rule for guest charging sessions on shared personal charge points.\nThis property is only present when the charge point is of type `personal` and has a sharing code set.\n- `owner_covers_guests`: The charge point owner pays for guest charging sessions.\n- `guests_pay_directly`: Guests pay for their own charging sessions.\n- `enforce_subscription`: Both owner and guest must have active subscriptions to charge.\n",
                  "enum": [
                    "owner_covers_guests",
                    "guests_pay_directly",
                    "enforce_subscription"
                  ]
                },
                "enabledRandomisedDelay": {
                  "type": "boolean",
                  "description": "Applicable for `personal` charge points and `private` charge points with Time of Day schedule. For `public` charge points will be omitted."
                },
                "noticeId": {
                  "type": "integer",
                  "description": "If both noticeId and partner.notice object are provided in the request the noticeId will be used to complete the request NOT the partner.notice object!",
                  "nullable": true
                },
                "notice": {
                  "readOnly": true,
                  "description": "If `include[]=notice` is provided with the request, the notice associated with this charge point will be provided here.\nThe notice is only available if the charge point is of type `private` and the accessType is `public_view_private_use`.\nTo associate a notice with a charge point, use the `noticeId` field.\n",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "usesRenewableEnergy": {
                  "type": "boolean",
                  "default": false,
                  "description": "When enabled, if no electricity rate is assigned to the charge point any roaming session will be marked as using renewable energy.\nThe actual energy mix can be specified in an electricity rate, which can then be assigned to the charge point. In that case the energy mix will be provided for roaming sessions.\nThis information can be gathered from the utility provider or third-party platforms that provide this information to the public.\n"
                },
                "integratedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "manufacturedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "ocppConnectedChargePointId": {
                  "type": "integer",
                  "description": "The ID of the charge point that is connected to the backend and used by this charge point for OCPP communication. Required when the `communicationMode` is `via_ocpp_connected_charge_point`.\n"
                },
                "notes": {
                  "type": "array",
                  "readOnly": true,
                  "items": {
                    "type": "object",
                    "required": [
                      "id",
                      "summary",
                      "pinned",
                      "createdAt",
                      "updatedAt"
                    ],
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Unique identifier for the note",
                        "example": 123
                      },
                      "summary": {
                        "type": "string",
                        "maxLength": 255,
                        "description": "Short summary or title of the note",
                        "example": "Important maintenance note"
                      },
                      "details": {
                        "type": "string",
                        "maxLength": 2000,
                        "description": "Detailed content of the note. Omitted when empty.",
                        "example": "This charge point requires monthly inspection due to high usage."
                      },
                      "pinned": {
                        "type": "boolean",
                        "description": "Whether the note is pinned (appears first in listings)",
                        "example": true
                      },
                      "createdByAdminId": {
                        "type": "integer",
                        "description": "ID of the admin who created the note. Omitted when unavailable.",
                        "example": 1
                      },
                      "updatedByAdminId": {
                        "type": "integer",
                        "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                        "example": 2
                      },
                      "createdAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO-8601 timestamp when the note was created",
                        "example": "2025-12-16T10:00:00Z"
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO-8601 timestamp when the note was last updated",
                        "example": "2025-12-16T12:00:00Z"
                      }
                    }
                  },
                  "description": "If `include[]=notes` is provided with the request, the notes attached to this charge point will be provided here. Notes are returned with pinned notes first, then ordered by creation date descending."
                },
                "publicSharing": {
                  "type": "object",
                  "properties": {
                    "enabled": {
                      "type": "boolean",
                      "description": "Whether public access is enabled on this `personal` charge point. When `true`, same-operator users without a sharing invite can authorise sessions and the owner is reimbursed by the operator for public-access sessions.\n"
                    },
                    "roamingPublishEnabled": {
                      "type": "boolean",
                      "description": "Whether the `personal` charge point is published to OCPI roaming partners.\n"
                    },
                    "reimbursementPolicyId": {
                      "type": "integer",
                      "description": "The reimbursement policy reimbursing the owner for public-access sessions on this `personal` charge point. Present only when a reimbursement policy is set; omitted otherwise.\n"
                    }
                  },
                  "description": "Public access controls for this `personal` charge point. Present only for `personal` charge points when the `home-charging-reimbursement` feature is enabled; otherwise omitted.\n",
                  "required": [
                    "enabled",
                    "roamingPublishEnabled"
                  ]
                },
                "communicationMode": {
                  "readOnly": true,
                  "type": "string",
                  "enum": [
                    "none",
                    "direct_ocpp",
                    "via_ocpp_connected_charge_point",
                    "roaming"
                  ],
                  "description": "Indicates how the charge point communicates with the backend.</br>\n`none` - the charge point is not connected to the backend. The charge point can be displayed to users with instructions how to use it.</br>\n`direct_ocpp` - the charge point is connected through OCPP and is actively being managed by the backend.</br>\n`via_ocpp_connected_charge_point` - the charge point is a satellite of another charge point which communicates through OCPP and is identified by `ocppConnectedChargePointId`. The charge point is not actively managed, but inherits most of its properties from its master charge point.</br>\n`roaming` - the charge point was received from a roaming partner. The charge point can be controlled as much as the roaming connection allows.\n"
                },
                "electricityCostReimbursementIntegrationId": {
                  "type": "integer",
                  "description": "The ID of the third-party electricity cost reimbursement integration to use for processing reimbursements for charging sessions at this charge point. Only applicable to personal (home) charge points - ignored for public and private charge points. When not set, this property is omitted from the response.\n",
                  "example": 123
                },
                "installationAndMaintenanceCompanyId": {
                  "type": "integer",
                  "description": "The ID of the Installation & Maintenance company associated with this charge point. Must be owned by the same operator. When not set, this property is omitted from the response.\n",
                  "example": 456
                },
                "countryStationId": {
                  "type": "string",
                  "description": "Country-specific station identifier for NAP reporting (e.g., BNetzA Stations-ID for Germany). When not set, this property is omitted from the response.\n",
                  "example": "BNA0001"
                },
                "calibrationLawDataAvailability": {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    "local",
                    "not_available"
                  ],
                  "description": "Calibration law data availability override for Hubject/OICP compliance. Returns `local` or `not_available` when explicitly set by the operator. When not set, this property is omitted from the response.\n",
                  "example": "local"
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId",
              "name",
              "type",
              "status",
              "network",
              "security",
              "networkStatus",
              "autoStartWithoutAuthorization",
              "disableAutoStartEmulation",
              "monitoringEnabled",
              "autoRecoveryEnabled",
              "enableAutoFaultRecovery",
              "communicationMode",
              "lastUpdatedAt"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to. Null for roaming charge points.",
                "example": 1
              },
              "name": {
                "type": "string",
                "maxLength": 255
              },
              "type": {
                "type": "string",
                "enum": [
                  "private",
                  "public",
                  "personal"
                ],
                "description": "`public` - a charge point visible on the map to everybody </br>\n`private` - by default hidden from the map and for private usage only - company and their employees for example. The visibility of the charge point could be managed in partner object, with the different options for accessType. </br>\n`personal` - the charge point could have a single owner only. The owner is set when the user claims the charger or with Actions / Change Owner. </br>\n"
              },
              "pin": {
                "type": "string",
                "description": "Required for personal charge points. The PIN should be provided in the mobile app when the charge point is claimed by a user. Should contain only numbers.\n"
              },
              "locationId": {
                "type": "integer",
                "description": "locationId is always a REQUIRED field for commercial public and commercial private charge points. It is NOT a required field only for personal charge points.\n"
              },
              "chargingZoneId": {
                "type": "integer",
                "nullable": true
              },
              "electricityRateId": {
                "type": "integer",
                "description": "If there is Electricity rate set to the Charge point the electricity cost for each charging session would be tracked. Dynamic electricity rates could not be selected, only ones created in the resource / electricity-rate.\n"
              },
              "subscription": {
                "type": "object",
                "description": "An active subscription could be required for personal (home) charge points in order to use the charge point.",
                "properties": {
                  "required": {
                    "type": "boolean",
                    "description": "Only for personal charge points. Require an active subscription to use the charge point."
                  },
                  "planIds": {
                    "description": "Only for personal charge points. List of subscription plans for any of which the user should have an active subscription, to be able to use the charge point.",
                    "type": "array",
                    "items": {
                      "type": "integer"
                    }
                  }
                }
              },
              "networkType": {
                "type": "string",
                "enum": [
                  "cellular",
                  "ethernet",
                  "wlan"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled",
                  "out of order",
                  "demo"
                ],
                "description": "Shows the system status of the Charge Point. </br>\n`enabled` - the charge point is fully operative.\n`disabled` - the charge point would not be shown on the map if it is a commercial public or commercial private with the relevant option for visibility nor could be claimed or found by ID if it is personal (home). </br>\n`demo` - acts as a simulator so different setups could be tested. </br>\n`out of order` - the charge point is visible and shared with users, but a charging session\n"
              },
              "managedByOperator": {
                "type": "boolean",
                "default": true,
                "description": "This flag indicates whether the operator can actively manage the charge point. If the flag is set to `false` the charge point can still be shown to users, but they can't request to start a session on it.\n\nDeprecated. Please use `communicationMode` instead.\n",
                "deprecated": true
              },
              "externalId": {
                "type": "string"
              },
              "network": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "nullable": true,
                    "description": "OCPP Identifier"
                  },
                  "protocol": {
                    "type": "string",
                    "enum": [
                      "ocpp 1.5",
                      "ocpp 1.6",
                      "ocpp 1.6 soap",
                      "ocpp 2.0.1"
                    ]
                  },
                  "password": {
                    "type": "string"
                  },
                  "ip": {
                    "type": "string",
                    "description": "Required for ocpp 1.5 (SOAP)"
                  },
                  "port": {
                    "type": "integer",
                    "description": "Required for ocpp 1.5 (SOAP)"
                  }
                }
              },
              "capabilities": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "remote_start_stop_capable",
                    "meter_values",
                    "stop_transaction_on_ev_disconnect",
                    "disregard_the_heartbeats",
                    "display_messages"
                  ]
                },
                "description": "`remote_start_stop_capable` - whether Remote start/stop is possible for the Charge Point </br>\n`meter_values` - whether the Charge Point should send meter updates to the system </br>\n`stop_transaction_on_ev_disconnect` - for ongoing sessions, when the cable is unplugged this should stop the session and if it is returned back a new session would be created. </br>\n`disregard_the_heartbeats` - only for OCPP 1.5 SOAP. Network status by default is updated based on the heartbeat messages. When enabled, the Charge Point would be always treated as available and its network status would not depend on heartbeat messages. </br>\n`display_messages` - charger has a display and it is enabled to display messages. This capability is enabled automatically when the charger reports the corresponding configuration key. When creating a charge point, the capability is ignored as it is automatically detected on boot. </br>\n"
              },
              "autoStartWithoutAuthorization": {
                "type": "boolean",
                "default": false,
                "description": "When enabled the system would allow charging sessions initiated </br>\nlocally by the charge point assuming it is setup to work in auto-start / </br>\nplug-and-charge mode. It would also automatically start a </br>\nsession with a remote start command if one is not already started by the charging stations a  </br>\nfew seconds after a Preparing status is detected indicating that a vehicle is connected.\n"
              },
              "disableAutoStartEmulation": {
                "type": "boolean",
                "default": false,
                "description": "The Auto-start option above does 2 things: (1) it allows charging </br>\nsessions started by the charge point assuming that it may be set up locally </br>\nto auto-start charging when a vehicle is connected and (2) if the charging </br>\nstation doesnt start the session within a few seconds after the vehicles is </br>\nconnected the system sends a remote start command - which is to emulate auto-start </br>\ncharging. With this checkbox you can disable the emulation and rely </br>\nentirely on the charging station to auto-start the charging. </br>\n"
              },
              "security": {
                "type": "object",
                "properties": {
                  "desiredProfile": {
                    "type": "integer",
                    "description": "The backend will try to set it 3 times at boot notification. If the charge point does not support it, the backend will use the highest security profile the charge point could use. </br>\nThe following security profiles are supported: </br>\n0: `No Authentication` </br>\n1: `Unsecured Trasport with Basic Authentication (Plain-back Authentication)` - It does not include authentication for the CSMS, or measures to set up a secure communication channel. Therefore, it should only be used in trusted networks, for instance in networks where there is a VPN between the CSMS and the Charging Station. For field operation it is highly recommended to use a security profile with TLS. </br>\n2: `TLS with Basic Authentication (Encrypted Authentication)` - In the TLS with Basic Authentication profile, the communication channel is secured using Transport Layer Security (TLS). The CSMS authenticates itself using a TLS server certificate. The Charging Stations authenticate themselves using HTTP Basic Authentication. </br>\n3: `TLS with client-side certificates profile` </br>\n"
                  },
                  "currentProfile": {
                    "type": "integer",
                    "readOnly": true,
                    "description": "The security profile that is currenty being used by the charge point. Description of the supported security profiles can be found in the security whitepaper available here - https://www.openchargealliance.org/protocols/ocpp-16/"
                  },
                  "hardwareEnabledProfile": {
                    "type": "integer",
                    "readOnly": true,
                    "description": "The maximum security profile that the charge point hardware supports. Description of the supported security profiles can be found in the security whitepaper available here - https://www.openchargealliance.org/protocols/ocpp-16/"
                  },
                  "desiredProfileStatus": {
                    "type": "string",
                    "readOnly": true,
                    "enum": [
                      "applied",
                      "pending",
                      "rejected"
                    ],
                    "description": "Whether the last requested desiredSecurityProfile was successfully applied to the charge point.\n"
                  }
                },
                "required": [
                  "currentProfile"
                ]
              },
              "modelId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the CP Model, if one is associated with the Charge Point. Can be set to null to remove the current CP Model associated with the Charge Point. Mind that on boot the charger reports the hardware model and it is automatically updated.\n"
              },
              "monitoringEnabled": {
                "type": "boolean",
                "default": true,
                "description": "When enabled, issues are created for hardware faults and connectivity problems, and notifications/webhooks are sent. When disabled, no issues are created and no notifications are sent for this charge point."
              },
              "autoRecoveryEnabled": {
                "type": "boolean",
                "default": true,
                "description": "When enabled, the system automatically attempts to recover the charge point when hardware faults are detected (status requests, soft reboots). When disabled, issues are still created (if monitoring is enabled) but no automated recovery actions are taken."
              },
              "enableAutoFaultRecovery": {
                "type": "boolean",
                "default": false,
                "deprecated": true,
                "description": "**DEPRECATED:** This field will be removed in v2.1 (target: Q2 2026). Use `monitoringEnabled` and `autoRecoveryEnabled` instead.\n\n**Previous Behavior (Single Toggle):**\nThis field previously controlled both monitoring/notifications AND auto-recovery with a single toggle. Setting it to `true` enabled both behaviors, while `false` disabled both. This forced an \"all-or-nothing\" approach.\n\n**New Behavior (Independent Controls):**\nThe new fields provide independent control:\n- `monitoringEnabled` - Controls issue creation and notifications\n- `autoRecoveryEnabled` - Controls automated recovery attempts\n\n**Current Backward Compatibility:**\nWhen provided in a request, this field sets **BOTH** `monitoringEnabled` AND `autoRecoveryEnabled` to the same value for backward compatibility.\n\n**Migration Guide - Common Use Cases:**\n1. **Receive notifications only (no auto-recovery):**\n   - Set `monitoringEnabled: true`, `autoRecoveryEnabled: false`\n   - Use case: Manual control over recovery, but still get alerts\n\n2. **Auto-recovery only (silent mode):**\n   - Set `monitoringEnabled: false`, `autoRecoveryEnabled: true`\n   - Use case: Auto-fix issues without creating alerts (not recommended - no visibility)\n\n3. **Full automation (current default):**\n   - Set `monitoringEnabled: true`, `autoRecoveryEnabled: true`\n   - Old equivalent: `enableAutoFaultRecovery: true`\n\n4. **Disabled (manual control):**\n   - Set `monitoringEnabled: false`, `autoRecoveryEnabled: false`\n   - Old equivalent: `enableAutoFaultRecovery: false`\n\n**Migration Deadline:** Please migrate to the new fields by Q1 2026.\n"
              },
              "user": {
                "type": "object",
                "description": "Owner information along with owner preferences of the charge point when of type *personal*. If smart charging is enabled, smart charging preferences are also included.",
                "properties": {
                  "id": {
                    "type": "integer",
                    "nullable": true
                  },
                  "automaticFirmwareUpdatesEnabled": {
                    "type": "boolean",
                    "default": true
                  }
                }
              },
              "partner": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer"
                  },
                  "contractId": {
                    "type": "integer"
                  },
                  "contactId": {
                    "deprecated": true,
                    "type": "integer"
                  },
                  "corporateBillingAsDefault": {
                    "type": "boolean",
                    "default": false,
                    "description": "The partner's corporate billing would be used as a payment method by default, when a user who is invited to use the partner's corporate billing starts a session on the charge point."
                  },
                  "accessType": {
                    "type": "string",
                    "description": "`private_view_private_use` - only users invited by the partner with the option to access private charge points could view this charge point on the map and use it. </br>\n`private_view_public_use` - only users invited by the partner with the option to access private charge points can view this charge point on the map but anyone who scans the QR or enters the ID can use it. </br>\n`public_view_private_use` - anyone could see the charge point on the map with a notice but only users invited by the partner with the option to access private charge points could use it.` </br>\n",
                    "enum": [
                      "private_view_private_use",
                      "private_view_public_use",
                      "public_view_private_use"
                    ]
                  },
                  "notice": {
                    "deprecated": true,
                    "description": "**Deprecated**: Use top-level `noticeId` and `notice` fields instead. The notice is only available if the charge point is of type `private` and the accessType is `public_view_private_use`.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              },
              "utilityId": {
                "type": "integer",
                "nullable": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "ISO 8601 formatted date"
              },
              "firstContactAt": {
                "type": "string",
                "format": "date",
                "readOnly": true,
                "description": "ISO 8601 formatted date"
              },
              "roamingOperatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "When null, the charge point is a local one. For roaming charge points, the ID of the roaming operator is provided"
              },
              "chargingProfile": {
                "readOnly": true,
                "type": "object",
                "nullable": true,
                "properties": {
                  "id": {
                    "type": "integer"
                  },
                  "minChargingRate": {
                    "type": "number",
                    "nullable": true
                  },
                  "schedulePeriods": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "object",
                      "properties": {
                        "startPeriod": {
                          "type": "integer"
                        },
                        "limit": {
                          "type": "number",
                          "multipleOf": 0.1
                        },
                        "numberPhases": {
                          "type": "integer"
                        }
                      }
                    }
                  },
                  "scheduleStart": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "chargingRateUnit": {
                    "type": "string",
                    "enum": [
                      "A",
                      "W"
                    ]
                  },
                  "stackLevel": {
                    "type": "integer"
                  },
                  "chargingProfileKind": {
                    "type": "string",
                    "enum": [
                      "Absolute",
                      "Recurring",
                      "Relative"
                    ]
                  },
                  "recurrencyKind": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "daily",
                      "weekly"
                    ]
                  },
                  "chargingCompleteAt": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "purpose": {
                    "type": "string",
                    "enum": [
                      "ChargePointMaxProfile",
                      "TxDefaultProfile",
                      "TxProfile"
                    ]
                  },
                  "validTo": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "validFrom": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "duration": {
                    "type": "integer",
                    "nullable": true
                  }
                }
              },
              "displayTariffAndCosts": {
                "readOnly": true,
                "type": "boolean",
                "description": "The charge point has a display and messages could be shown to the user."
              },
              "tariffDisplayMessages": {
                "readOnly": true,
                "type": "object",
                "description": "Per-message settings for tariff and cost display. This object is only present when `displayTariffAndCosts` is `true`.\nAll fields default to `true` when not explicitly set.\n",
                "properties": {
                  "sendDefaultPrice": {
                    "type": "boolean",
                    "default": true,
                    "description": "Sends default tariff information on boot and when tariffs change."
                  },
                  "sendUserPrice": {
                    "type": "boolean",
                    "default": true,
                    "description": "Sends the authorized user's tariff at session authorization."
                  },
                  "sendRunningCost": {
                    "type": "boolean",
                    "default": true,
                    "description": "Sends real-time cost updates during charging sessions."
                  },
                  "sendFinalCost": {
                    "type": "boolean",
                    "default": true,
                    "description": "Sends the total session cost after charging ends."
                  }
                }
              },
              "lastBootNotification": {
                "type": "object",
                "nullable": true,
                "readOnly": true,
                "properties": {
                  "model": {
                    "type": "string"
                  },
                  "vendor": {
                    "type": "string"
                  },
                  "chargeBoxSerialNumber": {
                    "type": "string",
                    "nullable": true
                  },
                  "chargePointSerialNumber": {
                    "type": "string",
                    "nullable": true
                  },
                  "firmwareVersion": {
                    "type": "string",
                    "nullable": true
                  },
                  "iccid": {
                    "type": "string",
                    "nullable": true
                  },
                  "imsi": {
                    "type": "string",
                    "nullable": true
                  },
                  "meterSerialNumber": {
                    "type": "string",
                    "nullable": true
                  },
                  "meterType": {
                    "type": "string",
                    "nullable": true
                  },
                  "lastUpdatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "ISO 8601 formatted date",
                    "readOnly": true
                  }
                }
              },
              "networkStatus": {
                "type": "string",
                "readOnly": true,
                "description": "Connection status of the charge point </br>\n`never_connected` - the charge point has not yet connected to the CPMS </br>\n`available` - connected to the CPMS </br>\n`temporarily_unavailable` - disconnected a short while ago </br>\n`long-term_unavailable` - disconnected, and some time has passed, so we dont expect the connection will be restores. </br>\n",
                "enum": [
                  "never_connected",
                  "available",
                  "temporarily_unavailable",
                  "long-term_unavailable"
                ]
              },
              "lastNetworkStatusUpdateAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "nullable": true,
                "description": "The datetime when the charge point's network status was last updated. This corresponds to the \"Latest heartbeat at\" value shown in the CPMS Hardware section. Returns null when the charge point has never connected."
              },
              "hardwareStatus": {
                "type": "string",
                "readOnly": true,
                "enum": [
                  "available",
                  "unavailable",
                  "faulted"
                ],
                "description": "When hardware status is null, that means that the charge point has not connected yet or has not reported a hardware status for the charge point in the past."
              },
              "lastHardwareStatusUpdateAt": {
                "description": "ISO 8601 formatted date",
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "vendorErrorCode": {
                "type": "string",
                "readOnly": true,
                "description": "This property is shown only when the hardwareStatus is `faulted`"
              },
              "tags": {
                "type": "array",
                "description": "Tags can be used for filtering and grouping chargers by tag. When doing a PATCH input all tags that should be associated with the charge point. Omitting a tag would remove it from the charge point.",
                "items": {
                  "type": "string"
                }
              },
              "uptimeTrackingEnabled": {
                "type": "boolean",
                "description": "Indicates whether Uptime tracking is currently enabled for the charge point. `true` means an open operational period exists; `false` means none does.\n",
                "example": true
              },
              "uptimeTrackingActivatedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "description": "ISO 8601 timestamp (with timezone offset) marking the start of the current open operational period. Returns `null` when Uptime tracking is disabled or has never been activated.\n",
                "example": "2025-10-14T08:30:00+00:00"
              },
              "sharingCode": {
                "type": "string"
              },
              "sharingBillingRule": {
                "type": "string",
                "readOnly": true,
                "description": "Billing rule for guest charging sessions on shared personal charge points.\nThis property is only present when the charge point is of type `personal` and has a sharing code set.\n- `owner_covers_guests`: The charge point owner pays for guest charging sessions.\n- `guests_pay_directly`: Guests pay for their own charging sessions.\n- `enforce_subscription`: Both owner and guest must have active subscriptions to charge.\n",
                "enum": [
                  "owner_covers_guests",
                  "guests_pay_directly",
                  "enforce_subscription"
                ]
              },
              "enabledRandomisedDelay": {
                "type": "boolean",
                "description": "Applicable for `personal` charge points and `private` charge points with Time of Day schedule. For `public` charge points will be omitted."
              },
              "noticeId": {
                "type": "integer",
                "description": "If both noticeId and partner.notice object are provided in the request the noticeId will be used to complete the request NOT the partner.notice object!",
                "nullable": true
              },
              "notice": {
                "readOnly": true,
                "description": "If `include[]=notice` is provided with the request, the notice associated with this charge point will be provided here.\nThe notice is only available if the charge point is of type `private` and the accessType is `public_view_private_use`.\nTo associate a notice with a charge point, use the `noticeId` field.\n",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "usesRenewableEnergy": {
                "type": "boolean",
                "default": false,
                "description": "When enabled, if no electricity rate is assigned to the charge point any roaming session will be marked as using renewable energy.\nThe actual energy mix can be specified in an electricity rate, which can then be assigned to the charge point. In that case the energy mix will be provided for roaming sessions.\nThis information can be gathered from the utility provider or third-party platforms that provide this information to the public.\n"
              },
              "integratedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "manufacturedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "ocppConnectedChargePointId": {
                "type": "integer",
                "description": "The ID of the charge point that is connected to the backend and used by this charge point for OCPP communication. Required when the `communicationMode` is `via_ocpp_connected_charge_point`.\n"
              },
              "notes": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "summary",
                    "pinned",
                    "createdAt",
                    "updatedAt"
                  ],
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Unique identifier for the note",
                      "example": 123
                    },
                    "summary": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "Short summary or title of the note",
                      "example": "Important maintenance note"
                    },
                    "details": {
                      "type": "string",
                      "maxLength": 2000,
                      "description": "Detailed content of the note. Omitted when empty.",
                      "example": "This charge point requires monthly inspection due to high usage."
                    },
                    "pinned": {
                      "type": "boolean",
                      "description": "Whether the note is pinned (appears first in listings)",
                      "example": true
                    },
                    "createdByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who created the note. Omitted when unavailable.",
                      "example": 1
                    },
                    "updatedByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                      "example": 2
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was created",
                      "example": "2025-12-16T10:00:00Z"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was last updated",
                      "example": "2025-12-16T12:00:00Z"
                    }
                  }
                },
                "description": "If `include[]=notes` is provided with the request, the notes attached to this charge point will be provided here. Notes are returned with pinned notes first, then ordered by creation date descending."
              },
              "publicSharing": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "Whether public access is enabled on this `personal` charge point. When `true`, same-operator users without a sharing invite can authorise sessions and the owner is reimbursed by the operator for public-access sessions.\n"
                  },
                  "roamingPublishEnabled": {
                    "type": "boolean",
                    "description": "Whether the `personal` charge point is published to OCPI roaming partners.\n"
                  },
                  "reimbursementPolicyId": {
                    "type": "integer",
                    "description": "The reimbursement policy reimbursing the owner for public-access sessions on this `personal` charge point. Present only when a reimbursement policy is set; omitted otherwise.\n"
                  }
                },
                "description": "Public access controls for this `personal` charge point. Present only for `personal` charge points when the `home-charging-reimbursement` feature is enabled; otherwise omitted.\n",
                "required": [
                  "enabled",
                  "roamingPublishEnabled"
                ]
              },
              "communicationMode": {
                "readOnly": true,
                "type": "string",
                "enum": [
                  "none",
                  "direct_ocpp",
                  "via_ocpp_connected_charge_point",
                  "roaming"
                ],
                "description": "Indicates how the charge point communicates with the backend.</br>\n`none` - the charge point is not connected to the backend. The charge point can be displayed to users with instructions how to use it.</br>\n`direct_ocpp` - the charge point is connected through OCPP and is actively being managed by the backend.</br>\n`via_ocpp_connected_charge_point` - the charge point is a satellite of another charge point which communicates through OCPP and is identified by `ocppConnectedChargePointId`. The charge point is not actively managed, but inherits most of its properties from its master charge point.</br>\n`roaming` - the charge point was received from a roaming partner. The charge point can be controlled as much as the roaming connection allows.\n"
              },
              "electricityCostReimbursementIntegrationId": {
                "type": "integer",
                "description": "The ID of the third-party electricity cost reimbursement integration to use for processing reimbursements for charging sessions at this charge point. Only applicable to personal (home) charge points - ignored for public and private charge points. When not set, this property is omitted from the response.\n",
                "example": 123
              },
              "installationAndMaintenanceCompanyId": {
                "type": "integer",
                "description": "The ID of the Installation & Maintenance company associated with this charge point. Must be owned by the same operator. When not set, this property is omitted from the response.\n",
                "example": 456
              },
              "countryStationId": {
                "type": "string",
                "description": "Country-specific station identifier for NAP reporting (e.g., BNetzA Stations-ID for Germany). When not set, this property is omitted from the response.\n",
                "example": "BNA0001"
              },
              "calibrationLawDataAvailability": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "local",
                  "not_available"
                ],
                "description": "Calibration law data availability override for Hubject/OICP compliance. Returns `local` or `not_available` when explicitly set by the operator. When not set, this property is omitted from the response.\n",
                "example": "local"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId",
              "name",
              "type",
              "status",
              "network",
              "security",
              "networkStatus",
              "autoStartWithoutAuthorization",
              "disableAutoStartEmulation",
              "monitoringEnabled",
              "autoRecoveryEnabled",
              "enableAutoFaultRecovery",
              "communicationMode",
              "lastUpdatedAt"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to. Null for roaming charge points.",
                "example": 1
              },
              "name": {
                "type": "string",
                "maxLength": 255
              },
              "type": {
                "type": "string",
                "enum": [
                  "private",
                  "public",
                  "personal"
                ],
                "description": "`public` - a charge point visible on the map to everybody </br>\n`private` - by default hidden from the map and for private usage only - company and their employees for example. The visibility of the charge point could be managed in partner object, with the different options for accessType. </br>\n`personal` - the charge point could have a single owner only. The owner is set when the user claims the charger or with Actions / Change Owner. </br>\n"
              },
              "pin": {
                "type": "string",
                "description": "Required for personal charge points. The PIN should be provided in the mobile app when the charge point is claimed by a user. Should contain only numbers.\n"
              },
              "locationId": {
                "type": "integer",
                "description": "locationId is always a REQUIRED field for commercial public and commercial private charge points. It is NOT a required field only for personal charge points.\n"
              },
              "chargingZoneId": {
                "type": "integer",
                "nullable": true
              },
              "electricityRateId": {
                "type": "integer",
                "description": "If there is Electricity rate set to the Charge point the electricity cost for each charging session would be tracked. Dynamic electricity rates could not be selected, only ones created in the resource / electricity-rate.\n"
              },
              "subscription": {
                "type": "object",
                "description": "An active subscription could be required for personal (home) charge points in order to use the charge point.",
                "properties": {
                  "required": {
                    "type": "boolean",
                    "description": "Only for personal charge points. Require an active subscription to use the charge point."
                  },
                  "planIds": {
                    "description": "Only for personal charge points. List of subscription plans for any of which the user should have an active subscription, to be able to use the charge point.",
                    "type": "array",
                    "items": {
                      "type": "integer"
                    }
                  }
                }
              },
              "networkType": {
                "type": "string",
                "enum": [
                  "cellular",
                  "ethernet",
                  "wlan"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled",
                  "out of order",
                  "demo"
                ],
                "description": "Shows the system status of the Charge Point. </br>\n`enabled` - the charge point is fully operative.\n`disabled` - the charge point would not be shown on the map if it is a commercial public or commercial private with the relevant option for visibility nor could be claimed or found by ID if it is personal (home). </br>\n`demo` - acts as a simulator so different setups could be tested. </br>\n`out of order` - the charge point is visible and shared with users, but a charging session\n"
              },
              "managedByOperator": {
                "type": "boolean",
                "default": true,
                "description": "This flag indicates whether the operator can actively manage the charge point. If the flag is set to `false` the charge point can still be shown to users, but they can't request to start a session on it.\n\nDeprecated. Please use `communicationMode` instead.\n",
                "deprecated": true
              },
              "externalId": {
                "type": "string"
              },
              "network": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "nullable": true,
                    "description": "OCPP Identifier"
                  },
                  "protocol": {
                    "type": "string",
                    "enum": [
                      "ocpp 1.5",
                      "ocpp 1.6",
                      "ocpp 1.6 soap",
                      "ocpp 2.0.1"
                    ]
                  },
                  "password": {
                    "type": "string"
                  },
                  "ip": {
                    "type": "string",
                    "description": "Required for ocpp 1.5 (SOAP)"
                  },
                  "port": {
                    "type": "integer",
                    "description": "Required for ocpp 1.5 (SOAP)"
                  }
                }
              },
              "capabilities": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "remote_start_stop_capable",
                    "meter_values",
                    "stop_transaction_on_ev_disconnect",
                    "disregard_the_heartbeats",
                    "display_messages"
                  ]
                },
                "description": "`remote_start_stop_capable` - whether Remote start/stop is possible for the Charge Point </br>\n`meter_values` - whether the Charge Point should send meter updates to the system </br>\n`stop_transaction_on_ev_disconnect` - for ongoing sessions, when the cable is unplugged this should stop the session and if it is returned back a new session would be created. </br>\n`disregard_the_heartbeats` - only for OCPP 1.5 SOAP. Network status by default is updated based on the heartbeat messages. When enabled, the Charge Point would be always treated as available and its network status would not depend on heartbeat messages. </br>\n`display_messages` - charger has a display and it is enabled to display messages. This capability is enabled automatically when the charger reports the corresponding configuration key. When creating a charge point, the capability is ignored as it is automatically detected on boot. </br>\n"
              },
              "autoStartWithoutAuthorization": {
                "type": "boolean",
                "default": false,
                "description": "When enabled the system would allow charging sessions initiated </br>\nlocally by the charge point assuming it is setup to work in auto-start / </br>\nplug-and-charge mode. It would also automatically start a </br>\nsession with a remote start command if one is not already started by the charging stations a  </br>\nfew seconds after a Preparing status is detected indicating that a vehicle is connected.\n"
              },
              "disableAutoStartEmulation": {
                "type": "boolean",
                "default": false,
                "description": "The Auto-start option above does 2 things: (1) it allows charging </br>\nsessions started by the charge point assuming that it may be set up locally </br>\nto auto-start charging when a vehicle is connected and (2) if the charging </br>\nstation doesnt start the session within a few seconds after the vehicles is </br>\nconnected the system sends a remote start command - which is to emulate auto-start </br>\ncharging. With this checkbox you can disable the emulation and rely </br>\nentirely on the charging station to auto-start the charging. </br>\n"
              },
              "security": {
                "type": "object",
                "properties": {
                  "desiredProfile": {
                    "type": "integer",
                    "description": "The backend will try to set it 3 times at boot notification. If the charge point does not support it, the backend will use the highest security profile the charge point could use. </br>\nThe following security profiles are supported: </br>\n0: `No Authentication` </br>\n1: `Unsecured Trasport with Basic Authentication (Plain-back Authentication)` - It does not include authentication for the CSMS, or measures to set up a secure communication channel. Therefore, it should only be used in trusted networks, for instance in networks where there is a VPN between the CSMS and the Charging Station. For field operation it is highly recommended to use a security profile with TLS. </br>\n2: `TLS with Basic Authentication (Encrypted Authentication)` - In the TLS with Basic Authentication profile, the communication channel is secured using Transport Layer Security (TLS). The CSMS authenticates itself using a TLS server certificate. The Charging Stations authenticate themselves using HTTP Basic Authentication. </br>\n3: `TLS with client-side certificates profile` </br>\n"
                  },
                  "currentProfile": {
                    "type": "integer",
                    "readOnly": true,
                    "description": "The security profile that is currenty being used by the charge point. Description of the supported security profiles can be found in the security whitepaper available here - https://www.openchargealliance.org/protocols/ocpp-16/"
                  },
                  "hardwareEnabledProfile": {
                    "type": "integer",
                    "readOnly": true,
                    "description": "The maximum security profile that the charge point hardware supports. Description of the supported security profiles can be found in the security whitepaper available here - https://www.openchargealliance.org/protocols/ocpp-16/"
                  },
                  "desiredProfileStatus": {
                    "type": "string",
                    "readOnly": true,
                    "enum": [
                      "applied",
                      "pending",
                      "rejected"
                    ],
                    "description": "Whether the last requested desiredSecurityProfile was successfully applied to the charge point.\n"
                  }
                },
                "required": [
                  "currentProfile"
                ]
              },
              "modelId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the CP Model, if one is associated with the Charge Point. Can be set to null to remove the current CP Model associated with the Charge Point. Mind that on boot the charger reports the hardware model and it is automatically updated.\n"
              },
              "monitoringEnabled": {
                "type": "boolean",
                "default": true,
                "description": "When enabled, issues are created for hardware faults and connectivity problems, and notifications/webhooks are sent. When disabled, no issues are created and no notifications are sent for this charge point."
              },
              "autoRecoveryEnabled": {
                "type": "boolean",
                "default": true,
                "description": "When enabled, the system automatically attempts to recover the charge point when hardware faults are detected (status requests, soft reboots). When disabled, issues are still created (if monitoring is enabled) but no automated recovery actions are taken."
              },
              "enableAutoFaultRecovery": {
                "type": "boolean",
                "default": false,
                "deprecated": true,
                "description": "**DEPRECATED:** This field will be removed in v2.1 (target: Q2 2026). Use `monitoringEnabled` and `autoRecoveryEnabled` instead.\n\n**Previous Behavior (Single Toggle):**\nThis field previously controlled both monitoring/notifications AND auto-recovery with a single toggle. Setting it to `true` enabled both behaviors, while `false` disabled both. This forced an \"all-or-nothing\" approach.\n\n**New Behavior (Independent Controls):**\nThe new fields provide independent control:\n- `monitoringEnabled` - Controls issue creation and notifications\n- `autoRecoveryEnabled` - Controls automated recovery attempts\n\n**Current Backward Compatibility:**\nWhen provided in a request, this field sets **BOTH** `monitoringEnabled` AND `autoRecoveryEnabled` to the same value for backward compatibility.\n\n**Migration Guide - Common Use Cases:**\n1. **Receive notifications only (no auto-recovery):**\n   - Set `monitoringEnabled: true`, `autoRecoveryEnabled: false`\n   - Use case: Manual control over recovery, but still get alerts\n\n2. **Auto-recovery only (silent mode):**\n   - Set `monitoringEnabled: false`, `autoRecoveryEnabled: true`\n   - Use case: Auto-fix issues without creating alerts (not recommended - no visibility)\n\n3. **Full automation (current default):**\n   - Set `monitoringEnabled: true`, `autoRecoveryEnabled: true`\n   - Old equivalent: `enableAutoFaultRecovery: true`\n\n4. **Disabled (manual control):**\n   - Set `monitoringEnabled: false`, `autoRecoveryEnabled: false`\n   - Old equivalent: `enableAutoFaultRecovery: false`\n\n**Migration Deadline:** Please migrate to the new fields by Q1 2026.\n"
              },
              "user": {
                "type": "object",
                "description": "Owner information along with owner preferences of the charge point when of type *personal*. If smart charging is enabled, smart charging preferences are also included.",
                "properties": {
                  "id": {
                    "type": "integer",
                    "nullable": true
                  },
                  "automaticFirmwareUpdatesEnabled": {
                    "type": "boolean",
                    "default": true
                  }
                }
              },
              "partner": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer"
                  },
                  "contractId": {
                    "type": "integer"
                  },
                  "contactId": {
                    "deprecated": true,
                    "type": "integer"
                  },
                  "corporateBillingAsDefault": {
                    "type": "boolean",
                    "default": false,
                    "description": "The partner's corporate billing would be used as a payment method by default, when a user who is invited to use the partner's corporate billing starts a session on the charge point."
                  },
                  "accessType": {
                    "type": "string",
                    "description": "`private_view_private_use` - only users invited by the partner with the option to access private charge points could view this charge point on the map and use it. </br>\n`private_view_public_use` - only users invited by the partner with the option to access private charge points can view this charge point on the map but anyone who scans the QR or enters the ID can use it. </br>\n`public_view_private_use` - anyone could see the charge point on the map with a notice but only users invited by the partner with the option to access private charge points could use it.` </br>\n",
                    "enum": [
                      "private_view_private_use",
                      "private_view_public_use",
                      "public_view_private_use"
                    ]
                  },
                  "notice": {
                    "deprecated": true,
                    "description": "**Deprecated**: Use top-level `noticeId` and `notice` fields instead. The notice is only available if the charge point is of type `private` and the accessType is `public_view_private_use`.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              },
              "utilityId": {
                "type": "integer",
                "nullable": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "ISO 8601 formatted date"
              },
              "firstContactAt": {
                "type": "string",
                "format": "date",
                "readOnly": true,
                "description": "ISO 8601 formatted date"
              },
              "roamingOperatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "When null, the charge point is a local one. For roaming charge points, the ID of the roaming operator is provided"
              },
              "chargingProfile": {
                "readOnly": true,
                "type": "object",
                "nullable": true,
                "properties": {
                  "id": {
                    "type": "integer"
                  },
                  "minChargingRate": {
                    "type": "number",
                    "nullable": true
                  },
                  "schedulePeriods": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "object",
                      "properties": {
                        "startPeriod": {
                          "type": "integer"
                        },
                        "limit": {
                          "type": "number",
                          "multipleOf": 0.1
                        },
                        "numberPhases": {
                          "type": "integer"
                        }
                      }
                    }
                  },
                  "scheduleStart": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "chargingRateUnit": {
                    "type": "string",
                    "enum": [
                      "A",
                      "W"
                    ]
                  },
                  "stackLevel": {
                    "type": "integer"
                  },
                  "chargingProfileKind": {
                    "type": "string",
                    "enum": [
                      "Absolute",
                      "Recurring",
                      "Relative"
                    ]
                  },
                  "recurrencyKind": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "daily",
                      "weekly"
                    ]
                  },
                  "chargingCompleteAt": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "purpose": {
                    "type": "string",
                    "enum": [
                      "ChargePointMaxProfile",
                      "TxDefaultProfile",
                      "TxProfile"
                    ]
                  },
                  "validTo": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "validFrom": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "duration": {
                    "type": "integer",
                    "nullable": true
                  }
                }
              },
              "displayTariffAndCosts": {
                "readOnly": true,
                "type": "boolean",
                "description": "The charge point has a display and messages could be shown to the user."
              },
              "tariffDisplayMessages": {
                "readOnly": true,
                "type": "object",
                "description": "Per-message settings for tariff and cost display. This object is only present when `displayTariffAndCosts` is `true`.\nAll fields default to `true` when not explicitly set.\n",
                "properties": {
                  "sendDefaultPrice": {
                    "type": "boolean",
                    "default": true,
                    "description": "Sends default tariff information on boot and when tariffs change."
                  },
                  "sendUserPrice": {
                    "type": "boolean",
                    "default": true,
                    "description": "Sends the authorized user's tariff at session authorization."
                  },
                  "sendRunningCost": {
                    "type": "boolean",
                    "default": true,
                    "description": "Sends real-time cost updates during charging sessions."
                  },
                  "sendFinalCost": {
                    "type": "boolean",
                    "default": true,
                    "description": "Sends the total session cost after charging ends."
                  }
                }
              },
              "lastBootNotification": {
                "type": "object",
                "nullable": true,
                "readOnly": true,
                "properties": {
                  "model": {
                    "type": "string"
                  },
                  "vendor": {
                    "type": "string"
                  },
                  "chargeBoxSerialNumber": {
                    "type": "string",
                    "nullable": true
                  },
                  "chargePointSerialNumber": {
                    "type": "string",
                    "nullable": true
                  },
                  "firmwareVersion": {
                    "type": "string",
                    "nullable": true
                  },
                  "iccid": {
                    "type": "string",
                    "nullable": true
                  },
                  "imsi": {
                    "type": "string",
                    "nullable": true
                  },
                  "meterSerialNumber": {
                    "type": "string",
                    "nullable": true
                  },
                  "meterType": {
                    "type": "string",
                    "nullable": true
                  },
                  "lastUpdatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "ISO 8601 formatted date",
                    "readOnly": true
                  }
                }
              },
              "networkStatus": {
                "type": "string",
                "readOnly": true,
                "description": "Connection status of the charge point </br>\n`never_connected` - the charge point has not yet connected to the CPMS </br>\n`available` - connected to the CPMS </br>\n`temporarily_unavailable` - disconnected a short while ago </br>\n`long-term_unavailable` - disconnected, and some time has passed, so we dont expect the connection will be restores. </br>\n",
                "enum": [
                  "never_connected",
                  "available",
                  "temporarily_unavailable",
                  "long-term_unavailable"
                ]
              },
              "lastNetworkStatusUpdateAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "nullable": true,
                "description": "The datetime when the charge point's network status was last updated. This corresponds to the \"Latest heartbeat at\" value shown in the CPMS Hardware section. Returns null when the charge point has never connected."
              },
              "hardwareStatus": {
                "type": "string",
                "readOnly": true,
                "enum": [
                  "available",
                  "unavailable",
                  "faulted"
                ],
                "description": "When hardware status is null, that means that the charge point has not connected yet or has not reported a hardware status for the charge point in the past."
              },
              "lastHardwareStatusUpdateAt": {
                "description": "ISO 8601 formatted date",
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "vendorErrorCode": {
                "type": "string",
                "readOnly": true,
                "description": "This property is shown only when the hardwareStatus is `faulted`"
              },
              "tags": {
                "type": "array",
                "description": "Tags can be used for filtering and grouping chargers by tag. When doing a PATCH input all tags that should be associated with the charge point. Omitting a tag would remove it from the charge point.",
                "items": {
                  "type": "string"
                }
              },
              "uptimeTrackingEnabled": {
                "type": "boolean",
                "description": "Indicates whether Uptime tracking is currently enabled for the charge point. `true` means an open operational period exists; `false` means none does.\n",
                "example": true
              },
              "uptimeTrackingActivatedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "description": "ISO 8601 timestamp (with timezone offset) marking the start of the current open operational period. Returns `null` when Uptime tracking is disabled or has never been activated.\n",
                "example": "2025-10-14T08:30:00+00:00"
              },
              "sharingCode": {
                "type": "string"
              },
              "sharingBillingRule": {
                "type": "string",
                "readOnly": true,
                "description": "Billing rule for guest charging sessions on shared personal charge points.\nThis property is only present when the charge point is of type `personal` and has a sharing code set.\n- `owner_covers_guests`: The charge point owner pays for guest charging sessions.\n- `guests_pay_directly`: Guests pay for their own charging sessions.\n- `enforce_subscription`: Both owner and guest must have active subscriptions to charge.\n",
                "enum": [
                  "owner_covers_guests",
                  "guests_pay_directly",
                  "enforce_subscription"
                ]
              },
              "enabledRandomisedDelay": {
                "type": "boolean",
                "description": "Applicable for `personal` charge points and `private` charge points with Time of Day schedule. For `public` charge points will be omitted."
              },
              "noticeId": {
                "type": "integer",
                "description": "If both noticeId and partner.notice object are provided in the request the noticeId will be used to complete the request NOT the partner.notice object!",
                "nullable": true
              },
              "notice": {
                "readOnly": true,
                "description": "If `include[]=notice` is provided with the request, the notice associated with this charge point will be provided here.\nThe notice is only available if the charge point is of type `private` and the accessType is `public_view_private_use`.\nTo associate a notice with a charge point, use the `noticeId` field.\n",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "usesRenewableEnergy": {
                "type": "boolean",
                "default": false,
                "description": "When enabled, if no electricity rate is assigned to the charge point any roaming session will be marked as using renewable energy.\nThe actual energy mix can be specified in an electricity rate, which can then be assigned to the charge point. In that case the energy mix will be provided for roaming sessions.\nThis information can be gathered from the utility provider or third-party platforms that provide this information to the public.\n"
              },
              "integratedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "manufacturedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "ocppConnectedChargePointId": {
                "type": "integer",
                "description": "The ID of the charge point that is connected to the backend and used by this charge point for OCPP communication. Required when the `communicationMode` is `via_ocpp_connected_charge_point`.\n"
              },
              "notes": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "summary",
                    "pinned",
                    "createdAt",
                    "updatedAt"
                  ],
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Unique identifier for the note",
                      "example": 123
                    },
                    "summary": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "Short summary or title of the note",
                      "example": "Important maintenance note"
                    },
                    "details": {
                      "type": "string",
                      "maxLength": 2000,
                      "description": "Detailed content of the note. Omitted when empty.",
                      "example": "This charge point requires monthly inspection due to high usage."
                    },
                    "pinned": {
                      "type": "boolean",
                      "description": "Whether the note is pinned (appears first in listings)",
                      "example": true
                    },
                    "createdByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who created the note. Omitted when unavailable.",
                      "example": 1
                    },
                    "updatedByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                      "example": 2
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was created",
                      "example": "2025-12-16T10:00:00Z"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was last updated",
                      "example": "2025-12-16T12:00:00Z"
                    }
                  }
                },
                "description": "If `include[]=notes` is provided with the request, the notes attached to this charge point will be provided here. Notes are returned with pinned notes first, then ordered by creation date descending."
              },
              "publicSharing": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "Whether public access is enabled on this `personal` charge point. When `true`, same-operator users without a sharing invite can authorise sessions and the owner is reimbursed by the operator for public-access sessions.\n"
                  },
                  "roamingPublishEnabled": {
                    "type": "boolean",
                    "description": "Whether the `personal` charge point is published to OCPI roaming partners.\n"
                  },
                  "reimbursementPolicyId": {
                    "type": "integer",
                    "description": "The reimbursement policy reimbursing the owner for public-access sessions on this `personal` charge point. Present only when a reimbursement policy is set; omitted otherwise.\n"
                  }
                },
                "description": "Public access controls for this `personal` charge point. Present only for `personal` charge points when the `home-charging-reimbursement` feature is enabled; otherwise omitted.\n",
                "required": [
                  "enabled",
                  "roamingPublishEnabled"
                ]
              },
              "communicationMode": {
                "readOnly": true,
                "type": "string",
                "enum": [
                  "none",
                  "direct_ocpp",
                  "via_ocpp_connected_charge_point",
                  "roaming"
                ],
                "description": "Indicates how the charge point communicates with the backend.</br>\n`none` - the charge point is not connected to the backend. The charge point can be displayed to users with instructions how to use it.</br>\n`direct_ocpp` - the charge point is connected through OCPP and is actively being managed by the backend.</br>\n`via_ocpp_connected_charge_point` - the charge point is a satellite of another charge point which communicates through OCPP and is identified by `ocppConnectedChargePointId`. The charge point is not actively managed, but inherits most of its properties from its master charge point.</br>\n`roaming` - the charge point was received from a roaming partner. The charge point can be controlled as much as the roaming connection allows.\n"
              },
              "electricityCostReimbursementIntegrationId": {
                "type": "integer",
                "description": "The ID of the third-party electricity cost reimbursement integration to use for processing reimbursements for charging sessions at this charge point. Only applicable to personal (home) charge points - ignored for public and private charge points. When not set, this property is omitted from the response.\n",
                "example": 123
              },
              "installationAndMaintenanceCompanyId": {
                "type": "integer",
                "description": "The ID of the Installation & Maintenance company associated with this charge point. Must be owned by the same operator. When not set, this property is omitted from the response.\n",
                "example": 456
              },
              "countryStationId": {
                "type": "string",
                "description": "Country-specific station identifier for NAP reporting (e.g., BNetzA Stations-ID for Germany). When not set, this property is omitted from the response.\n",
                "example": "BNA0001"
              },
              "calibrationLawDataAvailability": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "local",
                  "not_available"
                ],
                "description": "Calibration law data availability override for Hubject/OICP compliance. Returns `local` or `not_available` when explicitly set by the operator. When not set, this property is omitted from the response.\n",
                "example": "local"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId",
              "name",
              "type",
              "status",
              "network",
              "security",
              "networkStatus",
              "autoStartWithoutAuthorization",
              "disableAutoStartEmulation",
              "monitoringEnabled",
              "autoRecoveryEnabled",
              "enableAutoFaultRecovery",
              "communicationMode",
              "lastUpdatedAt"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to. Null for roaming charge points.",
                "example": 1
              },
              "name": {
                "type": "string",
                "maxLength": 255
              },
              "type": {
                "type": "string",
                "enum": [
                  "private",
                  "public",
                  "personal"
                ],
                "description": "`public` - a charge point visible on the map to everybody </br>\n`private` - by default hidden from the map and for private usage only - company and their employees for example. The visibility of the charge point could be managed in partner object, with the different options for accessType. </br>\n`personal` - the charge point could have a single owner only. The owner is set when the user claims the charger or with Actions / Change Owner. </br>\n"
              },
              "pin": {
                "type": "string",
                "description": "Required for personal charge points. The PIN should be provided in the mobile app when the charge point is claimed by a user. Should contain only numbers.\n"
              },
              "locationId": {
                "type": "integer",
                "description": "locationId is always a REQUIRED field for commercial public and commercial private charge points. It is NOT a required field only for personal charge points.\n"
              },
              "chargingZoneId": {
                "type": "integer",
                "nullable": true
              },
              "electricityRateId": {
                "type": "integer",
                "description": "If there is Electricity rate set to the Charge point the electricity cost for each charging session would be tracked. Dynamic electricity rates could not be selected, only ones created in the resource / electricity-rate.\n"
              },
              "subscription": {
                "type": "object",
                "description": "An active subscription could be required for personal (home) charge points in order to use the charge point.",
                "properties": {
                  "required": {
                    "type": "boolean",
                    "description": "Only for personal charge points. Require an active subscription to use the charge point."
                  },
                  "planIds": {
                    "description": "Only for personal charge points. List of subscription plans for any of which the user should have an active subscription, to be able to use the charge point.",
                    "type": "array",
                    "items": {
                      "type": "integer"
                    }
                  }
                }
              },
              "networkType": {
                "type": "string",
                "enum": [
                  "cellular",
                  "ethernet",
                  "wlan"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled",
                  "out of order",
                  "demo"
                ],
                "description": "Shows the system status of the Charge Point. </br>\n`enabled` - the charge point is fully operative.\n`disabled` - the charge point would not be shown on the map if it is a commercial public or commercial private with the relevant option for visibility nor could be claimed or found by ID if it is personal (home). </br>\n`demo` - acts as a simulator so different setups could be tested. </br>\n`out of order` - the charge point is visible and shared with users, but a charging session\n"
              },
              "managedByOperator": {
                "type": "boolean",
                "default": true,
                "description": "This flag indicates whether the operator can actively manage the charge point. If the flag is set to `false` the charge point can still be shown to users, but they can't request to start a session on it.\n\nDeprecated. Please use `communicationMode` instead.\n",
                "deprecated": true
              },
              "externalId": {
                "type": "string"
              },
              "network": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "nullable": true,
                    "description": "OCPP Identifier"
                  },
                  "protocol": {
                    "type": "string",
                    "enum": [
                      "ocpp 1.5",
                      "ocpp 1.6",
                      "ocpp 1.6 soap",
                      "ocpp 2.0.1"
                    ]
                  },
                  "password": {
                    "type": "string"
                  },
                  "ip": {
                    "type": "string",
                    "description": "Required for ocpp 1.5 (SOAP)"
                  },
                  "port": {
                    "type": "integer",
                    "description": "Required for ocpp 1.5 (SOAP)"
                  }
                }
              },
              "capabilities": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "remote_start_stop_capable",
                    "meter_values",
                    "stop_transaction_on_ev_disconnect",
                    "disregard_the_heartbeats",
                    "display_messages"
                  ]
                },
                "description": "`remote_start_stop_capable` - whether Remote start/stop is possible for the Charge Point </br>\n`meter_values` - whether the Charge Point should send meter updates to the system </br>\n`stop_transaction_on_ev_disconnect` - for ongoing sessions, when the cable is unplugged this should stop the session and if it is returned back a new session would be created. </br>\n`disregard_the_heartbeats` - only for OCPP 1.5 SOAP. Network status by default is updated based on the heartbeat messages. When enabled, the Charge Point would be always treated as available and its network status would not depend on heartbeat messages. </br>\n`display_messages` - charger has a display and it is enabled to display messages. This capability is enabled automatically when the charger reports the corresponding configuration key. When creating a charge point, the capability is ignored as it is automatically detected on boot. </br>\n"
              },
              "autoStartWithoutAuthorization": {
                "type": "boolean",
                "default": false,
                "description": "When enabled the system would allow charging sessions initiated </br>\nlocally by the charge point assuming it is setup to work in auto-start / </br>\nplug-and-charge mode. It would also automatically start a </br>\nsession with a remote start command if one is not already started by the charging stations a  </br>\nfew seconds after a Preparing status is detected indicating that a vehicle is connected.\n"
              },
              "disableAutoStartEmulation": {
                "type": "boolean",
                "default": false,
                "description": "The Auto-start option above does 2 things: (1) it allows charging </br>\nsessions started by the charge point assuming that it may be set up locally </br>\nto auto-start charging when a vehicle is connected and (2) if the charging </br>\nstation doesnt start the session within a few seconds after the vehicles is </br>\nconnected the system sends a remote start command - which is to emulate auto-start </br>\ncharging. With this checkbox you can disable the emulation and rely </br>\nentirely on the charging station to auto-start the charging. </br>\n"
              },
              "security": {
                "type": "object",
                "properties": {
                  "desiredProfile": {
                    "type": "integer",
                    "description": "The backend will try to set it 3 times at boot notification. If the charge point does not support it, the backend will use the highest security profile the charge point could use. </br>\nThe following security profiles are supported: </br>\n0: `No Authentication` </br>\n1: `Unsecured Trasport with Basic Authentication (Plain-back Authentication)` - It does not include authentication for the CSMS, or measures to set up a secure communication channel. Therefore, it should only be used in trusted networks, for instance in networks where there is a VPN between the CSMS and the Charging Station. For field operation it is highly recommended to use a security profile with TLS. </br>\n2: `TLS with Basic Authentication (Encrypted Authentication)` - In the TLS with Basic Authentication profile, the communication channel is secured using Transport Layer Security (TLS). The CSMS authenticates itself using a TLS server certificate. The Charging Stations authenticate themselves using HTTP Basic Authentication. </br>\n3: `TLS with client-side certificates profile` </br>\n"
                  },
                  "currentProfile": {
                    "type": "integer",
                    "readOnly": true,
                    "description": "The security profile that is currenty being used by the charge point. Description of the supported security profiles can be found in the security whitepaper available here - https://www.openchargealliance.org/protocols/ocpp-16/"
                  },
                  "hardwareEnabledProfile": {
                    "type": "integer",
                    "readOnly": true,
                    "description": "The maximum security profile that the charge point hardware supports. Description of the supported security profiles can be found in the security whitepaper available here - https://www.openchargealliance.org/protocols/ocpp-16/"
                  },
                  "desiredProfileStatus": {
                    "type": "string",
                    "readOnly": true,
                    "enum": [
                      "applied",
                      "pending",
                      "rejected"
                    ],
                    "description": "Whether the last requested desiredSecurityProfile was successfully applied to the charge point.\n"
                  }
                },
                "required": [
                  "currentProfile"
                ]
              },
              "modelId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the CP Model, if one is associated with the Charge Point. Can be set to null to remove the current CP Model associated with the Charge Point. Mind that on boot the charger reports the hardware model and it is automatically updated.\n"
              },
              "monitoringEnabled": {
                "type": "boolean",
                "default": true,
                "description": "When enabled, issues are created for hardware faults and connectivity problems, and notifications/webhooks are sent. When disabled, no issues are created and no notifications are sent for this charge point."
              },
              "autoRecoveryEnabled": {
                "type": "boolean",
                "default": true,
                "description": "When enabled, the system automatically attempts to recover the charge point when hardware faults are detected (status requests, soft reboots). When disabled, issues are still created (if monitoring is enabled) but no automated recovery actions are taken."
              },
              "enableAutoFaultRecovery": {
                "type": "boolean",
                "default": false,
                "deprecated": true,
                "description": "**DEPRECATED:** This field will be removed in v2.1 (target: Q2 2026). Use `monitoringEnabled` and `autoRecoveryEnabled` instead.\n\n**Previous Behavior (Single Toggle):**\nThis field previously controlled both monitoring/notifications AND auto-recovery with a single toggle. Setting it to `true` enabled both behaviors, while `false` disabled both. This forced an \"all-or-nothing\" approach.\n\n**New Behavior (Independent Controls):**\nThe new fields provide independent control:\n- `monitoringEnabled` - Controls issue creation and notifications\n- `autoRecoveryEnabled` - Controls automated recovery attempts\n\n**Current Backward Compatibility:**\nWhen provided in a request, this field sets **BOTH** `monitoringEnabled` AND `autoRecoveryEnabled` to the same value for backward compatibility.\n\n**Migration Guide - Common Use Cases:**\n1. **Receive notifications only (no auto-recovery):**\n   - Set `monitoringEnabled: true`, `autoRecoveryEnabled: false`\n   - Use case: Manual control over recovery, but still get alerts\n\n2. **Auto-recovery only (silent mode):**\n   - Set `monitoringEnabled: false`, `autoRecoveryEnabled: true`\n   - Use case: Auto-fix issues without creating alerts (not recommended - no visibility)\n\n3. **Full automation (current default):**\n   - Set `monitoringEnabled: true`, `autoRecoveryEnabled: true`\n   - Old equivalent: `enableAutoFaultRecovery: true`\n\n4. **Disabled (manual control):**\n   - Set `monitoringEnabled: false`, `autoRecoveryEnabled: false`\n   - Old equivalent: `enableAutoFaultRecovery: false`\n\n**Migration Deadline:** Please migrate to the new fields by Q1 2026.\n"
              },
              "user": {
                "type": "object",
                "description": "Owner information along with owner preferences of the charge point when of type *personal*. If smart charging is enabled, smart charging preferences are also included.",
                "properties": {
                  "id": {
                    "type": "integer",
                    "nullable": true
                  },
                  "automaticFirmwareUpdatesEnabled": {
                    "type": "boolean",
                    "default": true
                  }
                }
              },
              "partner": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer"
                  },
                  "contractId": {
                    "type": "integer"
                  },
                  "contactId": {
                    "deprecated": true,
                    "type": "integer"
                  },
                  "corporateBillingAsDefault": {
                    "type": "boolean",
                    "default": false,
                    "description": "The partner's corporate billing would be used as a payment method by default, when a user who is invited to use the partner's corporate billing starts a session on the charge point."
                  },
                  "accessType": {
                    "type": "string",
                    "description": "`private_view_private_use` - only users invited by the partner with the option to access private charge points could view this charge point on the map and use it. </br>\n`private_view_public_use` - only users invited by the partner with the option to access private charge points can view this charge point on the map but anyone who scans the QR or enters the ID can use it. </br>\n`public_view_private_use` - anyone could see the charge point on the map with a notice but only users invited by the partner with the option to access private charge points could use it.` </br>\n",
                    "enum": [
                      "private_view_private_use",
                      "private_view_public_use",
                      "public_view_private_use"
                    ]
                  },
                  "notice": {
                    "deprecated": true,
                    "description": "**Deprecated**: Use top-level `noticeId` and `notice` fields instead. The notice is only available if the charge point is of type `private` and the accessType is `public_view_private_use`.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              },
              "utilityId": {
                "type": "integer",
                "nullable": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "ISO 8601 formatted date"
              },
              "firstContactAt": {
                "type": "string",
                "format": "date",
                "readOnly": true,
                "description": "ISO 8601 formatted date"
              },
              "roamingOperatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "When null, the charge point is a local one. For roaming charge points, the ID of the roaming operator is provided"
              },
              "chargingProfile": {
                "readOnly": true,
                "type": "object",
                "nullable": true,
                "properties": {
                  "id": {
                    "type": "integer"
                  },
                  "minChargingRate": {
                    "type": "number",
                    "nullable": true
                  },
                  "schedulePeriods": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "object",
                      "properties": {
                        "startPeriod": {
                          "type": "integer"
                        },
                        "limit": {
                          "type": "number",
                          "multipleOf": 0.1
                        },
                        "numberPhases": {
                          "type": "integer"
                        }
                      }
                    }
                  },
                  "scheduleStart": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "chargingRateUnit": {
                    "type": "string",
                    "enum": [
                      "A",
                      "W"
                    ]
                  },
                  "stackLevel": {
                    "type": "integer"
                  },
                  "chargingProfileKind": {
                    "type": "string",
                    "enum": [
                      "Absolute",
                      "Recurring",
                      "Relative"
                    ]
                  },
                  "recurrencyKind": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "daily",
                      "weekly"
                    ]
                  },
                  "chargingCompleteAt": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "purpose": {
                    "type": "string",
                    "enum": [
                      "ChargePointMaxProfile",
                      "TxDefaultProfile",
                      "TxProfile"
                    ]
                  },
                  "validTo": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "validFrom": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "duration": {
                    "type": "integer",
                    "nullable": true
                  }
                }
              },
              "displayTariffAndCosts": {
                "readOnly": true,
                "type": "boolean",
                "description": "The charge point has a display and messages could be shown to the user."
              },
              "tariffDisplayMessages": {
                "readOnly": true,
                "type": "object",
                "description": "Per-message settings for tariff and cost display. This object is only present when `displayTariffAndCosts` is `true`.\nAll fields default to `true` when not explicitly set.\n",
                "properties": {
                  "sendDefaultPrice": {
                    "type": "boolean",
                    "default": true,
                    "description": "Sends default tariff information on boot and when tariffs change."
                  },
                  "sendUserPrice": {
                    "type": "boolean",
                    "default": true,
                    "description": "Sends the authorized user's tariff at session authorization."
                  },
                  "sendRunningCost": {
                    "type": "boolean",
                    "default": true,
                    "description": "Sends real-time cost updates during charging sessions."
                  },
                  "sendFinalCost": {
                    "type": "boolean",
                    "default": true,
                    "description": "Sends the total session cost after charging ends."
                  }
                }
              },
              "lastBootNotification": {
                "type": "object",
                "nullable": true,
                "readOnly": true,
                "properties": {
                  "model": {
                    "type": "string"
                  },
                  "vendor": {
                    "type": "string"
                  },
                  "chargeBoxSerialNumber": {
                    "type": "string",
                    "nullable": true
                  },
                  "chargePointSerialNumber": {
                    "type": "string",
                    "nullable": true
                  },
                  "firmwareVersion": {
                    "type": "string",
                    "nullable": true
                  },
                  "iccid": {
                    "type": "string",
                    "nullable": true
                  },
                  "imsi": {
                    "type": "string",
                    "nullable": true
                  },
                  "meterSerialNumber": {
                    "type": "string",
                    "nullable": true
                  },
                  "meterType": {
                    "type": "string",
                    "nullable": true
                  },
                  "lastUpdatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "ISO 8601 formatted date",
                    "readOnly": true
                  }
                }
              },
              "networkStatus": {
                "type": "string",
                "readOnly": true,
                "description": "Connection status of the charge point </br>\n`never_connected` - the charge point has not yet connected to the CPMS </br>\n`available` - connected to the CPMS </br>\n`temporarily_unavailable` - disconnected a short while ago </br>\n`long-term_unavailable` - disconnected, and some time has passed, so we dont expect the connection will be restores. </br>\n",
                "enum": [
                  "never_connected",
                  "available",
                  "temporarily_unavailable",
                  "long-term_unavailable"
                ]
              },
              "lastNetworkStatusUpdateAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "nullable": true,
                "description": "The datetime when the charge point's network status was last updated. This corresponds to the \"Latest heartbeat at\" value shown in the CPMS Hardware section. Returns null when the charge point has never connected."
              },
              "hardwareStatus": {
                "type": "string",
                "readOnly": true,
                "enum": [
                  "available",
                  "unavailable",
                  "faulted"
                ],
                "description": "When hardware status is null, that means that the charge point has not connected yet or has not reported a hardware status for the charge point in the past."
              },
              "lastHardwareStatusUpdateAt": {
                "description": "ISO 8601 formatted date",
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "vendorErrorCode": {
                "type": "string",
                "readOnly": true,
                "description": "This property is shown only when the hardwareStatus is `faulted`"
              },
              "tags": {
                "type": "array",
                "description": "Tags can be used for filtering and grouping chargers by tag. When doing a PATCH input all tags that should be associated with the charge point. Omitting a tag would remove it from the charge point.",
                "items": {
                  "type": "string"
                }
              },
              "uptimeTrackingEnabled": {
                "type": "boolean",
                "description": "Indicates whether Uptime tracking is currently enabled for the charge point. `true` means an open operational period exists; `false` means none does.\n",
                "example": true
              },
              "uptimeTrackingActivatedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "description": "ISO 8601 timestamp (with timezone offset) marking the start of the current open operational period. Returns `null` when Uptime tracking is disabled or has never been activated.\n",
                "example": "2025-10-14T08:30:00+00:00"
              },
              "sharingCode": {
                "type": "string"
              },
              "sharingBillingRule": {
                "type": "string",
                "readOnly": true,
                "description": "Billing rule for guest charging sessions on shared personal charge points.\nThis property is only present when the charge point is of type `personal` and has a sharing code set.\n- `owner_covers_guests`: The charge point owner pays for guest charging sessions.\n- `guests_pay_directly`: Guests pay for their own charging sessions.\n- `enforce_subscription`: Both owner and guest must have active subscriptions to charge.\n",
                "enum": [
                  "owner_covers_guests",
                  "guests_pay_directly",
                  "enforce_subscription"
                ]
              },
              "enabledRandomisedDelay": {
                "type": "boolean",
                "description": "Applicable for `personal` charge points and `private` charge points with Time of Day schedule. For `public` charge points will be omitted."
              },
              "noticeId": {
                "type": "integer",
                "description": "If both noticeId and partner.notice object are provided in the request the noticeId will be used to complete the request NOT the partner.notice object!",
                "nullable": true
              },
              "notice": {
                "readOnly": true,
                "description": "If `include[]=notice` is provided with the request, the notice associated with this charge point will be provided here.\nThe notice is only available if the charge point is of type `private` and the accessType is `public_view_private_use`.\nTo associate a notice with a charge point, use the `noticeId` field.\n",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "usesRenewableEnergy": {
                "type": "boolean",
                "default": false,
                "description": "When enabled, if no electricity rate is assigned to the charge point any roaming session will be marked as using renewable energy.\nThe actual energy mix can be specified in an electricity rate, which can then be assigned to the charge point. In that case the energy mix will be provided for roaming sessions.\nThis information can be gathered from the utility provider or third-party platforms that provide this information to the public.\n"
              },
              "integratedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "manufacturedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "ocppConnectedChargePointId": {
                "type": "integer",
                "description": "The ID of the charge point that is connected to the backend and used by this charge point for OCPP communication. Required when the `communicationMode` is `via_ocpp_connected_charge_point`.\n"
              },
              "notes": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "summary",
                    "pinned",
                    "createdAt",
                    "updatedAt"
                  ],
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Unique identifier for the note",
                      "example": 123
                    },
                    "summary": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "Short summary or title of the note",
                      "example": "Important maintenance note"
                    },
                    "details": {
                      "type": "string",
                      "maxLength": 2000,
                      "description": "Detailed content of the note. Omitted when empty.",
                      "example": "This charge point requires monthly inspection due to high usage."
                    },
                    "pinned": {
                      "type": "boolean",
                      "description": "Whether the note is pinned (appears first in listings)",
                      "example": true
                    },
                    "createdByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who created the note. Omitted when unavailable.",
                      "example": 1
                    },
                    "updatedByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                      "example": 2
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was created",
                      "example": "2025-12-16T10:00:00Z"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was last updated",
                      "example": "2025-12-16T12:00:00Z"
                    }
                  }
                },
                "description": "If `include[]=notes` is provided with the request, the notes attached to this charge point will be provided here. Notes are returned with pinned notes first, then ordered by creation date descending."
              },
              "publicSharing": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "Whether public access is enabled on this `personal` charge point. When `true`, same-operator users without a sharing invite can authorise sessions and the owner is reimbursed by the operator for public-access sessions.\n"
                  },
                  "roamingPublishEnabled": {
                    "type": "boolean",
                    "description": "Whether the `personal` charge point is published to OCPI roaming partners.\n"
                  },
                  "reimbursementPolicyId": {
                    "type": "integer",
                    "description": "The reimbursement policy reimbursing the owner for public-access sessions on this `personal` charge point. Present only when a reimbursement policy is set; omitted otherwise.\n"
                  }
                },
                "description": "Public access controls for this `personal` charge point. Present only for `personal` charge points when the `home-charging-reimbursement` feature is enabled; otherwise omitted.\n",
                "required": [
                  "enabled",
                  "roamingPublishEnabled"
                ]
              },
              "communicationMode": {
                "readOnly": true,
                "type": "string",
                "enum": [
                  "none",
                  "direct_ocpp",
                  "via_ocpp_connected_charge_point",
                  "roaming"
                ],
                "description": "Indicates how the charge point communicates with the backend.</br>\n`none` - the charge point is not connected to the backend. The charge point can be displayed to users with instructions how to use it.</br>\n`direct_ocpp` - the charge point is connected through OCPP and is actively being managed by the backend.</br>\n`via_ocpp_connected_charge_point` - the charge point is a satellite of another charge point which communicates through OCPP and is identified by `ocppConnectedChargePointId`. The charge point is not actively managed, but inherits most of its properties from its master charge point.</br>\n`roaming` - the charge point was received from a roaming partner. The charge point can be controlled as much as the roaming connection allows.\n"
              },
              "electricityCostReimbursementIntegrationId": {
                "type": "integer",
                "description": "The ID of the third-party electricity cost reimbursement integration to use for processing reimbursements for charging sessions at this charge point. Only applicable to personal (home) charge points - ignored for public and private charge points. When not set, this property is omitted from the response.\n",
                "example": 123
              },
              "installationAndMaintenanceCompanyId": {
                "type": "integer",
                "description": "The ID of the Installation & Maintenance company associated with this charge point. Must be owned by the same operator. When not set, this property is omitted from the response.\n",
                "example": 456
              },
              "countryStationId": {
                "type": "string",
                "description": "Country-specific station identifier for NAP reporting (e.g., BNetzA Stations-ID for Germany). When not set, this property is omitted from the response.\n",
                "example": "BNA0001"
              },
              "calibrationLawDataAvailability": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "local",
                  "not_available"
                ],
                "description": "Calibration law data availability override for Hubject/OICP compliance. Returns `local` or `not_available` when explicitly set by the operator. When not set, this property is omitted from the response.\n",
                "example": "local"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointAvailablePersonalSmartChargingModesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "example": "Scheduled"
                    },
                    "integrationId": {
                      "type": "integer",
                      "nullable": true,
                      "example": null
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "user_controlled_schedule"
                      ]
                    },
                    "defaults": {
                      "type": "object",
                      "properties": {
                        "start_time": {
                          "type": "string",
                          "format": "time",
                          "example": "01:00",
                          "description": "The 24-hour format should be used.</br>\nExample `00:00`\n"
                        },
                        "end_time": {
                          "type": "string",
                          "format": "time",
                          "example": "09:00",
                          "description": "The 24-hour format should be used.</br>\nExample `01:00`\n"
                        }
                      }
                    }
                  }
                },
                {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "example": "Agile Octopus"
                    },
                    "integrationId": {
                      "type": "integer",
                      "nullable": true,
                      "example": 97
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "octopus_agile"
                      ]
                    },
                    "defaults": {
                      "type": "object",
                      "properties": {
                        "max_price": {
                          "type": "number",
                          "format": "decimal",
                          "multipleOf": 0.001,
                          "example": 0.125
                        },
                        "target_charge": {
                          "type": "object",
                          "properties": {
                            "departure_time": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00",
                              "description": "The 24-hour format should be used.</br>\nExample `00:00`\n"
                            }
                          }
                        }
                      }
                    }
                  }
                },
                {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "example": "Octopus Go"
                    },
                    "integrationId": {
                      "type": "integer",
                      "nullable": true,
                      "example": 96
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "octopus_go"
                      ]
                    },
                    "defaults": {
                      "type": "object",
                      "properties": {
                        "target_charge": {
                          "type": "object",
                          "properties": {
                            "departure_time": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00",
                              "description": "The 24-hour format should be used.</br>\nExample `00:00`\n"
                            }
                          }
                        }
                      }
                    }
                  }
                },
                {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "example": "Auto-optimised for lowest cost"
                    },
                    "integrationId": {
                      "type": "integer",
                      "nullable": true,
                      "example": 143
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "nordpool"
                      ]
                    },
                    "defaults": {
                      "type": "object",
                      "properties": {
                        "target_charge": {
                          "type": "object",
                          "properties": {
                            "departure_time": {
                              "type": "string",
                              "format": "time",
                              "example": "07:30",
                              "description": "The 24-hour format should be used.</br>\nExample `00:00`\n"
                            }
                          }
                        }
                      }
                    },
                    "locations": {
                      "type": "object",
                      "properties": {
                        "key": {
                          "type": "string",
                          "example": "GB1"
                        },
                        "label": {
                          "type": "string",
                          "example": "United Kingdom"
                        }
                      }
                    }
                  }
                }
              ]
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointConfigurationsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "value": {
                      "type": "string"
                    },
                    "componentName": {
                      "type": "string",
                      "description": "Returned only for OCPP 2.0.1."
                    },
                    "instance": {
                      "type": "string",
                      "description": "Returned only for OCPP 2.0.1."
                    },
                    "evseId": {
                      "type": "integer",
                      "description": "Returned only for OCPP 2.0.1."
                    },
                    "componentInstance": {
                      "type": "string",
                      "description": "Returned only for OCPP 2.0.1 when the component has a non-empty instance."
                    },
                    "connectorId": {
                      "type": "integer",
                      "description": "Returned only for OCPP 2.0.1 when the EVSE has a non-zero connector ID."
                    },
                    "maxLimit": {
                      "type": "integer",
                      "nullable": true
                    }
                  },
                  "required": [
                    "name",
                    "value"
                  ]
                },
                "readonly": {
                  "type": "boolean"
                },
                "required": {
                  "type": "boolean"
                },
                "timestamp": {
                  "type": "string",
                  "format": "date-time",
                  "description": "When was the configuration last updated."
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "persistentConfigurationTemplateId": {
                  "type": "integer",
                  "description": "The ID of the persistent Configuration template when the variable value is persistent."
                }
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointConfigurationRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "key": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  },
                  "componentName": {
                    "type": "string",
                    "description": "Returned only for OCPP 2.0.1."
                  },
                  "instance": {
                    "type": "string",
                    "description": "Returned only for OCPP 2.0.1."
                  },
                  "evseId": {
                    "type": "integer",
                    "description": "Returned only for OCPP 2.0.1."
                  },
                  "componentInstance": {
                    "type": "string",
                    "description": "Returned only for OCPP 2.0.1 when the component has a non-empty instance."
                  },
                  "connectorId": {
                    "type": "integer",
                    "description": "Returned only for OCPP 2.0.1 when the EVSE has a non-zero connector ID."
                  },
                  "maxLimit": {
                    "type": "integer",
                    "nullable": true
                  }
                },
                "required": [
                  "name",
                  "value"
                ]
              },
              "readonly": {
                "type": "boolean"
              },
              "required": {
                "type": "boolean"
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "When was the configuration last updated."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "persistentConfigurationTemplateId": {
                "type": "integer",
                "description": "The ID of the persistent Configuration template when the variable value is persistent."
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointConfigurationUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "key": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  },
                  "componentName": {
                    "type": "string",
                    "description": "Returned only for OCPP 2.0.1."
                  },
                  "instance": {
                    "type": "string",
                    "description": "Returned only for OCPP 2.0.1."
                  },
                  "evseId": {
                    "type": "integer",
                    "description": "Returned only for OCPP 2.0.1."
                  },
                  "componentInstance": {
                    "type": "string",
                    "description": "Returned only for OCPP 2.0.1 when the component has a non-empty instance."
                  },
                  "connectorId": {
                    "type": "integer",
                    "description": "Returned only for OCPP 2.0.1 when the EVSE has a non-zero connector ID."
                  },
                  "maxLimit": {
                    "type": "integer",
                    "nullable": true
                  }
                },
                "required": [
                  "name",
                  "value"
                ]
              },
              "readonly": {
                "type": "boolean"
              },
              "required": {
                "type": "boolean"
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "When was the configuration last updated."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "persistentConfigurationTemplateId": {
                "type": "integer",
                "description": "The ID of the persistent Configuration template when the variable value is persistent."
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointEvsesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The ID of the operator this resource belongs to. Null for roaming EVSEs.",
                  "example": 1
                },
                "physicalReference": {
                  "type": "string",
                  "description": "The identifier that is presented to the users, so they can identify the EVSE at the location."
                },
                "emi3Id": {
                  "type": "string",
                  "readOnly": true,
                  "example": "BE*FOO*E1234",
                  "description": "The full EVSE identifier in EMI3 format (e.g., `BE*FOO*E1234`).\nFor local EVSEs, this is constructed as `{CountryCode}*{PartyId}*E{PhysicalReference}`,\nwhere `CountryCode` and `PartyId` come from the operator's roaming configuration\nand `PhysicalReference` is the EVSE's PhysicalReference.\nFor roaming EVSEs, this is the identifier as received from the roaming CPO (same value as `roaming.evseId`).\nOmitted from the response when the operator does not have a roaming party ID and country code configured.\n"
                },
                "label": {
                  "type": "string",
                  "description": "The EVSE label will be exposed and visualized in the mobile application"
                },
                "currentType": {
                  "type": "string",
                  "enum": [
                    "ac",
                    "dc"
                  ],
                  "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
                },
                "networkId": {
                  "type": "string",
                  "description": "The OCPP evse identifier (should be consecutive numbers starting from 1)"
                },
                "status": {
                  "type": "string",
                  "description": "For roaming EVSEs the status can only be updated if the option for manual management of EVSEs is enabled for the roaming CPO.",
                  "enum": [
                    "enabled",
                    "disabled",
                    "out of order"
                  ]
                },
                "midMeterCertificationEndYear": {
                  "type": "integer",
                  "description": "The mid meter certification end year."
                },
                "tariffGroupId": {
                  "type": "integer",
                  "description": "The ID of the tariff group attached to the EVSE. If the EVSE is not roaming and tariffGroupId is not specified, the default (free) tariff will be assigned. For roaming EVSEs the Tariff Group can only be updated if the option for manual management of EVSEs is enabled for the roaming CPO."
                },
                "allowsReservation": {
                  "type": "boolean",
                  "description": "Manages whether reservations are allowed on this EVSE. Requires the Reservations to be activated for the system in order to enable for the EVSE."
                },
                "bookingEnabled": {
                  "type": "boolean",
                  "description": "Indicates if the EVSE can be booked."
                },
                "monitoringEnabled": {
                  "type": "boolean",
                  "description": "When disabled, this EVSE will not be listed or counted in the Faults & connectivity loss widget or lens. The charge point will still appear for charge point-level faults (network loss, hardware faulted). Defaults to true."
                },
                "powerOptions": {
                  "type": "object",
                  "properties": {
                    "maxOutputVoltage": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 1000,
                      "description": "Maximum output voltage for DC charging.\n"
                    },
                    "maxPower": {
                      "type": "integer",
                      "description": "Maximum power of the EVSE in W (Watts).",
                      "nullable": true
                    },
                    "maxVoltage": {
                      "type": "string",
                      "nullable": true,
                      "description": "The maximum intake (input) voltage of the EVSE. For the ac current type the output voltage is the same as this intake voltage, while for the dc current type the output voltage can differ and is exposed separately in maxOutputVoltage. The maxVoltage of a charge point can fluctuate. Hence, when creating a charge point in the system, the maxVoltage is given as a range. For OCPI purposes it maps as follows: 220-240 = 230 110-130 = 120 400 = 400 380 = 380\n",
                      "enum": [
                        "230",
                        "380",
                        "400",
                        "480",
                        "120",
                        "208",
                        "240",
                        "110-130",
                        "220-240",
                        "277"
                      ]
                    },
                    "maxAmperage": {
                      "type": "number",
                      "nullable": true
                    },
                    "phases": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "single_phase",
                        "three_phase",
                        "split_phase"
                      ]
                    },
                    "phaseRotation": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "RST",
                        "RTS",
                        "SRT",
                        "STR",
                        "TRS",
                        "TSR"
                      ],
                      "description": "`R` stands for `L1`, </br>\n`S` - for `L2` </br>\n`T` - for `L3` </br>\nSo for example `RST` = `L1`, `L2`, `L3`, while `RTS` = `L1`, `L3`, `L2`, etc. </br>\nWe are deriving the connected phase from this property for single phase if connectedPhase is not provided. Please don't rely on this property anymore as this functionality will be turned of in near future. Pass the correct connectedPhase instead. If you pass both properties (connectedPhase and phaseRotation) only connectedPhase will be taken into consideration for determining the phase.\n"
                    },
                    "connectedPhase": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "L1",
                        "L2",
                        "L3",
                        "L1_L2",
                        "L1_L3",
                        "L2_L3"
                      ],
                      "description": "Specifies the active line conductors used in the circuit.\n- `L1_L2` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L2_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L2` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L3` - Valid when `phases` = `single_phase` in electrical configuration `star`\n"
                    }
                  }
                },
                "externalId": {
                  "type": "string"
                },
                "capabilityOverrides": {
                  "type": "object",
                  "description": "Manual overrides for individual EVSE capabilities. Each property controls whether the capability is auto-detected, force enabled, or force disabled. Returned only when at least one capability override is set on the EVSE. Within the object, only capabilities with an active override are present; unset capabilities are omitted (treated as auto).",
                  "properties": {
                    "rfidReader": {
                      "type": "string",
                      "enum": [
                        "auto",
                        "force_enable",
                        "force_disable"
                      ],
                      "description": "Override value for an EVSE capability:\n- **auto**: Use automated detection logic (default)\n- **force_enable**: Always include this capability\n- **force_disable**: Never include this capability\n"
                    },
                    "creditCardPayable": {
                      "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "contactlessCardSupport": {
                      "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "debitCardPayable": {
                      "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "chipCardSupport": {
                      "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "pedTerminal": {
                      "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "remoteStartStop": {
                      "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "unlockCapable": {
                      "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "reservable": {
                      "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "chargingProfileCapable": {
                      "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "chargingPreferencesCapable": {
                      "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "startSessionConnectorRequired": {
                      "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "tokenGroupCapable": {
                      "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                    }
                  }
                },
                "roamingOperatorId": {
                  "description": "For roaming EVSE's, the ID of the roaming operator is provided.",
                  "type": "integer"
                },
                "roaming": {
                  "type": "object",
                  "properties": {
                    "evseId": {
                      "type": "string",
                      "description": "The EVSE identifier that is received through roaming. For example \"DE*ABC*E1234\".",
                      "nullable": true
                    },
                    "tariffIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "The tariff IDs that we receive from roaming (as specified by the CPO)."
                    },
                    "capabilities": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "The evse capabilities defined by the CPO."
                    },
                    "physicalReference": {
                      "type": "string",
                      "nullable": true,
                      "description": "A number/string printed on the outside of the EVSE for visual."
                    },
                    "status": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "available",
                        "blocked",
                        "charging",
                        "inoperative",
                        "outoforder",
                        "planned",
                        "removed",
                        "reserved",
                        "unknown"
                      ],
                      "description": "* `available` - The EVSE/Connector is able to start a new charging session. * `blocked` - The EVSE/Connector is not accessible because of a physical barrier, i.e. a car. * `charging` - The EVSE/Connector is in use. * `inoperative` - The EVSE/Connector is not yet active or it is no longer available (deleted). * `outoforder` - The EVSE/Connector is currently out of order. * `planned` - The EVSE/Connector is planned, will be operating soon. * `removed` - The EVSE/Connector/charge point is discontinued/removed. * `reserved` - The EVSE/Connector is reserved for a particular EV driver and is unavailable for other drivers. * `unknown` -  No status information available. (Also used when offline)\n"
                    }
                  },
                  "required": [
                    "evseId",
                    "tariffIds",
                    "capabilities",
                    "physicalReference",
                    "status"
                  ]
                },
                "hardwareStatus": {
                  "type": "string",
                  "enum": [
                    "available",
                    "preparing",
                    "charging",
                    "suspendedEV",
                    "suspendedEVSE",
                    "finishing",
                    "reserved",
                    "unavailable",
                    "faulted",
                    "occupied"
                  ],
                  "nullable": true,
                  "description": "Status reported by the charge point's evse:\n\n`available` - When a connector becomes available for a new user (Operative)\n\n`preparing` - When a connector becomes no longer available for a new user but there is no ongoing transaction (yet). Typically a connector is in preparing state when a user presents a tag, inserts a cable or a vehicle occupies the parking bay (Operative)\n\n`charging` - When the contactor of a connector closes, allowing the vehicle to charge (operative)\n\n`suspendedEVSE` - When the vehicle is connected to the evse but the evse is not offering energy to the EV, e.g. due to a smart charging restriction, local supply power constraints. (operative)\n\n`suspendedEV` - When the vehicle is connected to the evse and the evse is offering energy but the vehicle is not taking any energy. For example the driver has unlocked the car, and the car has paused charging. (operative)\n\n`finishing` - When a transaction has stopped at a connector, but the connector is not yet available for a new user, e.g. the cable has not been removed or the vehicle has not left the parking bay (operative)\n\n`reserved` - When a evse becomes reserved as a result of a *reserve now* command (operative)\n\n`unavailable` - When a evse becomes unavailable as the result of a *change availability* command or an event upon which the charge point transitions to unavailable at its discretion. Upon receipt of a change availability command, the status MAY change immediately or the change MAY be scheduled. When scheduled, the status notification shall be sent when the availability change becomes effective (inoperative)\n\n`faulted` - When a charge point or connector has reported an error and is not available for energy delivery (inoperative).\n\n`occupied` - If OCPP 2.0.1 is used, the EVSE hardware status is occupied when in session.\n\nWhen hardware status is null, that means that the charge point has not connected yet or has not reported a hardware status for this evse in the past.\n"
                },
                "lastHardwareStatusUpdateAt": {
                  "description": "ISO 8601 formatted date",
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                },
                "chargingProfile": {
                  "type": "object",
                  "nullable": true,
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "minChargingRate": {
                      "type": "number",
                      "nullable": true
                    },
                    "schedulePeriods": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "startPeriod": {
                            "type": "integer"
                          },
                          "limit": {
                            "type": "number",
                            "description": "A number with not more than one decimal (decimal places <= 1)"
                          },
                          "numberPhases": {
                            "type": "integer"
                          }
                        },
                        "required": [
                          "startPeriod",
                          "limit"
                        ]
                      }
                    },
                    "scheduleStart": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true
                    },
                    "chargingRateUnit": {
                      "type": "string",
                      "enum": [
                        "A",
                        "W"
                      ]
                    },
                    "stackLevel": {
                      "type": "integer"
                    },
                    "chargingProfileKind": {
                      "type": "string",
                      "enum": [
                        "Absolute",
                        "Recurring",
                        "Relative"
                      ]
                    },
                    "recurrencyKind": {
                      "type": "string",
                      "enum": [
                        "Daily",
                        "Weekly"
                      ],
                      "nullable": true
                    },
                    "chargingCompleteAt": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true
                    },
                    "purpose": {
                      "type": "string",
                      "enum": [
                        "ChargePointMaxProfile",
                        "TxDefaultProfile",
                        "TxProfile"
                      ]
                    },
                    "validTo": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true
                    },
                    "validFrom": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true
                    },
                    "duration": {
                      "type": "integer",
                      "nullable": true
                    }
                  },
                  "required": [
                    "id",
                    "minChargingRate",
                    "schedulePeriods",
                    "scheduleStart",
                    "chargingRateUnit",
                    "stackLevel",
                    "chargingProfileKind",
                    "recurrencyKind",
                    "chargingCompleteAt",
                    "purpose",
                    "validTo",
                    "validFrom",
                    "duration"
                  ]
                },
                "connectors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "readOnly": true
                      },
                      "networkId": {
                        "type": "string",
                        "readOnly": true,
                        "description": "The OCPP connector identifier within the EVSE."
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "type1",
                          "type2",
                          "type3",
                          "chademo",
                          "ccs1",
                          "ccs2",
                          "schuko",
                          "nacs",
                          "cee16",
                          "cee32",
                          "j1772",
                          "inductive",
                          "nema-5-20",
                          "type-e-french",
                          "type-g-british",
                          "type-j-swiss",
                          "avcon",
                          "gb-t-ac",
                          "gb-t-dc",
                          "chaoji",
                          "nema-6-30",
                          "nema-6-50",
                          "mcs",
                          "unknown"
                        ],
                        "description": "Type of connector available on the EVSE:\n- **type1**: Type 1 connector (SAE J1772 AC)\n- **type2**: Type 2 connector (IEC 62196-2 AC)\n- **type3**: Type 3 connector (IEC 62196-2 AC)\n- **chademo**: CHAdeMO DC fast charging\n- **ccs1**: Combined Charging System 1 (CCS1/Combo 1)\n- **ccs2**: Combined Charging System 2 (CCS2/Combo 2)\n- **schuko**: Standard European household socket\n- **nacs**: North American Charging Standard (Tesla)\n- **cee16**: CEE 16A industrial connector\n- **cee32**: CEE 32A industrial connector\n- **j1772**: SAE J1772 connector\n- **inductive**: Inductive/wireless charging\n- **nema-5-20**: Domestic M NEMA 5-20 Socket\n- **type-e-french**: French Type E socket\n- **type-g-british**: British Type G socket\n- **type-j-swiss**: Swiss Type J socket\n- **avcon**: AVCON connector (Australian standard)\n- **gb-t-ac**: GB/T AC connector (Chinese standard)\n- **gb-t-dc**: GB/T DC connector (Chinese standard)\n- **chaoji**: ChaoJi (CHAdeMO 3.0)\n- **nema-6-30**: NEMA 6-30\n- **nema-6-50**: NEMA 6-50\n- **mcs**: Megawatt Charging System (MCS)\n- **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows.\n"
                      },
                      "format": {
                        "type": "string",
                        "enum": [
                          "socket",
                          "cable"
                        ]
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "enabled",
                          "disabled"
                        ]
                      },
                      "ocpiMaxVoltage": {
                        "type": "integer",
                        "description": "Maximum voltage of the connector in volts, as received from a roaming partner via OCPI. Only present for roaming connectors."
                      },
                      "ocpiMaxAmperage": {
                        "type": "integer",
                        "description": "Maximum amperage of the connector in amps, as received from a roaming partner via OCPI. Only present for roaming connectors."
                      },
                      "ocpiMaxElectricPower": {
                        "type": "integer",
                        "description": "Maximum electric power of the connector in watts, as received from a roaming partner via OCPI. Only present for roaming connectors."
                      },
                      "externalId": {
                        "description": "An optional external identifier for integration purposes",
                        "type": "string",
                        "maxLength": 255
                      }
                    },
                    "required": [
                      "id",
                      "networkId",
                      "type"
                    ]
                  }
                },
                "externalAppData": {
                  "description": "Used to hold any external application data related to the EVSE.",
                  "type": "object",
                  "nullable": true,
                  "additionalProperties": true
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "operatorId",
                "physicalReference",
                "currentType",
                "networkId",
                "status",
                "hardwareStatus",
                "roamingOperatorId",
                "createdAt",
                "lastUpdatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointEvseCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the operator this resource belongs to. Null for roaming EVSEs.",
                "example": 1
              },
              "physicalReference": {
                "type": "string",
                "description": "The identifier that is presented to the users, so they can identify the EVSE at the location."
              },
              "emi3Id": {
                "type": "string",
                "readOnly": true,
                "example": "BE*FOO*E1234",
                "description": "The full EVSE identifier in EMI3 format (e.g., `BE*FOO*E1234`).\nFor local EVSEs, this is constructed as `{CountryCode}*{PartyId}*E{PhysicalReference}`,\nwhere `CountryCode` and `PartyId` come from the operator's roaming configuration\nand `PhysicalReference` is the EVSE's PhysicalReference.\nFor roaming EVSEs, this is the identifier as received from the roaming CPO (same value as `roaming.evseId`).\nOmitted from the response when the operator does not have a roaming party ID and country code configured.\n"
              },
              "label": {
                "type": "string",
                "description": "The EVSE label will be exposed and visualized in the mobile application"
              },
              "currentType": {
                "type": "string",
                "enum": [
                  "ac",
                  "dc"
                ],
                "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
              },
              "networkId": {
                "type": "string",
                "description": "The OCPP evse identifier (should be consecutive numbers starting from 1)"
              },
              "status": {
                "type": "string",
                "description": "For roaming EVSEs the status can only be updated if the option for manual management of EVSEs is enabled for the roaming CPO.",
                "enum": [
                  "enabled",
                  "disabled",
                  "out of order"
                ]
              },
              "midMeterCertificationEndYear": {
                "type": "integer",
                "description": "The mid meter certification end year."
              },
              "tariffGroupId": {
                "type": "integer",
                "description": "The ID of the tariff group attached to the EVSE. If the EVSE is not roaming and tariffGroupId is not specified, the default (free) tariff will be assigned. For roaming EVSEs the Tariff Group can only be updated if the option for manual management of EVSEs is enabled for the roaming CPO."
              },
              "allowsReservation": {
                "type": "boolean",
                "description": "Manages whether reservations are allowed on this EVSE. Requires the Reservations to be activated for the system in order to enable for the EVSE."
              },
              "bookingEnabled": {
                "type": "boolean",
                "description": "Indicates if the EVSE can be booked."
              },
              "monitoringEnabled": {
                "type": "boolean",
                "description": "When disabled, this EVSE will not be listed or counted in the Faults & connectivity loss widget or lens. The charge point will still appear for charge point-level faults (network loss, hardware faulted). Defaults to true."
              },
              "powerOptions": {
                "type": "object",
                "properties": {
                  "maxOutputVoltage": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000,
                    "description": "Maximum output voltage for DC charging.\n"
                  },
                  "maxPower": {
                    "type": "integer",
                    "description": "Maximum power of the EVSE in W (Watts).",
                    "nullable": true
                  },
                  "maxVoltage": {
                    "type": "string",
                    "nullable": true,
                    "description": "The maximum intake (input) voltage of the EVSE. For the ac current type the output voltage is the same as this intake voltage, while for the dc current type the output voltage can differ and is exposed separately in maxOutputVoltage. The maxVoltage of a charge point can fluctuate. Hence, when creating a charge point in the system, the maxVoltage is given as a range. For OCPI purposes it maps as follows: 220-240 = 230 110-130 = 120 400 = 400 380 = 380\n",
                    "enum": [
                      "230",
                      "380",
                      "400",
                      "480",
                      "120",
                      "208",
                      "240",
                      "110-130",
                      "220-240",
                      "277"
                    ]
                  },
                  "maxAmperage": {
                    "type": "number",
                    "nullable": true
                  },
                  "phases": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "single_phase",
                      "three_phase",
                      "split_phase"
                    ]
                  },
                  "phaseRotation": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "RST",
                      "RTS",
                      "SRT",
                      "STR",
                      "TRS",
                      "TSR"
                    ],
                    "description": "`R` stands for `L1`, </br>\n`S` - for `L2` </br>\n`T` - for `L3` </br>\nSo for example `RST` = `L1`, `L2`, `L3`, while `RTS` = `L1`, `L3`, `L2`, etc. </br>\nWe are deriving the connected phase from this property for single phase if connectedPhase is not provided. Please don't rely on this property anymore as this functionality will be turned of in near future. Pass the correct connectedPhase instead. If you pass both properties (connectedPhase and phaseRotation) only connectedPhase will be taken into consideration for determining the phase.\n"
                  },
                  "connectedPhase": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "L1",
                      "L2",
                      "L3",
                      "L1_L2",
                      "L1_L3",
                      "L2_L3"
                    ],
                    "description": "Specifies the active line conductors used in the circuit.\n- `L1_L2` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L2_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L2` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L3` - Valid when `phases` = `single_phase` in electrical configuration `star`\n"
                  }
                }
              },
              "externalId": {
                "type": "string"
              },
              "capabilityOverrides": {
                "type": "object",
                "description": "Manual overrides for individual EVSE capabilities. Each property controls whether the capability is auto-detected, force enabled, or force disabled. Returned only when at least one capability override is set on the EVSE. Within the object, only capabilities with an active override are present; unset capabilities are omitted (treated as auto).",
                "properties": {
                  "rfidReader": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "force_enable",
                      "force_disable"
                    ],
                    "description": "Override value for an EVSE capability:\n- **auto**: Use automated detection logic (default)\n- **force_enable**: Always include this capability\n- **force_disable**: Never include this capability\n"
                  },
                  "creditCardPayable": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "force_enable",
                      "force_disable"
                    ],
                    "description": "Override value for an EVSE capability:\n- **auto**: Use automated detection logic (default)\n- **force_enable**: Always include this capability\n- **force_disable**: Never include this capability\n"
                  },
                  "contactlessCardSupport": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "force_enable",
                      "force_disable"
                    ],
                    "description": "Override value for an EVSE capability:\n- **auto**: Use automated detection logic (default)\n- **force_enable**: Always include this capability\n- **force_disable**: Never include this capability\n"
                  },
                  "debitCardPayable": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "force_enable",
                      "force_disable"
                    ],
                    "description": "Override value for an EVSE capability:\n- **auto**: Use automated detection logic (default)\n- **force_enable**: Always include this capability\n- **force_disable**: Never include this capability\n"
                  },
                  "chipCardSupport": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "force_enable",
                      "force_disable"
                    ],
                    "description": "Override value for an EVSE capability:\n- **auto**: Use automated detection logic (default)\n- **force_enable**: Always include this capability\n- **force_disable**: Never include this capability\n"
                  },
                  "pedTerminal": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "force_enable",
                      "force_disable"
                    ],
                    "description": "Override value for an EVSE capability:\n- **auto**: Use automated detection logic (default)\n- **force_enable**: Always include this capability\n- **force_disable**: Never include this capability\n"
                  },
                  "remoteStartStop": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "force_enable",
                      "force_disable"
                    ],
                    "description": "Override value for an EVSE capability:\n- **auto**: Use automated detection logic (default)\n- **force_enable**: Always include this capability\n- **force_disable**: Never include this capability\n"
                  },
                  "unlockCapable": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "force_enable",
                      "force_disable"
                    ],
                    "description": "Override value for an EVSE capability:\n- **auto**: Use automated detection logic (default)\n- **force_enable**: Always include this capability\n- **force_disable**: Never include this capability\n"
                  },
                  "reservable": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "force_enable",
                      "force_disable"
                    ],
                    "description": "Override value for an EVSE capability:\n- **auto**: Use automated detection logic (default)\n- **force_enable**: Always include this capability\n- **force_disable**: Never include this capability\n"
                  },
                  "chargingProfileCapable": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "force_enable",
                      "force_disable"
                    ],
                    "description": "Override value for an EVSE capability:\n- **auto**: Use automated detection logic (default)\n- **force_enable**: Always include this capability\n- **force_disable**: Never include this capability\n"
                  },
                  "chargingPreferencesCapable": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "force_enable",
                      "force_disable"
                    ],
                    "description": "Override value for an EVSE capability:\n- **auto**: Use automated detection logic (default)\n- **force_enable**: Always include this capability\n- **force_disable**: Never include this capability\n"
                  },
                  "startSessionConnectorRequired": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "force_enable",
                      "force_disable"
                    ],
                    "description": "Override value for an EVSE capability:\n- **auto**: Use automated detection logic (default)\n- **force_enable**: Always include this capability\n- **force_disable**: Never include this capability\n"
                  },
                  "tokenGroupCapable": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "force_enable",
                      "force_disable"
                    ],
                    "description": "Override value for an EVSE capability:\n- **auto**: Use automated detection logic (default)\n- **force_enable**: Always include this capability\n- **force_disable**: Never include this capability\n"
                  }
                }
              },
              "roamingOperatorId": {
                "description": "For roaming EVSE's, the ID of the roaming operator is provided.",
                "type": "integer"
              },
              "roaming": {
                "type": "object",
                "properties": {
                  "evseId": {
                    "type": "string",
                    "description": "The EVSE identifier that is received through roaming. For example \"DE*ABC*E1234\".",
                    "nullable": true
                  },
                  "tariffIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The tariff IDs that we receive from roaming (as specified by the CPO)."
                  },
                  "capabilities": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The evse capabilities defined by the CPO."
                  },
                  "physicalReference": {
                    "type": "string",
                    "nullable": true,
                    "description": "A number/string printed on the outside of the EVSE for visual."
                  },
                  "status": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "available",
                      "blocked",
                      "charging",
                      "inoperative",
                      "outoforder",
                      "planned",
                      "removed",
                      "reserved",
                      "unknown"
                    ],
                    "description": "* `available` - The EVSE/Connector is able to start a new charging session. * `blocked` - The EVSE/Connector is not accessible because of a physical barrier, i.e. a car. * `charging` - The EVSE/Connector is in use. * `inoperative` - The EVSE/Connector is not yet active or it is no longer available (deleted). * `outoforder` - The EVSE/Connector is currently out of order. * `planned` - The EVSE/Connector is planned, will be operating soon. * `removed` - The EVSE/Connector/charge point is discontinued/removed. * `reserved` - The EVSE/Connector is reserved for a particular EV driver and is unavailable for other drivers. * `unknown` -  No status information available. (Also used when offline)\n"
                  }
                },
                "required": [
                  "evseId",
                  "tariffIds",
                  "capabilities",
                  "physicalReference",
                  "status"
                ]
              },
              "hardwareStatus": {
                "type": "string",
                "enum": [
                  "available",
                  "preparing",
                  "charging",
                  "suspendedEV",
                  "suspendedEVSE",
                  "finishing",
                  "reserved",
                  "unavailable",
                  "faulted",
                  "occupied"
                ],
                "nullable": true,
                "description": "Status reported by the charge point's evse:\n\n`available` - When a connector becomes available for a new user (Operative)\n\n`preparing` - When a connector becomes no longer available for a new user but there is no ongoing transaction (yet). Typically a connector is in preparing state when a user presents a tag, inserts a cable or a vehicle occupies the parking bay (Operative)\n\n`charging` - When the contactor of a connector closes, allowing the vehicle to charge (operative)\n\n`suspendedEVSE` - When the vehicle is connected to the evse but the evse is not offering energy to the EV, e.g. due to a smart charging restriction, local supply power constraints. (operative)\n\n`suspendedEV` - When the vehicle is connected to the evse and the evse is offering energy but the vehicle is not taking any energy. For example the driver has unlocked the car, and the car has paused charging. (operative)\n\n`finishing` - When a transaction has stopped at a connector, but the connector is not yet available for a new user, e.g. the cable has not been removed or the vehicle has not left the parking bay (operative)\n\n`reserved` - When a evse becomes reserved as a result of a *reserve now* command (operative)\n\n`unavailable` - When a evse becomes unavailable as the result of a *change availability* command or an event upon which the charge point transitions to unavailable at its discretion. Upon receipt of a change availability command, the status MAY change immediately or the change MAY be scheduled. When scheduled, the status notification shall be sent when the availability change becomes effective (inoperative)\n\n`faulted` - When a charge point or connector has reported an error and is not available for energy delivery (inoperative).\n\n`occupied` - If OCPP 2.0.1 is used, the EVSE hardware status is occupied when in session.\n\nWhen hardware status is null, that means that the charge point has not connected yet or has not reported a hardware status for this evse in the past.\n"
              },
              "lastHardwareStatusUpdateAt": {
                "description": "ISO 8601 formatted date",
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "chargingProfile": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "minChargingRate": {
                    "type": "number",
                    "nullable": true
                  },
                  "schedulePeriods": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "startPeriod": {
                          "type": "integer"
                        },
                        "limit": {
                          "type": "number",
                          "description": "A number with not more than one decimal (decimal places <= 1)"
                        },
                        "numberPhases": {
                          "type": "integer"
                        }
                      },
                      "required": [
                        "startPeriod",
                        "limit"
                      ]
                    }
                  },
                  "scheduleStart": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "chargingRateUnit": {
                    "type": "string",
                    "enum": [
                      "A",
                      "W"
                    ]
                  },
                  "stackLevel": {
                    "type": "integer"
                  },
                  "chargingProfileKind": {
                    "type": "string",
                    "enum": [
                      "Absolute",
                      "Recurring",
                      "Relative"
                    ]
                  },
                  "recurrencyKind": {
                    "type": "string",
                    "enum": [
                      "Daily",
                      "Weekly"
                    ],
                    "nullable": true
                  },
                  "chargingCompleteAt": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "purpose": {
                    "type": "string",
                    "enum": [
                      "ChargePointMaxProfile",
                      "TxDefaultProfile",
                      "TxProfile"
                    ]
                  },
                  "validTo": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "validFrom": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "duration": {
                    "type": "integer",
                    "nullable": true
                  }
                },
                "required": [
                  "id",
                  "minChargingRate",
                  "schedulePeriods",
                  "scheduleStart",
                  "chargingRateUnit",
                  "stackLevel",
                  "chargingProfileKind",
                  "recurrencyKind",
                  "chargingCompleteAt",
                  "purpose",
                  "validTo",
                  "validFrom",
                  "duration"
                ]
              },
              "connectors": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "networkId": {
                      "type": "string",
                      "readOnly": true,
                      "description": "The OCPP connector identifier within the EVSE."
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "type1",
                        "type2",
                        "type3",
                        "chademo",
                        "ccs1",
                        "ccs2",
                        "schuko",
                        "nacs",
                        "cee16",
                        "cee32",
                        "j1772",
                        "inductive",
                        "nema-5-20",
                        "type-e-french",
                        "type-g-british",
                        "type-j-swiss",
                        "avcon",
                        "gb-t-ac",
                        "gb-t-dc",
                        "chaoji",
                        "nema-6-30",
                        "nema-6-50",
                        "mcs",
                        "unknown"
                      ],
                      "description": "Type of connector available on the EVSE:\n- **type1**: Type 1 connector (SAE J1772 AC)\n- **type2**: Type 2 connector (IEC 62196-2 AC)\n- **type3**: Type 3 connector (IEC 62196-2 AC)\n- **chademo**: CHAdeMO DC fast charging\n- **ccs1**: Combined Charging System 1 (CCS1/Combo 1)\n- **ccs2**: Combined Charging System 2 (CCS2/Combo 2)\n- **schuko**: Standard European household socket\n- **nacs**: North American Charging Standard (Tesla)\n- **cee16**: CEE 16A industrial connector\n- **cee32**: CEE 32A industrial connector\n- **j1772**: SAE J1772 connector\n- **inductive**: Inductive/wireless charging\n- **nema-5-20**: Domestic M NEMA 5-20 Socket\n- **type-e-french**: French Type E socket\n- **type-g-british**: British Type G socket\n- **type-j-swiss**: Swiss Type J socket\n- **avcon**: AVCON connector (Australian standard)\n- **gb-t-ac**: GB/T AC connector (Chinese standard)\n- **gb-t-dc**: GB/T DC connector (Chinese standard)\n- **chaoji**: ChaoJi (CHAdeMO 3.0)\n- **nema-6-30**: NEMA 6-30\n- **nema-6-50**: NEMA 6-50\n- **mcs**: Megawatt Charging System (MCS)\n- **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows.\n"
                    },
                    "format": {
                      "type": "string",
                      "enum": [
                        "socket",
                        "cable"
                      ]
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "enabled",
                        "disabled"
                      ]
                    },
                    "ocpiMaxVoltage": {
                      "type": "integer",
                      "description": "Maximum voltage of the connector in volts, as received from a roaming partner via OCPI. Only present for roaming connectors."
                    },
                    "ocpiMaxAmperage": {
                      "type": "integer",
                      "description": "Maximum amperage of the connector in amps, as received from a roaming partner via OCPI. Only present for roaming connectors."
                    },
                    "ocpiMaxElectricPower": {
                      "type": "integer",
                      "description": "Maximum electric power of the connector in watts, as received from a roaming partner via OCPI. Only present for roaming connectors."
                    },
                    "externalId": {
                      "description": "An optional external identifier for integration purposes",
                      "type": "string",
                      "maxLength": 255
                    }
                  },
                  "required": [
                    "id",
                    "networkId",
                    "type"
                  ]
                }
              },
              "externalAppData": {
                "description": "Used to hold any external application data related to the EVSE.",
                "type": "object",
                "nullable": true,
                "additionalProperties": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "physicalReference",
              "currentType",
              "networkId",
              "status",
              "hardwareStatus",
              "roamingOperatorId",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointEvseRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the operator this resource belongs to. Null for roaming EVSEs.",
                "example": 1
              },
              "physicalReference": {
                "type": "string",
                "description": "The identifier that is presented to the users, so they can identify the EVSE at the location."
              },
              "emi3Id": {
                "type": "string",
                "readOnly": true,
                "example": "BE*FOO*E1234",
                "description": "The full EVSE identifier in EMI3 format (e.g., `BE*FOO*E1234`).\nFor local EVSEs, this is constructed as `{CountryCode}*{PartyId}*E{PhysicalReference}`,\nwhere `CountryCode` and `PartyId` come from the operator's roaming configuration\nand `PhysicalReference` is the EVSE's PhysicalReference.\nFor roaming EVSEs, this is the identifier as received from the roaming CPO (same value as `roaming.evseId`).\nOmitted from the response when the operator does not have a roaming party ID and country code configured.\n"
              },
              "label": {
                "type": "string",
                "description": "The EVSE label will be exposed and visualized in the mobile application"
              },
              "currentType": {
                "type": "string",
                "enum": [
                  "ac",
                  "dc"
                ],
                "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
              },
              "networkId": {
                "type": "string",
                "description": "The OCPP evse identifier (should be consecutive numbers starting from 1)"
              },
              "status": {
                "type": "string",
                "description": "For roaming EVSEs the status can only be updated if the option for manual management of EVSEs is enabled for the roaming CPO.",
                "enum": [
                  "enabled",
                  "disabled",
                  "out of order"
                ]
              },
              "midMeterCertificationEndYear": {
                "type": "integer",
                "description": "The mid meter certification end year."
              },
              "tariffGroupId": {
                "type": "integer",
                "description": "The ID of the tariff group attached to the EVSE. If the EVSE is not roaming and tariffGroupId is not specified, the default (free) tariff will be assigned. For roaming EVSEs the Tariff Group can only be updated if the option for manual management of EVSEs is enabled for the roaming CPO."
              },
              "allowsReservation": {
                "type": "boolean",
                "description": "Manages whether reservations are allowed on this EVSE. Requires the Reservations to be activated for the system in order to enable for the EVSE."
              },
              "bookingEnabled": {
                "type": "boolean",
                "description": "Indicates if the EVSE can be booked."
              },
              "monitoringEnabled": {
                "type": "boolean",
                "description": "When disabled, this EVSE will not be listed or counted in the Faults & connectivity loss widget or lens. The charge point will still appear for charge point-level faults (network loss, hardware faulted). Defaults to true."
              },
              "powerOptions": {
                "type": "object",
                "properties": {
                  "maxOutputVoltage": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000,
                    "description": "Maximum output voltage for DC charging.\n"
                  },
                  "maxPower": {
                    "type": "integer",
                    "description": "Maximum power of the EVSE in W (Watts).",
                    "nullable": true
                  },
                  "maxVoltage": {
                    "type": "string",
                    "nullable": true,
                    "description": "The maximum intake (input) voltage of the EVSE. For the ac current type the output voltage is the same as this intake voltage, while for the dc current type the output voltage can differ and is exposed separately in maxOutputVoltage. The maxVoltage of a charge point can fluctuate. Hence, when creating a charge point in the system, the maxVoltage is given as a range. For OCPI purposes it maps as follows: 220-240 = 230 110-130 = 120 400 = 400 380 = 380\n",
                    "enum": [
                      "230",
                      "380",
                      "400",
                      "480",
                      "120",
                      "208",
                      "240",
                      "110-130",
                      "220-240",
                      "277"
                    ]
                  },
                  "maxAmperage": {
                    "type": "number",
                    "nullable": true
                  },
                  "phases": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "single_phase",
                      "three_phase",
                      "split_phase"
                    ]
                  },
                  "phaseRotation": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "RST",
                      "RTS",
                      "SRT",
                      "STR",
                      "TRS",
                      "TSR"
                    ],
                    "description": "`R` stands for `L1`, </br>\n`S` - for `L2` </br>\n`T` - for `L3` </br>\nSo for example `RST` = `L1`, `L2`, `L3`, while `RTS` = `L1`, `L3`, `L2`, etc. </br>\nWe are deriving the connected phase from this property for single phase if connectedPhase is not provided. Please don't rely on this property anymore as this functionality will be turned of in near future. Pass the correct connectedPhase instead. If you pass both properties (connectedPhase and phaseRotation) only connectedPhase will be taken into consideration for determining the phase.\n"
                  },
                  "connectedPhase": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "L1",
                      "L2",
                      "L3",
                      "L1_L2",
                      "L1_L3",
                      "L2_L3"
                    ],
                    "description": "Specifies the active line conductors used in the circuit.\n- `L1_L2` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L2_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L2` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L3` - Valid when `phases` = `single_phase` in electrical configuration `star`\n"
                  }
                }
              },
              "externalId": {
                "type": "string"
              },
              "capabilityOverrides": {
                "type": "object",
                "description": "Manual overrides for individual EVSE capabilities. Each property controls whether the capability is auto-detected, force enabled, or force disabled. Returned only when at least one capability override is set on the EVSE. Within the object, only capabilities with an active override are present; unset capabilities are omitted (treated as auto).",
                "properties": {
                  "rfidReader": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "force_enable",
                      "force_disable"
                    ],
                    "description": "Override value for an EVSE capability:\n- **auto**: Use automated detection logic (default)\n- **force_enable**: Always include this capability\n- **force_disable**: Never include this capability\n"
                  },
                  "creditCardPayable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "contactlessCardSupport": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "debitCardPayable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "chipCardSupport": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "pedTerminal": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "remoteStartStop": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "unlockCapable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "reservable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "chargingProfileCapable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "chargingPreferencesCapable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "startSessionConnectorRequired": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "tokenGroupCapable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  }
                }
              },
              "roamingOperatorId": {
                "description": "For roaming EVSE's, the ID of the roaming operator is provided.",
                "type": "integer"
              },
              "roaming": {
                "type": "object",
                "properties": {
                  "evseId": {
                    "type": "string",
                    "description": "The EVSE identifier that is received through roaming. For example \"DE*ABC*E1234\".",
                    "nullable": true
                  },
                  "tariffIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The tariff IDs that we receive from roaming (as specified by the CPO)."
                  },
                  "capabilities": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The evse capabilities defined by the CPO."
                  },
                  "physicalReference": {
                    "type": "string",
                    "nullable": true,
                    "description": "A number/string printed on the outside of the EVSE for visual."
                  },
                  "status": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "available",
                      "blocked",
                      "charging",
                      "inoperative",
                      "outoforder",
                      "planned",
                      "removed",
                      "reserved",
                      "unknown"
                    ],
                    "description": "* `available` - The EVSE/Connector is able to start a new charging session. * `blocked` - The EVSE/Connector is not accessible because of a physical barrier, i.e. a car. * `charging` - The EVSE/Connector is in use. * `inoperative` - The EVSE/Connector is not yet active or it is no longer available (deleted). * `outoforder` - The EVSE/Connector is currently out of order. * `planned` - The EVSE/Connector is planned, will be operating soon. * `removed` - The EVSE/Connector/charge point is discontinued/removed. * `reserved` - The EVSE/Connector is reserved for a particular EV driver and is unavailable for other drivers. * `unknown` -  No status information available. (Also used when offline)\n"
                  }
                },
                "required": [
                  "evseId",
                  "tariffIds",
                  "capabilities",
                  "physicalReference",
                  "status"
                ]
              },
              "hardwareStatus": {
                "type": "string",
                "enum": [
                  "available",
                  "preparing",
                  "charging",
                  "suspendedEV",
                  "suspendedEVSE",
                  "finishing",
                  "reserved",
                  "unavailable",
                  "faulted",
                  "occupied"
                ],
                "nullable": true,
                "description": "Status reported by the charge point's evse:\n\n`available` - When a connector becomes available for a new user (Operative)\n\n`preparing` - When a connector becomes no longer available for a new user but there is no ongoing transaction (yet). Typically a connector is in preparing state when a user presents a tag, inserts a cable or a vehicle occupies the parking bay (Operative)\n\n`charging` - When the contactor of a connector closes, allowing the vehicle to charge (operative)\n\n`suspendedEVSE` - When the vehicle is connected to the evse but the evse is not offering energy to the EV, e.g. due to a smart charging restriction, local supply power constraints. (operative)\n\n`suspendedEV` - When the vehicle is connected to the evse and the evse is offering energy but the vehicle is not taking any energy. For example the driver has unlocked the car, and the car has paused charging. (operative)\n\n`finishing` - When a transaction has stopped at a connector, but the connector is not yet available for a new user, e.g. the cable has not been removed or the vehicle has not left the parking bay (operative)\n\n`reserved` - When a evse becomes reserved as a result of a *reserve now* command (operative)\n\n`unavailable` - When a evse becomes unavailable as the result of a *change availability* command or an event upon which the charge point transitions to unavailable at its discretion. Upon receipt of a change availability command, the status MAY change immediately or the change MAY be scheduled. When scheduled, the status notification shall be sent when the availability change becomes effective (inoperative)\n\n`faulted` - When a charge point or connector has reported an error and is not available for energy delivery (inoperative).\n\n`occupied` - If OCPP 2.0.1 is used, the EVSE hardware status is occupied when in session.\n\nWhen hardware status is null, that means that the charge point has not connected yet or has not reported a hardware status for this evse in the past.\n"
              },
              "lastHardwareStatusUpdateAt": {
                "description": "ISO 8601 formatted date",
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "chargingProfile": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "minChargingRate": {
                    "type": "number",
                    "nullable": true
                  },
                  "schedulePeriods": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "startPeriod": {
                          "type": "integer"
                        },
                        "limit": {
                          "type": "number",
                          "description": "A number with not more than one decimal (decimal places <= 1)"
                        },
                        "numberPhases": {
                          "type": "integer"
                        }
                      },
                      "required": [
                        "startPeriod",
                        "limit"
                      ]
                    }
                  },
                  "scheduleStart": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "chargingRateUnit": {
                    "type": "string",
                    "enum": [
                      "A",
                      "W"
                    ]
                  },
                  "stackLevel": {
                    "type": "integer"
                  },
                  "chargingProfileKind": {
                    "type": "string",
                    "enum": [
                      "Absolute",
                      "Recurring",
                      "Relative"
                    ]
                  },
                  "recurrencyKind": {
                    "type": "string",
                    "enum": [
                      "Daily",
                      "Weekly"
                    ],
                    "nullable": true
                  },
                  "chargingCompleteAt": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "purpose": {
                    "type": "string",
                    "enum": [
                      "ChargePointMaxProfile",
                      "TxDefaultProfile",
                      "TxProfile"
                    ]
                  },
                  "validTo": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "validFrom": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "duration": {
                    "type": "integer",
                    "nullable": true
                  }
                },
                "required": [
                  "id",
                  "minChargingRate",
                  "schedulePeriods",
                  "scheduleStart",
                  "chargingRateUnit",
                  "stackLevel",
                  "chargingProfileKind",
                  "recurrencyKind",
                  "chargingCompleteAt",
                  "purpose",
                  "validTo",
                  "validFrom",
                  "duration"
                ]
              },
              "connectors": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "networkId": {
                      "type": "string",
                      "readOnly": true,
                      "description": "The OCPP connector identifier within the EVSE."
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "type1",
                        "type2",
                        "type3",
                        "chademo",
                        "ccs1",
                        "ccs2",
                        "schuko",
                        "nacs",
                        "cee16",
                        "cee32",
                        "j1772",
                        "inductive",
                        "nema-5-20",
                        "type-e-french",
                        "type-g-british",
                        "type-j-swiss",
                        "avcon",
                        "gb-t-ac",
                        "gb-t-dc",
                        "chaoji",
                        "nema-6-30",
                        "nema-6-50",
                        "mcs",
                        "unknown"
                      ],
                      "description": "Type of connector available on the EVSE:\n- **type1**: Type 1 connector (SAE J1772 AC)\n- **type2**: Type 2 connector (IEC 62196-2 AC)\n- **type3**: Type 3 connector (IEC 62196-2 AC)\n- **chademo**: CHAdeMO DC fast charging\n- **ccs1**: Combined Charging System 1 (CCS1/Combo 1)\n- **ccs2**: Combined Charging System 2 (CCS2/Combo 2)\n- **schuko**: Standard European household socket\n- **nacs**: North American Charging Standard (Tesla)\n- **cee16**: CEE 16A industrial connector\n- **cee32**: CEE 32A industrial connector\n- **j1772**: SAE J1772 connector\n- **inductive**: Inductive/wireless charging\n- **nema-5-20**: Domestic M NEMA 5-20 Socket\n- **type-e-french**: French Type E socket\n- **type-g-british**: British Type G socket\n- **type-j-swiss**: Swiss Type J socket\n- **avcon**: AVCON connector (Australian standard)\n- **gb-t-ac**: GB/T AC connector (Chinese standard)\n- **gb-t-dc**: GB/T DC connector (Chinese standard)\n- **chaoji**: ChaoJi (CHAdeMO 3.0)\n- **nema-6-30**: NEMA 6-30\n- **nema-6-50**: NEMA 6-50\n- **mcs**: Megawatt Charging System (MCS)\n- **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows.\n"
                    },
                    "format": {
                      "type": "string",
                      "enum": [
                        "socket",
                        "cable"
                      ]
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "enabled",
                        "disabled"
                      ]
                    },
                    "ocpiMaxVoltage": {
                      "type": "integer",
                      "description": "Maximum voltage of the connector in volts, as received from a roaming partner via OCPI. Only present for roaming connectors."
                    },
                    "ocpiMaxAmperage": {
                      "type": "integer",
                      "description": "Maximum amperage of the connector in amps, as received from a roaming partner via OCPI. Only present for roaming connectors."
                    },
                    "ocpiMaxElectricPower": {
                      "type": "integer",
                      "description": "Maximum electric power of the connector in watts, as received from a roaming partner via OCPI. Only present for roaming connectors."
                    },
                    "externalId": {
                      "description": "An optional external identifier for integration purposes",
                      "type": "string",
                      "maxLength": 255
                    }
                  },
                  "required": [
                    "id",
                    "networkId",
                    "type"
                  ]
                }
              },
              "externalAppData": {
                "description": "Used to hold any external application data related to the EVSE.",
                "type": "object",
                "nullable": true,
                "additionalProperties": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "accessibleParkingSpaces": {
                "type": "array",
                "description": "Parking spaces accessible from this EVSE. Only included when include=accessibleParkingSpaces.",
                "items": {
                  "type": "object",
                  "description": "Represents how an EVSE is linked to a parking space, including its physical position and whether it's the primary EVSE for that space.",
                  "properties": {
                    "parkingSpaceId": {
                      "type": "integer",
                      "description": "The ID of the associated parking space."
                    },
                    "evseId": {
                      "type": "integer",
                      "description": "The ID of the associated EVSE."
                    },
                    "position": {
                      "description": "Physical position of the EVSE relative to the parking space:\n- **front**: EVSE at front of parking space\n- **rear**: EVSE at rear of parking space\n- **left**: EVSE on left side of parking space\n- **right**: EVSE on right side of parking space\n- **frontLeft**: EVSE at front-left corner\n- **frontRight**: EVSE at front-right corner\n- **rearLeft**: EVSE at rear-left corner\n- **rearRight**: EVSE at rear-right corner\n",
                      "type": "string",
                      "enum": [
                        "front",
                        "rear",
                        "left",
                        "right",
                        "frontLeft",
                        "frontRight",
                        "rearLeft",
                        "rearRight"
                      ]
                    },
                    "isPrimary": {
                      "type": "boolean",
                      "description": "Indicates if this is the primary EVSE for the parking space. Only one EVSE can be marked as primary per parking space."
                    }
                  },
                  "required": [
                    "parkingSpaceId",
                    "evseId",
                    "position",
                    "isPrimary"
                  ]
                }
              }
            },
            "required": [
              "id",
              "operatorId",
              "physicalReference",
              "currentType",
              "networkId",
              "status",
              "hardwareStatus",
              "roamingOperatorId",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointEvseDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointEvseUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the operator this resource belongs to. Null for roaming EVSEs.",
                "example": 1
              },
              "physicalReference": {
                "type": "string",
                "description": "The identifier that is presented to the users, so they can identify the EVSE at the location."
              },
              "emi3Id": {
                "type": "string",
                "readOnly": true,
                "example": "BE*FOO*E1234",
                "description": "The full EVSE identifier in EMI3 format (e.g., `BE*FOO*E1234`).\nFor local EVSEs, this is constructed as `{CountryCode}*{PartyId}*E{PhysicalReference}`,\nwhere `CountryCode` and `PartyId` come from the operator's roaming configuration\nand `PhysicalReference` is the EVSE's PhysicalReference.\nFor roaming EVSEs, this is the identifier as received from the roaming CPO (same value as `roaming.evseId`).\nOmitted from the response when the operator does not have a roaming party ID and country code configured.\n"
              },
              "label": {
                "type": "string",
                "description": "The EVSE label will be exposed and visualized in the mobile application"
              },
              "currentType": {
                "type": "string",
                "enum": [
                  "ac",
                  "dc"
                ],
                "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
              },
              "networkId": {
                "type": "string",
                "description": "The OCPP evse identifier (should be consecutive numbers starting from 1)"
              },
              "status": {
                "type": "string",
                "description": "For roaming EVSEs the status can only be updated if the option for manual management of EVSEs is enabled for the roaming CPO.",
                "enum": [
                  "enabled",
                  "disabled",
                  "out of order"
                ]
              },
              "midMeterCertificationEndYear": {
                "type": "integer",
                "description": "The mid meter certification end year."
              },
              "tariffGroupId": {
                "type": "integer",
                "description": "The ID of the tariff group attached to the EVSE. If the EVSE is not roaming and tariffGroupId is not specified, the default (free) tariff will be assigned. For roaming EVSEs the Tariff Group can only be updated if the option for manual management of EVSEs is enabled for the roaming CPO."
              },
              "allowsReservation": {
                "type": "boolean",
                "description": "Manages whether reservations are allowed on this EVSE. Requires the Reservations to be activated for the system in order to enable for the EVSE."
              },
              "bookingEnabled": {
                "type": "boolean",
                "description": "Indicates if the EVSE can be booked."
              },
              "monitoringEnabled": {
                "type": "boolean",
                "description": "When disabled, this EVSE will not be listed or counted in the Faults & connectivity loss widget or lens. The charge point will still appear for charge point-level faults (network loss, hardware faulted). Defaults to true."
              },
              "powerOptions": {
                "type": "object",
                "properties": {
                  "maxOutputVoltage": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000,
                    "description": "Maximum output voltage for DC charging.\n"
                  },
                  "maxPower": {
                    "type": "integer",
                    "description": "Maximum power of the EVSE in W (Watts).",
                    "nullable": true
                  },
                  "maxVoltage": {
                    "type": "string",
                    "nullable": true,
                    "description": "The maximum intake (input) voltage of the EVSE. For the ac current type the output voltage is the same as this intake voltage, while for the dc current type the output voltage can differ and is exposed separately in maxOutputVoltage. The maxVoltage of a charge point can fluctuate. Hence, when creating a charge point in the system, the maxVoltage is given as a range. For OCPI purposes it maps as follows: 220-240 = 230 110-130 = 120 400 = 400 380 = 380\n",
                    "enum": [
                      "230",
                      "380",
                      "400",
                      "480",
                      "120",
                      "208",
                      "240",
                      "110-130",
                      "220-240",
                      "277"
                    ]
                  },
                  "maxAmperage": {
                    "type": "number",
                    "nullable": true
                  },
                  "phases": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "single_phase",
                      "three_phase",
                      "split_phase"
                    ]
                  },
                  "phaseRotation": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "RST",
                      "RTS",
                      "SRT",
                      "STR",
                      "TRS",
                      "TSR"
                    ],
                    "description": "`R` stands for `L1`, </br>\n`S` - for `L2` </br>\n`T` - for `L3` </br>\nSo for example `RST` = `L1`, `L2`, `L3`, while `RTS` = `L1`, `L3`, `L2`, etc. </br>\nWe are deriving the connected phase from this property for single phase if connectedPhase is not provided. Please don't rely on this property anymore as this functionality will be turned of in near future. Pass the correct connectedPhase instead. If you pass both properties (connectedPhase and phaseRotation) only connectedPhase will be taken into consideration for determining the phase.\n"
                  },
                  "connectedPhase": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "L1",
                      "L2",
                      "L3",
                      "L1_L2",
                      "L1_L3",
                      "L2_L3"
                    ],
                    "description": "Specifies the active line conductors used in the circuit.\n- `L1_L2` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L2_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L2` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L3` - Valid when `phases` = `single_phase` in electrical configuration `star`\n"
                  }
                }
              },
              "externalId": {
                "type": "string"
              },
              "capabilityOverrides": {
                "type": "object",
                "description": "Manual overrides for individual EVSE capabilities. Each property controls whether the capability is auto-detected, force enabled, or force disabled. Returned only when at least one capability override is set on the EVSE. Within the object, only capabilities with an active override are present; unset capabilities are omitted (treated as auto).",
                "properties": {
                  "rfidReader": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "force_enable",
                      "force_disable"
                    ],
                    "description": "Override value for an EVSE capability:\n- **auto**: Use automated detection logic (default)\n- **force_enable**: Always include this capability\n- **force_disable**: Never include this capability\n"
                  },
                  "creditCardPayable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "contactlessCardSupport": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "debitCardPayable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "chipCardSupport": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "pedTerminal": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "remoteStartStop": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "unlockCapable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "reservable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "chargingProfileCapable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "chargingPreferencesCapable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "startSessionConnectorRequired": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "tokenGroupCapable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  }
                }
              },
              "roamingOperatorId": {
                "description": "For roaming EVSE's, the ID of the roaming operator is provided.",
                "type": "integer"
              },
              "roaming": {
                "type": "object",
                "properties": {
                  "evseId": {
                    "type": "string",
                    "description": "The EVSE identifier that is received through roaming. For example \"DE*ABC*E1234\".",
                    "nullable": true
                  },
                  "tariffIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The tariff IDs that we receive from roaming (as specified by the CPO)."
                  },
                  "capabilities": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The evse capabilities defined by the CPO."
                  },
                  "physicalReference": {
                    "type": "string",
                    "nullable": true,
                    "description": "A number/string printed on the outside of the EVSE for visual."
                  },
                  "status": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "available",
                      "blocked",
                      "charging",
                      "inoperative",
                      "outoforder",
                      "planned",
                      "removed",
                      "reserved",
                      "unknown"
                    ],
                    "description": "* `available` - The EVSE/Connector is able to start a new charging session. * `blocked` - The EVSE/Connector is not accessible because of a physical barrier, i.e. a car. * `charging` - The EVSE/Connector is in use. * `inoperative` - The EVSE/Connector is not yet active or it is no longer available (deleted). * `outoforder` - The EVSE/Connector is currently out of order. * `planned` - The EVSE/Connector is planned, will be operating soon. * `removed` - The EVSE/Connector/charge point is discontinued/removed. * `reserved` - The EVSE/Connector is reserved for a particular EV driver and is unavailable for other drivers. * `unknown` -  No status information available. (Also used when offline)\n"
                  }
                },
                "required": [
                  "evseId",
                  "tariffIds",
                  "capabilities",
                  "physicalReference",
                  "status"
                ]
              },
              "hardwareStatus": {
                "type": "string",
                "enum": [
                  "available",
                  "preparing",
                  "charging",
                  "suspendedEV",
                  "suspendedEVSE",
                  "finishing",
                  "reserved",
                  "unavailable",
                  "faulted",
                  "occupied"
                ],
                "nullable": true,
                "description": "Status reported by the charge point's evse:\n\n`available` - When a connector becomes available for a new user (Operative)\n\n`preparing` - When a connector becomes no longer available for a new user but there is no ongoing transaction (yet). Typically a connector is in preparing state when a user presents a tag, inserts a cable or a vehicle occupies the parking bay (Operative)\n\n`charging` - When the contactor of a connector closes, allowing the vehicle to charge (operative)\n\n`suspendedEVSE` - When the vehicle is connected to the evse but the evse is not offering energy to the EV, e.g. due to a smart charging restriction, local supply power constraints. (operative)\n\n`suspendedEV` - When the vehicle is connected to the evse and the evse is offering energy but the vehicle is not taking any energy. For example the driver has unlocked the car, and the car has paused charging. (operative)\n\n`finishing` - When a transaction has stopped at a connector, but the connector is not yet available for a new user, e.g. the cable has not been removed or the vehicle has not left the parking bay (operative)\n\n`reserved` - When a evse becomes reserved as a result of a *reserve now* command (operative)\n\n`unavailable` - When a evse becomes unavailable as the result of a *change availability* command or an event upon which the charge point transitions to unavailable at its discretion. Upon receipt of a change availability command, the status MAY change immediately or the change MAY be scheduled. When scheduled, the status notification shall be sent when the availability change becomes effective (inoperative)\n\n`faulted` - When a charge point or connector has reported an error and is not available for energy delivery (inoperative).\n\n`occupied` - If OCPP 2.0.1 is used, the EVSE hardware status is occupied when in session.\n\nWhen hardware status is null, that means that the charge point has not connected yet or has not reported a hardware status for this evse in the past.\n"
              },
              "lastHardwareStatusUpdateAt": {
                "description": "ISO 8601 formatted date",
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "chargingProfile": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "minChargingRate": {
                    "type": "number",
                    "nullable": true
                  },
                  "schedulePeriods": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "startPeriod": {
                          "type": "integer"
                        },
                        "limit": {
                          "type": "number",
                          "description": "A number with not more than one decimal (decimal places <= 1)"
                        },
                        "numberPhases": {
                          "type": "integer"
                        }
                      },
                      "required": [
                        "startPeriod",
                        "limit"
                      ]
                    }
                  },
                  "scheduleStart": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "chargingRateUnit": {
                    "type": "string",
                    "enum": [
                      "A",
                      "W"
                    ]
                  },
                  "stackLevel": {
                    "type": "integer"
                  },
                  "chargingProfileKind": {
                    "type": "string",
                    "enum": [
                      "Absolute",
                      "Recurring",
                      "Relative"
                    ]
                  },
                  "recurrencyKind": {
                    "type": "string",
                    "enum": [
                      "Daily",
                      "Weekly"
                    ],
                    "nullable": true
                  },
                  "chargingCompleteAt": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "purpose": {
                    "type": "string",
                    "enum": [
                      "ChargePointMaxProfile",
                      "TxDefaultProfile",
                      "TxProfile"
                    ]
                  },
                  "validTo": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "validFrom": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "duration": {
                    "type": "integer",
                    "nullable": true
                  }
                },
                "required": [
                  "id",
                  "minChargingRate",
                  "schedulePeriods",
                  "scheduleStart",
                  "chargingRateUnit",
                  "stackLevel",
                  "chargingProfileKind",
                  "recurrencyKind",
                  "chargingCompleteAt",
                  "purpose",
                  "validTo",
                  "validFrom",
                  "duration"
                ]
              },
              "connectors": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "networkId": {
                      "type": "string",
                      "readOnly": true,
                      "description": "The OCPP connector identifier within the EVSE."
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "type1",
                        "type2",
                        "type3",
                        "chademo",
                        "ccs1",
                        "ccs2",
                        "schuko",
                        "nacs",
                        "cee16",
                        "cee32",
                        "j1772",
                        "inductive",
                        "nema-5-20",
                        "type-e-french",
                        "type-g-british",
                        "type-j-swiss",
                        "avcon",
                        "gb-t-ac",
                        "gb-t-dc",
                        "chaoji",
                        "nema-6-30",
                        "nema-6-50",
                        "mcs",
                        "unknown"
                      ],
                      "description": "Type of connector available on the EVSE:\n- **type1**: Type 1 connector (SAE J1772 AC)\n- **type2**: Type 2 connector (IEC 62196-2 AC)\n- **type3**: Type 3 connector (IEC 62196-2 AC)\n- **chademo**: CHAdeMO DC fast charging\n- **ccs1**: Combined Charging System 1 (CCS1/Combo 1)\n- **ccs2**: Combined Charging System 2 (CCS2/Combo 2)\n- **schuko**: Standard European household socket\n- **nacs**: North American Charging Standard (Tesla)\n- **cee16**: CEE 16A industrial connector\n- **cee32**: CEE 32A industrial connector\n- **j1772**: SAE J1772 connector\n- **inductive**: Inductive/wireless charging\n- **nema-5-20**: Domestic M NEMA 5-20 Socket\n- **type-e-french**: French Type E socket\n- **type-g-british**: British Type G socket\n- **type-j-swiss**: Swiss Type J socket\n- **avcon**: AVCON connector (Australian standard)\n- **gb-t-ac**: GB/T AC connector (Chinese standard)\n- **gb-t-dc**: GB/T DC connector (Chinese standard)\n- **chaoji**: ChaoJi (CHAdeMO 3.0)\n- **nema-6-30**: NEMA 6-30\n- **nema-6-50**: NEMA 6-50\n- **mcs**: Megawatt Charging System (MCS)\n- **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows.\n"
                    },
                    "format": {
                      "type": "string",
                      "enum": [
                        "socket",
                        "cable"
                      ]
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "enabled",
                        "disabled"
                      ]
                    },
                    "ocpiMaxVoltage": {
                      "type": "integer",
                      "description": "Maximum voltage of the connector in volts, as received from a roaming partner via OCPI. Only present for roaming connectors."
                    },
                    "ocpiMaxAmperage": {
                      "type": "integer",
                      "description": "Maximum amperage of the connector in amps, as received from a roaming partner via OCPI. Only present for roaming connectors."
                    },
                    "ocpiMaxElectricPower": {
                      "type": "integer",
                      "description": "Maximum electric power of the connector in watts, as received from a roaming partner via OCPI. Only present for roaming connectors."
                    },
                    "externalId": {
                      "description": "An optional external identifier for integration purposes",
                      "type": "string",
                      "maxLength": 255
                    }
                  },
                  "required": [
                    "id",
                    "networkId",
                    "type"
                  ]
                }
              },
              "externalAppData": {
                "description": "Used to hold any external application data related to the EVSE.",
                "type": "object",
                "nullable": true,
                "additionalProperties": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "accessibleParkingSpaces": {
                "type": "array",
                "description": "Parking spaces accessible from this EVSE. Only included when include=accessibleParkingSpaces.",
                "items": {
                  "type": "object",
                  "description": "Represents how an EVSE is linked to a parking space, including its physical position and whether it's the primary EVSE for that space.",
                  "properties": {
                    "parkingSpaceId": {
                      "type": "integer",
                      "description": "The ID of the associated parking space."
                    },
                    "evseId": {
                      "type": "integer",
                      "description": "The ID of the associated EVSE."
                    },
                    "position": {
                      "description": "Physical position of the EVSE relative to the parking space:\n- **front**: EVSE at front of parking space\n- **rear**: EVSE at rear of parking space\n- **left**: EVSE on left side of parking space\n- **right**: EVSE on right side of parking space\n- **frontLeft**: EVSE at front-left corner\n- **frontRight**: EVSE at front-right corner\n- **rearLeft**: EVSE at rear-left corner\n- **rearRight**: EVSE at rear-right corner\n",
                      "type": "string",
                      "enum": [
                        "front",
                        "rear",
                        "left",
                        "right",
                        "frontLeft",
                        "frontRight",
                        "rearLeft",
                        "rearRight"
                      ]
                    },
                    "isPrimary": {
                      "type": "boolean",
                      "description": "Indicates if this is the primary EVSE for the parking space. Only one EVSE can be marked as primary per parking space."
                    }
                  },
                  "required": [
                    "parkingSpaceId",
                    "evseId",
                    "position",
                    "isPrimary"
                  ]
                }
              }
            },
            "required": [
              "id",
              "operatorId",
              "physicalReference",
              "currentType",
              "networkId",
              "status",
              "hardwareStatus",
              "roamingOperatorId",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointEvseConnectorsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "networkId": {
                  "type": "string",
                  "readOnly": true,
                  "description": "The OCPP connector identifier within the EVSE."
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "type1",
                    "type2",
                    "type3",
                    "chademo",
                    "ccs1",
                    "ccs2",
                    "schuko",
                    "nacs",
                    "cee16",
                    "cee32",
                    "j1772",
                    "inductive",
                    "nema-5-20",
                    "type-e-french",
                    "type-g-british",
                    "type-j-swiss",
                    "avcon",
                    "gb-t-ac",
                    "gb-t-dc",
                    "chaoji",
                    "nema-6-30",
                    "nema-6-50",
                    "mcs",
                    "unknown"
                  ],
                  "description": "Type of connector available on the EVSE:\n- **type1**: Type 1 connector (SAE J1772 AC)\n- **type2**: Type 2 connector (IEC 62196-2 AC)\n- **type3**: Type 3 connector (IEC 62196-2 AC)\n- **chademo**: CHAdeMO DC fast charging\n- **ccs1**: Combined Charging System 1 (CCS1/Combo 1)\n- **ccs2**: Combined Charging System 2 (CCS2/Combo 2)\n- **schuko**: Standard European household socket\n- **nacs**: North American Charging Standard (Tesla)\n- **cee16**: CEE 16A industrial connector\n- **cee32**: CEE 32A industrial connector\n- **j1772**: SAE J1772 connector\n- **inductive**: Inductive/wireless charging\n- **nema-5-20**: Domestic M NEMA 5-20 Socket\n- **type-e-french**: French Type E socket\n- **type-g-british**: British Type G socket\n- **type-j-swiss**: Swiss Type J socket\n- **avcon**: AVCON connector (Australian standard)\n- **gb-t-ac**: GB/T AC connector (Chinese standard)\n- **gb-t-dc**: GB/T DC connector (Chinese standard)\n- **chaoji**: ChaoJi (CHAdeMO 3.0)\n- **nema-6-30**: NEMA 6-30\n- **nema-6-50**: NEMA 6-50\n- **mcs**: Megawatt Charging System (MCS)\n- **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows.\n"
                },
                "format": {
                  "type": "string",
                  "enum": [
                    "socket",
                    "cable"
                  ]
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "enabled",
                    "disabled"
                  ]
                },
                "ocpiMaxVoltage": {
                  "type": "integer",
                  "description": "Maximum voltage of the connector in volts, as received from a roaming partner via OCPI. Only present for roaming connectors."
                },
                "ocpiMaxAmperage": {
                  "type": "integer",
                  "description": "Maximum amperage of the connector in amps, as received from a roaming partner via OCPI. Only present for roaming connectors."
                },
                "ocpiMaxElectricPower": {
                  "type": "integer",
                  "description": "Maximum electric power of the connector in watts, as received from a roaming partner via OCPI. Only present for roaming connectors."
                },
                "externalId": {
                  "description": "An optional external identifier for integration purposes",
                  "type": "string",
                  "maxLength": 255
                }
              },
              "required": [
                "id",
                "networkId",
                "type"
              ]
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointEvseConnectorCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "networkId": {
                "type": "string",
                "readOnly": true,
                "description": "The OCPP connector identifier within the EVSE."
              },
              "type": {
                "type": "string",
                "enum": [
                  "type1",
                  "type2",
                  "type3",
                  "chademo",
                  "ccs1",
                  "ccs2",
                  "schuko",
                  "nacs",
                  "cee16",
                  "cee32",
                  "j1772",
                  "inductive",
                  "nema-5-20",
                  "type-e-french",
                  "type-g-british",
                  "type-j-swiss",
                  "avcon",
                  "gb-t-ac",
                  "gb-t-dc",
                  "chaoji",
                  "nema-6-30",
                  "nema-6-50",
                  "mcs",
                  "unknown"
                ],
                "description": "Type of connector available on the EVSE:\n- **type1**: Type 1 connector (SAE J1772 AC)\n- **type2**: Type 2 connector (IEC 62196-2 AC)\n- **type3**: Type 3 connector (IEC 62196-2 AC)\n- **chademo**: CHAdeMO DC fast charging\n- **ccs1**: Combined Charging System 1 (CCS1/Combo 1)\n- **ccs2**: Combined Charging System 2 (CCS2/Combo 2)\n- **schuko**: Standard European household socket\n- **nacs**: North American Charging Standard (Tesla)\n- **cee16**: CEE 16A industrial connector\n- **cee32**: CEE 32A industrial connector\n- **j1772**: SAE J1772 connector\n- **inductive**: Inductive/wireless charging\n- **nema-5-20**: Domestic M NEMA 5-20 Socket\n- **type-e-french**: French Type E socket\n- **type-g-british**: British Type G socket\n- **type-j-swiss**: Swiss Type J socket\n- **avcon**: AVCON connector (Australian standard)\n- **gb-t-ac**: GB/T AC connector (Chinese standard)\n- **gb-t-dc**: GB/T DC connector (Chinese standard)\n- **chaoji**: ChaoJi (CHAdeMO 3.0)\n- **nema-6-30**: NEMA 6-30\n- **nema-6-50**: NEMA 6-50\n- **mcs**: Megawatt Charging System (MCS)\n- **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows.\n"
              },
              "format": {
                "type": "string",
                "enum": [
                  "socket",
                  "cable"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "ocpiMaxVoltage": {
                "type": "integer",
                "description": "Maximum voltage of the connector in volts, as received from a roaming partner via OCPI. Only present for roaming connectors."
              },
              "ocpiMaxAmperage": {
                "type": "integer",
                "description": "Maximum amperage of the connector in amps, as received from a roaming partner via OCPI. Only present for roaming connectors."
              },
              "ocpiMaxElectricPower": {
                "type": "integer",
                "description": "Maximum electric power of the connector in watts, as received from a roaming partner via OCPI. Only present for roaming connectors."
              },
              "externalId": {
                "description": "An optional external identifier for integration purposes",
                "type": "string",
                "maxLength": 255
              }
            },
            "required": [
              "id",
              "networkId",
              "type"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointEvseConnectorRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "networkId": {
                "type": "string",
                "readOnly": true,
                "description": "The OCPP connector identifier within the EVSE."
              },
              "type": {
                "type": "string",
                "enum": [
                  "type1",
                  "type2",
                  "type3",
                  "chademo",
                  "ccs1",
                  "ccs2",
                  "schuko",
                  "nacs",
                  "cee16",
                  "cee32",
                  "j1772",
                  "inductive",
                  "nema-5-20",
                  "type-e-french",
                  "type-g-british",
                  "type-j-swiss",
                  "avcon",
                  "gb-t-ac",
                  "gb-t-dc",
                  "chaoji",
                  "nema-6-30",
                  "nema-6-50",
                  "mcs",
                  "unknown"
                ],
                "description": "Type of connector available on the EVSE:\n- **type1**: Type 1 connector (SAE J1772 AC)\n- **type2**: Type 2 connector (IEC 62196-2 AC)\n- **type3**: Type 3 connector (IEC 62196-2 AC)\n- **chademo**: CHAdeMO DC fast charging\n- **ccs1**: Combined Charging System 1 (CCS1/Combo 1)\n- **ccs2**: Combined Charging System 2 (CCS2/Combo 2)\n- **schuko**: Standard European household socket\n- **nacs**: North American Charging Standard (Tesla)\n- **cee16**: CEE 16A industrial connector\n- **cee32**: CEE 32A industrial connector\n- **j1772**: SAE J1772 connector\n- **inductive**: Inductive/wireless charging\n- **nema-5-20**: Domestic M NEMA 5-20 Socket\n- **type-e-french**: French Type E socket\n- **type-g-british**: British Type G socket\n- **type-j-swiss**: Swiss Type J socket\n- **avcon**: AVCON connector (Australian standard)\n- **gb-t-ac**: GB/T AC connector (Chinese standard)\n- **gb-t-dc**: GB/T DC connector (Chinese standard)\n- **chaoji**: ChaoJi (CHAdeMO 3.0)\n- **nema-6-30**: NEMA 6-30\n- **nema-6-50**: NEMA 6-50\n- **mcs**: Megawatt Charging System (MCS)\n- **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows.\n"
              },
              "format": {
                "type": "string",
                "enum": [
                  "socket",
                  "cable"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "ocpiMaxVoltage": {
                "type": "integer",
                "description": "Maximum voltage of the connector in volts, as received from a roaming partner via OCPI. Only present for roaming connectors."
              },
              "ocpiMaxAmperage": {
                "type": "integer",
                "description": "Maximum amperage of the connector in amps, as received from a roaming partner via OCPI. Only present for roaming connectors."
              },
              "ocpiMaxElectricPower": {
                "type": "integer",
                "description": "Maximum electric power of the connector in watts, as received from a roaming partner via OCPI. Only present for roaming connectors."
              },
              "externalId": {
                "description": "An optional external identifier for integration purposes",
                "type": "string",
                "maxLength": 255
              }
            },
            "required": [
              "id",
              "networkId",
              "type"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointEvseConnectorDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointEvseConnectorUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "networkId": {
                "type": "string",
                "readOnly": true,
                "description": "The OCPP connector identifier within the EVSE."
              },
              "type": {
                "type": "string",
                "enum": [
                  "type1",
                  "type2",
                  "type3",
                  "chademo",
                  "ccs1",
                  "ccs2",
                  "schuko",
                  "nacs",
                  "cee16",
                  "cee32",
                  "j1772",
                  "inductive",
                  "nema-5-20",
                  "type-e-french",
                  "type-g-british",
                  "type-j-swiss",
                  "avcon",
                  "gb-t-ac",
                  "gb-t-dc",
                  "chaoji",
                  "nema-6-30",
                  "nema-6-50",
                  "mcs",
                  "unknown"
                ],
                "description": "Type of connector available on the EVSE:\n- **type1**: Type 1 connector (SAE J1772 AC)\n- **type2**: Type 2 connector (IEC 62196-2 AC)\n- **type3**: Type 3 connector (IEC 62196-2 AC)\n- **chademo**: CHAdeMO DC fast charging\n- **ccs1**: Combined Charging System 1 (CCS1/Combo 1)\n- **ccs2**: Combined Charging System 2 (CCS2/Combo 2)\n- **schuko**: Standard European household socket\n- **nacs**: North American Charging Standard (Tesla)\n- **cee16**: CEE 16A industrial connector\n- **cee32**: CEE 32A industrial connector\n- **j1772**: SAE J1772 connector\n- **inductive**: Inductive/wireless charging\n- **nema-5-20**: Domestic M NEMA 5-20 Socket\n- **type-e-french**: French Type E socket\n- **type-g-british**: British Type G socket\n- **type-j-swiss**: Swiss Type J socket\n- **avcon**: AVCON connector (Australian standard)\n- **gb-t-ac**: GB/T AC connector (Chinese standard)\n- **gb-t-dc**: GB/T DC connector (Chinese standard)\n- **chaoji**: ChaoJi (CHAdeMO 3.0)\n- **nema-6-30**: NEMA 6-30\n- **nema-6-50**: NEMA 6-50\n- **mcs**: Megawatt Charging System (MCS)\n- **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows.\n"
              },
              "format": {
                "type": "string",
                "enum": [
                  "socket",
                  "cable"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "ocpiMaxVoltage": {
                "type": "integer",
                "description": "Maximum voltage of the connector in volts, as received from a roaming partner via OCPI. Only present for roaming connectors."
              },
              "ocpiMaxAmperage": {
                "type": "integer",
                "description": "Maximum amperage of the connector in amps, as received from a roaming partner via OCPI. Only present for roaming connectors."
              },
              "ocpiMaxElectricPower": {
                "type": "integer",
                "description": "Maximum electric power of the connector in watts, as received from a roaming partner via OCPI. Only present for roaming connectors."
              },
              "externalId": {
                "description": "An optional external identifier for integration purposes",
                "type": "string",
                "maxLength": 255
              }
            },
            "required": [
              "id",
              "networkId",
              "type"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "listChargePointHardwareStatusLogs": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "status",
                "timestamp",
                "errorCode"
              ],
              "properties": {
                "status": {
                  "type": "string",
                  "description": "Hardware status at the time of this log entry"
                },
                "timestamp": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 timestamp when the entry was recorded",
                  "example": "2024-01-01T12:00:00Z"
                },
                "errorCode": {
                  "type": "string",
                  "description": "The type of error or \"NoError\"",
                  "example": "NoError"
                },
                "vendorId": {
                  "type": "string",
                  "description": "The ID of the vendor",
                  "example": "ABB"
                },
                "info": {
                  "type": "string",
                  "description": "Additional information about the status",
                  "example": "Connector successfully locked"
                },
                "vendorErrorCode": {
                  "type": "string",
                  "description": "Vendor-specific error code",
                  "example": "E001"
                },
                "errorCodeDescription": {
                  "type": "string",
                  "description": "Detailed description of the vendor error code",
                  "example": "Communication timeout with vehicle"
                },
                "errorCodeCustomerAction": {
                  "type": "string",
                  "description": "Recommended action for the customer",
                  "example": "Please ensure the charging cable is properly connected"
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getChargePointLatestHardwareStatusLog": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "status",
              "timestamp",
              "errorCode"
            ],
            "properties": {
              "status": {
                "type": "string",
                "description": "Hardware status at the time of this log entry"
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 timestamp when the entry was recorded",
                "example": "2024-01-01T12:00:00Z"
              },
              "errorCode": {
                "type": "string",
                "description": "The type of error or \"NoError\"",
                "example": "NoError"
              },
              "vendorId": {
                "type": "string",
                "description": "The ID of the vendor",
                "example": "ABB"
              },
              "info": {
                "type": "string",
                "description": "Additional information about the status",
                "example": "Connector successfully locked"
              },
              "vendorErrorCode": {
                "type": "string",
                "description": "Vendor-specific error code",
                "example": "E001"
              },
              "errorCodeDescription": {
                "type": "string",
                "description": "Detailed description of the vendor error code",
                "example": "Communication timeout with vehicle"
              },
              "errorCodeCustomerAction": {
                "type": "string",
                "description": "Recommended action for the customer",
                "example": "Please ensure the charging cable is properly connected"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getChargePointLatestNetworkStatusLog": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "status",
              "timestamp"
            ],
            "properties": {
              "status": {
                "type": "string",
                "description": "Network connection status at the time of this log entry"
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 timestamp when the entry was recorded",
                "example": "2024-01-01T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "listChargePointNetworkStatusLogs": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "status",
                "timestamp"
              ],
              "properties": {
                "status": {
                  "type": "string",
                  "description": "Network connection status at the time of this log entry"
                },
                "timestamp": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 timestamp when the entry was recorded",
                  "example": "2024-01-01T12:00:00Z"
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointNotesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "summary",
                "pinned",
                "createdAt",
                "updatedAt"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Unique identifier for the note",
                  "example": 123
                },
                "summary": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "Short summary or title of the note",
                  "example": "Important maintenance note"
                },
                "details": {
                  "type": "string",
                  "maxLength": 2000,
                  "description": "Detailed content of the note. Omitted when empty.",
                  "example": "This charge point requires monthly inspection due to high usage."
                },
                "pinned": {
                  "type": "boolean",
                  "description": "Whether the note is pinned (appears first in listings)",
                  "example": true
                },
                "createdByAdminId": {
                  "type": "integer",
                  "description": "ID of the admin who created the note. Omitted when unavailable.",
                  "example": 1
                },
                "updatedByAdminId": {
                  "type": "integer",
                  "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                  "example": 2
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO-8601 timestamp when the note was created",
                  "example": "2025-12-16T10:00:00Z"
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO-8601 timestamp when the note was last updated",
                  "example": "2025-12-16T12:00:00Z"
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointNoteCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "pinned",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier for the note",
                "example": 123
              },
              "summary": {
                "type": "string",
                "maxLength": 255,
                "description": "Short summary or title of the note",
                "example": "Important maintenance note"
              },
              "details": {
                "type": "string",
                "maxLength": 2000,
                "description": "Detailed content of the note. Omitted when empty.",
                "example": "This charge point requires monthly inspection due to high usage."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the note is pinned (appears first in listings)",
                "example": true
              },
              "createdByAdminId": {
                "type": "integer",
                "description": "ID of the admin who created the note. Omitted when unavailable.",
                "example": 1
              },
              "updatedByAdminId": {
                "type": "integer",
                "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                "example": 2
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was created",
                "example": "2025-12-16T10:00:00Z"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was last updated",
                "example": "2025-12-16T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointNoteShow": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "pinned",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier for the note",
                "example": 123
              },
              "summary": {
                "type": "string",
                "maxLength": 255,
                "description": "Short summary or title of the note",
                "example": "Important maintenance note"
              },
              "details": {
                "type": "string",
                "maxLength": 2000,
                "description": "Detailed content of the note. Omitted when empty.",
                "example": "This charge point requires monthly inspection due to high usage."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the note is pinned (appears first in listings)",
                "example": true
              },
              "createdByAdminId": {
                "type": "integer",
                "description": "ID of the admin who created the note. Omitted when unavailable.",
                "example": 1
              },
              "updatedByAdminId": {
                "type": "integer",
                "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                "example": 2
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was created",
                "example": "2025-12-16T10:00:00Z"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was last updated",
                "example": "2025-12-16T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointNoteDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointNoteUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "pinned",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier for the note",
                "example": 123
              },
              "summary": {
                "type": "string",
                "maxLength": 255,
                "description": "Short summary or title of the note",
                "example": "Important maintenance note"
              },
              "details": {
                "type": "string",
                "maxLength": 2000,
                "description": "Detailed content of the note. Omitted when empty.",
                "example": "This charge point requires monthly inspection due to high usage."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the note is pinned (appears first in listings)",
                "example": true
              },
              "createdByAdminId": {
                "type": "integer",
                "description": "ID of the admin who created the note. Omitted when unavailable.",
                "example": 1
              },
              "updatedByAdminId": {
                "type": "integer",
                "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                "example": 2
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was created",
                "example": "2025-12-16T10:00:00Z"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was last updated",
                "example": "2025-12-16T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointPersonalSmartChargingPreferencesRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "oneOf": [
              {
                "title": "User controlled schedule",
                "type": "object",
                "required": [
                  "type",
                  "preferences"
                ],
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable or disable the smart charging from owner preferences\n"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "user_controlled_schedule"
                    ]
                  },
                  "preferences": {
                    "type": "object",
                    "required": [
                      "startTime",
                      "endTime"
                    ],
                    "properties": {
                      "startTime": {
                        "type": "string",
                        "format": "time",
                        "description": "Start of preferred charging window which will be applied by default when no week day is chosen. Applicable for schedule mode"
                      },
                      "endTime": {
                        "type": "string",
                        "format": "time",
                        "description": "End of preferred charging window which will be applied by default when no week day is chosen. Applicable for schedule mode"
                      },
                      "targetCharge": {
                        "type": "object",
                        "nullable": true,
                        "properties": {
                          "minTargetChargeKwh": {
                            "type": "number",
                            "example": 10
                          },
                          "maxTargetChargeKwh": {
                            "type": "number",
                            "example": 20
                          }
                        }
                      },
                      "trackElectricityCosts": {
                        "type": "object",
                        "nullable": true,
                        "properties": {
                          "priceOffPeak": {
                            "type": "number",
                            "example": 1.3
                          },
                          "pricePeak": {
                            "type": "number",
                            "example": 0.9
                          }
                        }
                      },
                      "weekDays": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "days": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "monday",
                                  "tuesday",
                                  "wednesday",
                                  "thursday",
                                  "friday",
                                  "saturday",
                                  "sunday"
                                ]
                              },
                              "description": "Specify the day(s) for which the schedule will apply."
                            },
                            "startTime": {
                              "type": "string",
                              "format": "time",
                              "description": "Start of preferred charging window for chosen day(s).",
                              "example": "16:00"
                            },
                            "endTime": {
                              "type": "string",
                              "format": "time",
                              "description": "End of preferred charging window for chosen day(s).",
                              "example": "23:00"
                            }
                          },
                          "required": [
                            "days",
                            "startTime",
                            "endTime"
                          ]
                        }
                      }
                    }
                  }
                }
              },
              {
                "title": "Solar",
                "type": "object",
                "required": [
                  "type",
                  "preferences"
                ],
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable or disable the smart charging from owner preferences\n"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "solar"
                    ]
                  },
                  "preferences": {
                    "type": "object",
                    "required": [
                      "maxCurrentFromGrid",
                      "solarStableTime"
                    ],
                    "properties": {
                      "maxCurrentFromGrid": {
                        "type": "number",
                        "description": "The max current that can be taken from grid to ensure a stable charging process.Recommended options to use 0, 6, 8, 10, 12."
                      },
                      "solarStableTime": {
                        "type": "number",
                        "description": "Shorter time means more precise solar availability detection but also more frequent charging on/off switching. Recommended options to use 30, 60, 120, 300, 600."
                      }
                    }
                  }
                }
              },
              {
                "title": "Octopus Agile",
                "type": "object",
                "required": [
                  "type",
                  "preferences",
                  "integrationId"
                ],
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable or disable the smart charging from owner preferences\n"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "octopus_agile"
                    ]
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "preferences": {
                    "type": "object",
                    "required": [
                      "postCode",
                      "applicableTaxId",
                      "priceThreshold"
                    ],
                    "properties": {
                      "applicableTaxId": {
                        "type": "integer",
                        "description": "The ID of the applicable tax rate. Used to calculate correctly electricity costs shown to the user."
                      },
                      "targetCharge": {
                        "type": "object",
                        "nullable": true,
                        "properties": {
                          "departureTime": {
                            "type": "string",
                            "format": "time"
                          },
                          "preconditioningTime": {
                            "type": "integer",
                            "description": "The time in minutes before departure when the charging will be performed with full power."
                          },
                          "minTargetChargeKwh": {
                            "type": "number",
                            "example": 10
                          },
                          "maxTargetChargeKwh": {
                            "type": "number",
                            "example": 20
                          }
                        }
                      },
                      "postCode": {
                        "type": "string",
                        "description": "User's postcode. Used to determine the applicable tariff."
                      },
                      "priceThreshold": {
                        "type": "number",
                        "description": "The price per kWh threshold below which charging would commence."
                      }
                    }
                  }
                }
              },
              {
                "title": "Octopus Go",
                "type": "object",
                "required": [
                  "type",
                  "preferences",
                  "integrationId"
                ],
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable or disable the smart charging from owner preferences\n"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "octopus_go"
                    ]
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "preferences": {
                    "type": "object",
                    "required": [
                      "postCode",
                      "applicableTaxId"
                    ],
                    "properties": {
                      "applicableTaxId": {
                        "type": "integer",
                        "description": "The ID of the applicable tax rate. Used to calculate correctly electricity costs shown to the user."
                      },
                      "targetCharge": {
                        "type": "object",
                        "nullable": true,
                        "properties": {
                          "departureTime": {
                            "type": "string",
                            "format": "time"
                          },
                          "preconditioningTime": {
                            "type": "integer",
                            "description": "The time in minutes before departure when the charging will be performed with full power."
                          },
                          "minTargetChargeKwh": {
                            "type": "number",
                            "example": 10
                          },
                          "maxTargetChargeKwh": {
                            "type": "number",
                            "example": 20
                          }
                        }
                      },
                      "postCode": {
                        "type": "string",
                        "description": "User's postcode. Used to determine the applicable tariff."
                      },
                      "priceThreshold": {
                        "type": "number",
                        "description": "The price per kWh threshold below which charging would commence."
                      }
                    }
                  }
                }
              },
              {
                "title": "NordPool",
                "type": "object",
                "required": [
                  "type",
                  "preferences",
                  "integrationId"
                ],
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable or disable the smart charging from owner preferences\n"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "nordpool"
                    ]
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "preferences": {
                    "type": "object",
                    "required": [
                      "location",
                      "targetCharge"
                    ],
                    "properties": {
                      "location": {
                        "type": "string",
                        "enum": [
                          "GB1"
                        ],
                        "description": "The price region based on NordPool prices"
                      },
                      "targetCharge": {
                        "type": "object",
                        "required": [
                          "targetChargeKwh",
                          "departureTime"
                        ],
                        "properties": {
                          "departureTime": {
                            "type": "string",
                            "format": "time"
                          },
                          "preconditioningTime": {
                            "type": "integer",
                            "description": "The time in minutes before departure when the charging will be performed with full power."
                          },
                          "targetChargeKwh": {
                            "type": "number",
                            "example": 10
                          }
                        }
                      }
                    }
                  }
                }
              },
              {
                "title": "Electricity rate",
                "type": "object",
                "required": [
                  "type",
                  "electricityRateId",
                  "preferences"
                ],
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable or disable the smart charging from owner preferences\n"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "charger_electricity_rate"
                    ]
                  },
                  "electricityRateId": {
                    "type": "integer"
                  },
                  "preferences": {
                    "type": "object",
                    "required": [
                      "startTime",
                      "endTime",
                      "targetCharge"
                    ],
                    "properties": {
                      "solar": {
                        "type": "boolean",
                        "default": false,
                        "description": "This boolean adds solar mode control for specific brands of chargers that are supported.\nE.g.: Some chargers support special keys in the charging profile which enables solar charging mode.\n"
                      },
                      "startTime": {
                        "type": "string",
                        "format": "time",
                        "description": "Start of preferred charging window which will be applied by default when no week day is chosen."
                      },
                      "endTime": {
                        "type": "string",
                        "format": "time",
                        "description": "End of preferred charging window which will be applied by default when no week day is chosen."
                      },
                      "targetCharge": {
                        "type": "object",
                        "required": [
                          "departureTime",
                          "targetChargeKwh"
                        ],
                        "properties": {
                          "departureTime": {
                            "type": "string",
                            "format": "time"
                          },
                          "preconditioningTime": {
                            "type": "integer",
                            "description": "The time in minutes before departure when the charging will be performed with full power."
                          },
                          "targetChargeKwh": {
                            "type": "number",
                            "example": 10,
                            "description": "The desired charge energy which will be achieved with the most optimal price."
                          }
                        }
                      },
                      "weekDays": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "days": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "monday",
                                  "tuesday",
                                  "wednesday",
                                  "thursday",
                                  "friday",
                                  "saturday",
                                  "sunday"
                                ]
                              },
                              "description": "Specify the day(s) for which the schedule will apply."
                            },
                            "startTime": {
                              "type": "string",
                              "format": "time",
                              "description": "Start of preferred charging window for chosen day(s).",
                              "example": "16:00"
                            },
                            "endTime": {
                              "type": "string",
                              "format": "time",
                              "description": "End of preferred charging window for chosen day(s).",
                              "example": "23:00"
                            }
                          },
                          "required": [
                            "days",
                            "startTime",
                            "endTime"
                          ]
                        }
                      }
                    }
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "personalSmartChargingPreferencesUpdate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "anyOf": [
              {
                "title": "User controlled schedule",
                "type": "object",
                "required": [
                  "type",
                  "preferences"
                ],
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable or disable the smart charging from owner preferences\n"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "user_controlled_schedule"
                    ]
                  },
                  "preferences": {
                    "type": "object",
                    "required": [
                      "startTime",
                      "endTime"
                    ],
                    "properties": {
                      "startTime": {
                        "type": "string",
                        "format": "time",
                        "description": "Start of preferred charging window which will be applied by default when no week day is chosen. Applicable for schedule mode"
                      },
                      "endTime": {
                        "type": "string",
                        "format": "time",
                        "description": "End of preferred charging window which will be applied by default when no week day is chosen. Applicable for schedule mode"
                      },
                      "targetCharge": {
                        "type": "object",
                        "nullable": true,
                        "properties": {
                          "minTargetChargeKwh": {
                            "type": "number",
                            "example": 10
                          },
                          "maxTargetChargeKwh": {
                            "type": "number",
                            "example": 20
                          }
                        }
                      },
                      "trackElectricityCosts": {
                        "type": "object",
                        "nullable": true,
                        "properties": {
                          "priceOffPeak": {
                            "type": "number",
                            "example": 1.3
                          },
                          "pricePeak": {
                            "type": "number",
                            "example": 0.9
                          }
                        }
                      },
                      "weekDays": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "days": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "monday",
                                  "tuesday",
                                  "wednesday",
                                  "thursday",
                                  "friday",
                                  "saturday",
                                  "sunday"
                                ]
                              },
                              "description": "Specify the day(s) for which the schedule will apply."
                            },
                            "startTime": {
                              "type": "string",
                              "format": "time",
                              "description": "Start of preferred charging window for chosen day(s).",
                              "example": "16:00"
                            },
                            "endTime": {
                              "type": "string",
                              "format": "time",
                              "description": "End of preferred charging window for chosen day(s).",
                              "example": "23:00"
                            }
                          },
                          "required": [
                            "days",
                            "startTime",
                            "endTime"
                          ]
                        }
                      }
                    }
                  }
                }
              },
              {
                "title": "Solar",
                "type": "object",
                "required": [
                  "type",
                  "preferences"
                ],
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable or disable the smart charging from owner preferences\n"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "solar"
                    ]
                  },
                  "preferences": {
                    "type": "object",
                    "required": [
                      "maxCurrentFromGrid",
                      "solarStableTime"
                    ],
                    "properties": {
                      "maxCurrentFromGrid": {
                        "type": "number",
                        "description": "The max current that can be taken from grid to ensure a stable charging process.Recommended options to use 0, 6, 8, 10, 12."
                      },
                      "solarStableTime": {
                        "type": "number",
                        "description": "Shorter time means more precise solar availability detection but also more frequent charging on/off switching. Recommended options to use 30, 60, 120, 300, 600."
                      }
                    }
                  }
                }
              },
              {
                "title": "Octopus Agile",
                "type": "object",
                "required": [
                  "type",
                  "preferences",
                  "integrationId"
                ],
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable or disable the smart charging from owner preferences\n"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "octopus_agile"
                    ]
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "preferences": {
                    "type": "object",
                    "required": [
                      "postCode",
                      "applicableTaxId",
                      "priceThreshold"
                    ],
                    "properties": {
                      "applicableTaxId": {
                        "type": "integer",
                        "description": "The ID of the applicable tax rate. Used to calculate correctly electricity costs shown to the user."
                      },
                      "targetCharge": {
                        "type": "object",
                        "nullable": true,
                        "properties": {
                          "departureTime": {
                            "type": "string",
                            "format": "time"
                          },
                          "preconditioningTime": {
                            "type": "integer",
                            "description": "The time in minutes before departure when the charging will be performed with full power."
                          },
                          "minTargetChargeKwh": {
                            "type": "number",
                            "example": 10
                          },
                          "maxTargetChargeKwh": {
                            "type": "number",
                            "example": 20
                          }
                        }
                      },
                      "postCode": {
                        "type": "string",
                        "description": "User's postcode. Used to determine the applicable tariff."
                      },
                      "priceThreshold": {
                        "type": "number",
                        "description": "The price per kWh threshold below which charging would commence."
                      }
                    }
                  }
                }
              },
              {
                "title": "Octopus Go",
                "type": "object",
                "required": [
                  "type",
                  "preferences",
                  "integrationId"
                ],
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable or disable the smart charging from owner preferences\n"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "octopus_go"
                    ]
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "preferences": {
                    "type": "object",
                    "required": [
                      "postCode",
                      "applicableTaxId"
                    ],
                    "properties": {
                      "applicableTaxId": {
                        "type": "integer",
                        "description": "The ID of the applicable tax rate. Used to calculate correctly electricity costs shown to the user."
                      },
                      "targetCharge": {
                        "type": "object",
                        "nullable": true,
                        "properties": {
                          "departureTime": {
                            "type": "string",
                            "format": "time"
                          },
                          "preconditioningTime": {
                            "type": "integer",
                            "description": "The time in minutes before departure when the charging will be performed with full power."
                          },
                          "minTargetChargeKwh": {
                            "type": "number",
                            "example": 10
                          },
                          "maxTargetChargeKwh": {
                            "type": "number",
                            "example": 20
                          }
                        }
                      },
                      "postCode": {
                        "type": "string",
                        "description": "User's postcode. Used to determine the applicable tariff."
                      },
                      "priceThreshold": {
                        "type": "number",
                        "description": "The price per kWh threshold below which charging would commence."
                      }
                    }
                  }
                }
              },
              {
                "title": "NordPool",
                "type": "object",
                "required": [
                  "type",
                  "preferences",
                  "integrationId"
                ],
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable or disable the smart charging from owner preferences\n"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "nordpool"
                    ]
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "preferences": {
                    "type": "object",
                    "required": [
                      "location",
                      "targetCharge"
                    ],
                    "properties": {
                      "location": {
                        "type": "string",
                        "enum": [
                          "GB1"
                        ],
                        "description": "The price region based on NordPool prices"
                      },
                      "targetCharge": {
                        "type": "object",
                        "required": [
                          "targetChargeKwh",
                          "departureTime"
                        ],
                        "properties": {
                          "departureTime": {
                            "type": "string",
                            "format": "time"
                          },
                          "preconditioningTime": {
                            "type": "integer",
                            "description": "The time in minutes before departure when the charging will be performed with full power."
                          },
                          "targetChargeKwh": {
                            "type": "number",
                            "example": 10
                          }
                        }
                      }
                    }
                  }
                }
              },
              {
                "title": "Electricity rate",
                "type": "object",
                "required": [
                  "type",
                  "electricityRateId",
                  "preferences"
                ],
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable or disable the smart charging from owner preferences\n"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "charger_electricity_rate"
                    ]
                  },
                  "electricityRateId": {
                    "type": "integer"
                  },
                  "preferences": {
                    "type": "object",
                    "required": [
                      "startTime",
                      "endTime",
                      "targetCharge"
                    ],
                    "properties": {
                      "solar": {
                        "type": "boolean",
                        "default": false,
                        "description": "This boolean adds solar mode control for specific brands of chargers that are supported.\nE.g.: Some chargers support special keys in the charging profile which enables solar charging mode.\n"
                      },
                      "startTime": {
                        "type": "string",
                        "format": "time",
                        "description": "Start of preferred charging window which will be applied by default when no week day is chosen."
                      },
                      "endTime": {
                        "type": "string",
                        "format": "time",
                        "description": "End of preferred charging window which will be applied by default when no week day is chosen."
                      },
                      "targetCharge": {
                        "type": "object",
                        "required": [
                          "departureTime",
                          "targetChargeKwh"
                        ],
                        "properties": {
                          "departureTime": {
                            "type": "string",
                            "format": "time"
                          },
                          "preconditioningTime": {
                            "type": "integer",
                            "description": "The time in minutes before departure when the charging will be performed with full power."
                          },
                          "targetChargeKwh": {
                            "type": "number",
                            "example": 10,
                            "description": "The desired charge energy which will be achieved with the most optimal price."
                          }
                        }
                      },
                      "weekDays": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "days": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "monday",
                                  "tuesday",
                                  "wednesday",
                                  "thursday",
                                  "friday",
                                  "saturday",
                                  "sunday"
                                ]
                              },
                              "description": "Specify the day(s) for which the schedule will apply."
                            },
                            "startTime": {
                              "type": "string",
                              "format": "time",
                              "description": "Start of preferred charging window for chosen day(s).",
                              "example": "16:00"
                            },
                            "endTime": {
                              "type": "string",
                              "format": "time",
                              "description": "End of preferred charging window for chosen day(s).",
                              "example": "23:00"
                            }
                          },
                          "required": [
                            "days",
                            "startTime",
                            "endTime"
                          ]
                        }
                      }
                    }
                  }
                }
              },
              {
                "title": "Disabled",
                "type": "object",
                "required": [
                  "enabled"
                ],
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": false,
                    "description": "Disable the smart charging from owner preferences\n"
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointSharedPartnersListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "the id of the partner"
                },
                "sharedAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true,
                  "description": "ISO 8601 formatted date"
                }
              },
              "required": [
                "id",
                "sharedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointSharedPartnersSync": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "chargePointSharesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "userId": {
                  "type": "integer"
                },
                "sharedOn": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true,
                  "description": "ISO 8601 formatted date"
                }
              },
              "required": [
                "id",
                "userId",
                "sharedOn"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointShareCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "userId": {
                "type": "integer"
              },
              "sharedOn": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "ISO 8601 formatted date"
              }
            },
            "required": [
              "id",
              "userId",
              "sharedOn"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointShareRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "userId": {
                "type": "integer"
              },
              "sharedOn": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "ISO 8601 formatted date"
              }
            },
            "required": [
              "id",
              "userId",
              "sharedOn"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "charegPointShareDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointShareUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "userId": {
                "type": "integer"
              },
              "sharedOn": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "ISO 8601 formatted date"
              }
            },
            "required": [
              "id",
              "userId",
              "sharedOn"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointSmartChargingUpdate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "mode": {
                    "type": "string",
                    "enum": [
                      "tod"
                    ],
                    "description": "`tod` - for public and private charge points. The maximum load for a specific time period during the day could be set - the charge point could be part of a dynamic load management circuit.\n"
                  },
                  "defaultChargePointMaxCurrent": {
                    "type": "number",
                    "multipleOf": 0.1,
                    "description": "In amps. The max current would be used in the algorithm for the smart charging and wherever there is not a max current explicitly set."
                  },
                  "circuitId": {
                    "type": "integer",
                    "description": "The ID of the DLM Circuit to which the charge point is added (if any).",
                    "nullable": true,
                    "readOnly": true
                  },
                  "periods": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "weekDay",
                        "elements"
                      ],
                      "properties": {
                        "weekDay": {
                          "type": "string",
                          "enum": [
                            "all",
                            "mon",
                            "tue",
                            "wed",
                            "thu",
                            "fri",
                            "sat",
                            "sun"
                          ],
                          "description": "Specify the day for which the pricing would be valid."
                        },
                        "elements": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "startAt",
                              "endAt"
                            ],
                            "properties": {
                              "startAt": {
                                "type": "string",
                                "format": "time",
                                "example": "00:00",
                                "description": "The 24-hour format should be used.</br>\nExample `00:00`\n"
                              },
                              "endAt": {
                                "type": "string",
                                "format": "time",
                                "example": "00:00",
                                "description": "The 24-hour format should be used.</br>\nExample `01:00`\n"
                              },
                              "maxCurrent": {
                                "type": "number",
                                "nullable": true
                              }
                            }
                          }
                        }
                      }
                    },
                    "description": "The time period must be the same for every single day through the week and should be always 60 min. The `startAt` and `endAt` must comply with this restriction."
                  },
                  "preconditioningTime": {
                    "type": "integer",
                    "description": "The time in minutes before departure when the charging will be performed with full power."
                  },
                  "minCurrent": {
                    "type": "number",
                    "description": "minCurrent is always REQUIRED for `user_controlled_schedule`",
                    "nullable": true
                  },
                  "enableKeepAwake": {
                    "type": "boolean",
                    "description": "For personal charge points. Keep the car awake during scheduled periods by continuously charging at a low current / power.",
                    "nullable": true
                  },
                  "maxVoltage": {
                    "type": "string",
                    "enum": [
                      "230",
                      "380",
                      "400",
                      "480",
                      "120",
                      "208",
                      "240",
                      "110-130",
                      "220-240",
                      "277"
                    ]
                  },
                  "electricalConfiguration": {
                    "type": "string",
                    "enum": [
                      "star",
                      "delta"
                    ],
                    "default": "star",
                    "description": "Defines the type of electrical configuration of the charge point. The available options are </br> `star` - Star/Wye (Y) (default)</br> `delta` - Delta (Δ)</br>"
                  },
                  "phases": {
                    "type": "string",
                    "enum": [
                      "single_phase",
                      "three_phase",
                      "split_phase"
                    ]
                  },
                  "phaseRotation": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "RST",
                      "RTS",
                      "SRT",
                      "STR",
                      "TRS",
                      "TSR"
                    ],
                    "description": "`R` stands for `L1`, </br>\n`S` - for `L2` </br>\n`T` - for `L3` </br>\nSo for example `RST` = `L1`, `L2`, `L3`, while `RTS` = `L1`, `L3`, `L2`, etc. </br>\nWe are deriving the connected phase from this property for single phase if connectedPhase is not provided. Please don't rely on this property anymore as this functionality will be turned of in near future. Pass the correct connectedPhase instead. If you pass both properties (connectedPhase and phaseRotation) only connectedPhase will be taken into consideration for determining the phase.\n"
                  },
                  "connectedPhase": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "L1",
                      "L2",
                      "L3",
                      "L1_L2",
                      "L1_L3",
                      "L2_L3"
                    ],
                    "description": "Specifies the active line conductors used in the circuit.\n- `L1_L2` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L2_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L2` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L3` - Valid when `phases` = `single_phase` in electrical configuration `star`\n"
                  },
                  "powerSharing": {
                    "type": "object",
                    "description": "The DC cabinet power-sharing configuration. Properties without configured values are omitted, and power settings are omitted when power sharing is disabled.",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether DC cabinet power sharing is enabled for the charge point."
                      },
                      "managementMode": {
                        "type": "string",
                        "description": "Controls how the charge point allocates cabinet power across its DC outputs.\n\n`static` uses power modules dedicated to individual EVSEs; modules are not dynamically shared between EVSEs.\n`dynamic` shares power modules across EVSEs and allocates cabinet power in discrete steps defined by `moduleSizeKw`.\n",
                        "enum": [
                          "static",
                          "dynamic"
                        ]
                      },
                      "totalCabinetPowerKw": {
                        "type": "integer",
                        "minimum": 1,
                        "description": "Total power available from the DC cabinet, in kilowatts."
                      },
                      "moduleSizeKw": {
                        "type": "integer",
                        "minimum": 1,
                        "description": "Power of one DC cabinet module, in kilowatts."
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  }
                },
                "required": [
                  "mode",
                  "defaultChargePointMaxCurrent",
                  "maxVoltage",
                  "phases",
                  "phaseRotation"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "mode": {
                    "type": "string",
                    "enum": [
                      "dynamic"
                    ],
                    "description": "`dynamic` - for public and private charge points. The charge point could be part of a dynamic load management circuit.\n"
                  },
                  "defaultChargePointMaxCurrent": {
                    "type": "number",
                    "multipleOf": 0.1,
                    "description": "In amps. The max current would be used in the algorithm for the smart charging and wherever there is not a max current explicitly set."
                  },
                  "preconditioningTime": {
                    "type": "integer",
                    "description": "The time in minutes before departure when the charging will be performed with full power."
                  },
                  "circuitId": {
                    "type": "integer",
                    "description": "The ID of the DLM Circuit to which the charge point is added (if any).",
                    "nullable": true,
                    "readOnly": true
                  },
                  "minCurrent": {
                    "type": "number",
                    "description": "minCurrent is always REQUIRED for `user_controlled_schedule`",
                    "nullable": true
                  },
                  "enableKeepAwake": {
                    "type": "boolean",
                    "description": "For personal charge points. Keep the car awake during scheduled periods by continuously charging at a low current / power.",
                    "nullable": true
                  },
                  "maxVoltage": {
                    "type": "string",
                    "enum": [
                      "230",
                      "380",
                      "400",
                      "480",
                      "120",
                      "208",
                      "240",
                      "110-130",
                      "220-240",
                      "277"
                    ]
                  },
                  "electricalConfiguration": {
                    "type": "string",
                    "enum": [
                      "star",
                      "delta"
                    ],
                    "default": "star",
                    "description": "Defines the type of electrical configuration of the charge point. The available options are </br> `star` - Star/Wye (Y) (default)</br> `delta` - Delta (Δ)</br>"
                  },
                  "phases": {
                    "type": "string",
                    "enum": [
                      "single_phase",
                      "three_phase",
                      "split_phase"
                    ]
                  },
                  "phaseRotation": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "RST",
                      "RTS",
                      "SRT",
                      "STR",
                      "TRS",
                      "TSR"
                    ],
                    "description": "`R` stands for `L1`, </br>\n`S` - for `L2` </br>\n`T` - for `L3` </br>\nSo for example `RST` = `L1`, `L2`, `L3`, while `RTS` = `L1`, `L3`, `L2`, etc. </br>\nWe are deriving the connected phase from this property for single phase if connectedPhase is not provided. Please don't rely on this property anymore as this functionality will be turned of in near future. Pass the correct connectedPhase instead. If you pass both properties (connectedPhase and phaseRotation) only connectedPhase will be taken into consideration for determining the phase.\n"
                  },
                  "connectedPhase": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "L1",
                      "L2",
                      "L3",
                      "L1_L2",
                      "L1_L3",
                      "L2_L3"
                    ],
                    "description": "Specifies the active line conductors used in the circuit.\n- `L1_L2` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L2_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L2` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L3` - Valid when `phases` = `single_phase` in electrical configuration `star`\n"
                  },
                  "powerSharing": {
                    "type": "object",
                    "description": "The DC cabinet power-sharing configuration. Properties without configured values are omitted, and power settings are omitted when power sharing is disabled.",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether DC cabinet power sharing is enabled for the charge point."
                      },
                      "managementMode": {
                        "type": "string",
                        "description": "Controls how the charge point allocates cabinet power across its DC outputs.\n\n`static` uses power modules dedicated to individual EVSEs; modules are not dynamically shared between EVSEs.\n`dynamic` shares power modules across EVSEs and allocates cabinet power in discrete steps defined by `moduleSizeKw`.\n",
                        "enum": [
                          "static",
                          "dynamic"
                        ]
                      },
                      "totalCabinetPowerKw": {
                        "type": "integer",
                        "minimum": 1,
                        "description": "Total power available from the DC cabinet, in kilowatts."
                      },
                      "moduleSizeKw": {
                        "type": "integer",
                        "minimum": 1,
                        "description": "Power of one DC cabinet module, in kilowatts."
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  }
                },
                "required": [
                  "mode",
                  "defaultChargePointMaxCurrent",
                  "maxVoltage",
                  "phases",
                  "phaseRotation"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "mode": {
                    "type": "string",
                    "enum": [
                      "user_schedule"
                    ],
                    "description": "`user_schedule` - for personal charge points. The maximum power load will be defined on the EVSE level. The charge point owner could manually create a charging schedule.\n"
                  },
                  "defaultChargePointMaxCurrent": {
                    "type": "number",
                    "multipleOf": 0.1,
                    "description": "In amps. The max current would be used in the algorithm for the smart charging and wherever there is not a max current explicitly set."
                  },
                  "preconditioningTime": {
                    "type": "integer",
                    "description": "The time in minutes before departure when the charging will be performed with full power."
                  },
                  "circuitId": {
                    "type": "integer",
                    "description": "The ID of the DLM Circuit to which the charge point is added (if any).",
                    "nullable": true,
                    "readOnly": true
                  },
                  "minCurrent": {
                    "type": "number",
                    "description": "minCurrent is always REQUIRED for `user_controlled_schedule`",
                    "nullable": true
                  },
                  "enableKeepAwake": {
                    "type": "boolean",
                    "description": "For personal charge points. Keep the car awake during scheduled periods by continuously charging at a low current / power.",
                    "nullable": true
                  },
                  "maxVoltage": {
                    "type": "string",
                    "enum": [
                      "230",
                      "380",
                      "400",
                      "480",
                      "120",
                      "208",
                      "240",
                      "110-130",
                      "220-240",
                      "277"
                    ]
                  },
                  "electricalConfiguration": {
                    "type": "string",
                    "enum": [
                      "star",
                      "delta"
                    ],
                    "default": "star",
                    "description": "Defines the type of electrical configuration of the charge point. The available options are </br> `star` - Star/Wye (Y) (default)</br> `delta` - Delta (Δ)</br>"
                  },
                  "phases": {
                    "type": "string",
                    "enum": [
                      "single_phase",
                      "three_phase",
                      "split_phase"
                    ]
                  },
                  "phaseRotation": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "RST",
                      "RTS",
                      "SRT",
                      "STR",
                      "TRS",
                      "TSR"
                    ],
                    "description": "`R` stands for `L1`, </br>\n`S` - for `L2` </br>\n`T` - for `L3` </br>\nSo for example `RST` = `L1`, `L2`, `L3`, while `RTS` = `L1`, `L3`, `L2`, etc. </br>\nWe are deriving the connected phase from this property for single phase if connectedPhase is not provided. Please don't rely on this property anymore as this functionality will be turned of in near future. Pass the correct connectedPhase instead. If you pass both properties (connectedPhase and phaseRotation) only connectedPhase will be taken into consideration for determining the phase.\n"
                  },
                  "allowDynamicLoadManagement": {
                    "type": "boolean",
                    "description": "When selected, the Charge Point can be added to a DLM circuit."
                  },
                  "connectedPhase": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "L1",
                      "L2",
                      "L3",
                      "L1_L2",
                      "L1_L3",
                      "L2_L3"
                    ],
                    "description": "Specifies the active line conductors used in the circuit.\n- `L1_L2` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L2_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L2` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L3` - Valid when `phases` = `single_phase` in electrical configuration `star`\n"
                  },
                  "powerSharing": {
                    "type": "object",
                    "description": "The DC cabinet power-sharing configuration. Properties without configured values are omitted, and power settings are omitted when power sharing is disabled.",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether DC cabinet power sharing is enabled for the charge point."
                      },
                      "managementMode": {
                        "type": "string",
                        "description": "Controls how the charge point allocates cabinet power across its DC outputs.\n\n`static` uses power modules dedicated to individual EVSEs; modules are not dynamically shared between EVSEs.\n`dynamic` shares power modules across EVSEs and allocates cabinet power in discrete steps defined by `moduleSizeKw`.\n",
                        "enum": [
                          "static",
                          "dynamic"
                        ]
                      },
                      "totalCabinetPowerKw": {
                        "type": "integer",
                        "minimum": 1,
                        "description": "Total power available from the DC cabinet, in kilowatts."
                      },
                      "moduleSizeKw": {
                        "type": "integer",
                        "minimum": 1,
                        "description": "Power of one DC cabinet module, in kilowatts."
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  }
                },
                "required": [
                  "mode",
                  "defaultChargePointMaxCurrent",
                  "minCurrent",
                  "enableKeepAwake",
                  "maxVoltage",
                  "phases",
                  "phaseRotation"
                ]
              },
              {
                "type": "object",
                "properties": {
                  "mode": {
                    "type": "string",
                    "enum": [
                      "disabled"
                    ],
                    "description": "`disabled` - no smart charging is available for the charge point\n"
                  },
                  "preconditioningTime": {
                    "type": "integer",
                    "description": "The time in minutes before departure when the charging will be performed with full power."
                  },
                  "powerSharing": {
                    "type": "object",
                    "description": "The DC cabinet power-sharing configuration. Properties without configured values are omitted, and power settings are omitted when power sharing is disabled.",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether DC cabinet power sharing is enabled for the charge point."
                      },
                      "managementMode": {
                        "type": "string",
                        "description": "Controls how the charge point allocates cabinet power across its DC outputs.\n\n`static` uses power modules dedicated to individual EVSEs; modules are not dynamically shared between EVSEs.\n`dynamic` shares power modules across EVSEs and allocates cabinet power in discrete steps defined by `moduleSizeKw`.\n",
                        "enum": [
                          "static",
                          "dynamic"
                        ]
                      },
                      "totalCabinetPowerKw": {
                        "type": "integer",
                        "minimum": 1,
                        "description": "Total power available from the DC cabinet, in kilowatts."
                      },
                      "moduleSizeKw": {
                        "type": "integer",
                        "minimum": 1,
                        "description": "Power of one DC cabinet module, in kilowatts."
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  }
                },
                "required": [
                  "mode"
                ]
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitsListingDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "name",
                "phases",
                "maxCurrent",
                "chargePoints"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "name": {
                  "type": "string"
                },
                "phases": {
                  "type": "string",
                  "enum": [
                    "1",
                    "3"
                  ]
                },
                "maxCurrent": {
                  "type": "number",
                  "description": "In amps",
                  "multipleOf": 0.1,
                  "minimum": 0
                },
                "minChargePointCurrent": {
                  "type": "number",
                  "description": "In amps. The minimum",
                  "multipleOf": 0.1,
                  "minimum": 0
                },
                "setSessionLimitToZeroOnIdle": {
                  "type": "boolean",
                  "description": "Set charger limit to 0 if an idle period starts",
                  "deprecated": true
                },
                "chargePoints": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "id",
                      "maxCurrent",
                      "phases",
                      "inputVoltage",
                      "phaseRotation"
                    ],
                    "properties": {
                      "id": {
                        "type": "integer"
                      },
                      "maxCurrent": {
                        "type": "number",
                        "description": "in Amps",
                        "multipleOf": 0.1
                      },
                      "phases": {
                        "type": "string",
                        "enum": [
                          "1",
                          "3"
                        ]
                      },
                      "inputVoltage": {
                        "type": "string",
                        "enum": [
                          "110-130",
                          "220-240",
                          "380",
                          "400"
                        ],
                        "description": "use 380/400 for 3-phase connected CPs"
                      },
                      "phaseRotation": {
                        "type": "string",
                        "enum": [
                          "L1",
                          "L2",
                          "L3",
                          "RST",
                          "RTS",
                          "SRT",
                          "STR",
                          "TRS",
                          "TSR"
                        ],
                        "description": "Use L* for single phase CP to note the connected phase"
                      }
                    }
                  }
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "circuitCreateDeprecated": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "name",
              "phases",
              "maxCurrent",
              "chargePoints"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string"
              },
              "phases": {
                "type": "string",
                "enum": [
                  "1",
                  "3"
                ]
              },
              "maxCurrent": {
                "type": "number",
                "description": "In amps",
                "multipleOf": 0.1,
                "minimum": 0
              },
              "minChargePointCurrent": {
                "type": "number",
                "description": "In amps. The minimum",
                "multipleOf": 0.1,
                "minimum": 0
              },
              "setSessionLimitToZeroOnIdle": {
                "type": "boolean",
                "description": "Set charger limit to 0 if an idle period starts",
                "deprecated": true
              },
              "chargePoints": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "maxCurrent",
                    "phases",
                    "inputVoltage",
                    "phaseRotation"
                  ],
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "maxCurrent": {
                      "type": "number",
                      "description": "in Amps",
                      "multipleOf": 0.1
                    },
                    "phases": {
                      "type": "string",
                      "enum": [
                        "1",
                        "3"
                      ]
                    },
                    "inputVoltage": {
                      "type": "string",
                      "enum": [
                        "110-130",
                        "220-240",
                        "380",
                        "400"
                      ],
                      "description": "use 380/400 for 3-phase connected CPs"
                    },
                    "phaseRotation": {
                      "type": "string",
                      "enum": [
                        "L1",
                        "L2",
                        "L3",
                        "RST",
                        "RTS",
                        "SRT",
                        "STR",
                        "TRS",
                        "TSR"
                      ],
                      "description": "Use L* for single phase CP to note the connected phase"
                    }
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitReadDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "name",
              "phases",
              "maxCurrent",
              "chargePoints"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string"
              },
              "phases": {
                "type": "string",
                "enum": [
                  "1",
                  "3"
                ]
              },
              "maxCurrent": {
                "type": "number",
                "description": "In amps",
                "multipleOf": 0.1,
                "minimum": 0
              },
              "minChargePointCurrent": {
                "type": "number",
                "description": "In amps. The minimum",
                "multipleOf": 0.1,
                "minimum": 0
              },
              "setSessionLimitToZeroOnIdle": {
                "type": "boolean",
                "description": "Set charger limit to 0 if an idle period starts",
                "deprecated": true
              },
              "chargePoints": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "maxCurrent",
                    "phases",
                    "inputVoltage",
                    "phaseRotation"
                  ],
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "maxCurrent": {
                      "type": "number",
                      "description": "in Amps",
                      "multipleOf": 0.1
                    },
                    "phases": {
                      "type": "string",
                      "enum": [
                        "1",
                        "3"
                      ]
                    },
                    "inputVoltage": {
                      "type": "string",
                      "enum": [
                        "110-130",
                        "220-240",
                        "380",
                        "400"
                      ],
                      "description": "use 380/400 for 3-phase connected CPs"
                    },
                    "phaseRotation": {
                      "type": "string",
                      "enum": [
                        "L1",
                        "L2",
                        "L3",
                        "RST",
                        "RTS",
                        "SRT",
                        "STR",
                        "TRS",
                        "TSR"
                      ],
                      "description": "Use L* for single phase CP to note the connected phase"
                    }
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitDeleteDeprecated": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitUpdateDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string"
          },
          "phases": {
            "type": "string",
            "enum": [
              "1",
              "3"
            ]
          },
          "maxCurrent": {
            "type": "number",
            "description": "In Amps",
            "multipleOf": 0.1,
            "minimum": 0
          },
          "minChargePointCurrent": {
            "type": "number",
            "description": "In Amps. The minimum",
            "multipleOf": 0.1,
            "minimum": 0
          },
          "setSessionLimitToZeroOnIdle": {
            "type": "boolean",
            "description": "Set charger limit to 0 if an idle period starts",
            "deprecated": true
          },
          "chargePoints": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "maxCurrent",
                "phases",
                "inputVoltage",
                "phaseRotation"
              ],
              "properties": {
                "id": {
                  "type": "integer"
                },
                "maxCurrent": {
                  "type": "number",
                  "description": "in Amps",
                  "multipleOf": 0.1
                },
                "phases": {
                  "type": "string",
                  "enum": [
                    "1",
                    "3"
                  ]
                },
                "inputVoltage": {
                  "type": "string",
                  "enum": [
                    "110-130",
                    "220-240",
                    "380",
                    "400"
                  ],
                  "description": "use 380/400 for 3-phase connected CPs"
                },
                "phaseRotation": {
                  "type": "string",
                  "enum": [
                    "L1",
                    "L2",
                    "L3",
                    "RST",
                    "RTS",
                    "SRT",
                    "STR",
                    "TRS",
                    "TSR"
                  ],
                  "description": "Use L* for single phase CP to note the connected phase"
                }
              }
            }
          },
          "lastUpdatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "ISO 8601 formatted date",
            "readOnly": true
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitConsumptionAllPhasesDeprecated": {
    "200": {
      "schema": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "phase"
          ],
          "properties": {
            "phase": {
              "type": "string",
              "enum": [
                "L1",
                "L2",
                "L3"
              ]
            },
            "consumption": {
              "type": "number",
              "description": "In amps",
              "multipleOf": 0.1
            },
            "lastUpdatedAt": {
              "type": "string",
              "format": "date-time",
              "description": "ISO 8601 formatted date",
              "readOnly": true
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitConsumptionPhaseDeprecated": {
    "200": {
      "schema": {
        "type": "number",
        "description": "In amps",
        "multipleOf": 0.1
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "required": [
                "id",
                "operatorId"
              ],
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "name": {
                  "type": "string"
                },
                "parentCircuitId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "Specify parent circuit in Multi-level DLM. Circuits used in flexibility assets or using load balancing integration can not be used in Multi-level DLM.\n"
                },
                "phases": {
                  "type": "string",
                  "enum": [
                    "single_phase",
                    "three_phase",
                    "split_phase"
                  ]
                },
                "phaseRotation": {
                  "type": "string",
                  "nullable": true,
                  "description": "`R` stands for `L1`, </br>\n`S` - for `L2` </br>\n`T` - for `L3` </br>\nSo for example `RST` = `L1`, `L2`, `L3`, while `RTS` = `L1`, `L3`, `L2`, etc. </br>\nWe are deriving the connected phase from this property for single phase if connectedPhase is not provided. Please don't rely on this property anymore as this functionality will be turned of in near future. Pass the correct connectedPhase instead. If you pass both properties (connectedPhase and phaseRotation) only connectedPhase will be taken into consideration for determining the phase.\n",
                  "enum": [
                    "RST",
                    "RTS",
                    "SRT",
                    "STR",
                    "TRS",
                    "TSR"
                  ]
                },
                "connectedPhase": {
                  "type": "string",
                  "nullable": true,
                  "description": "Specifies the active line conductors used in the circuit.\n- `L1_L2` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L2_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L2` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L3` - Valid when `phases` = `single_phase` in electrical configuration `star`\n",
                  "enum": [
                    "L1",
                    "L2",
                    "L3",
                    "L1_L2",
                    "L1_L3",
                    "L2_L3"
                  ]
                },
                "electricalConfiguration": {
                  "description": "Defines the type of electrical configuration of the charge point. The available options are </br> `star` - Star/Wye (Y) (default)</br> `delta` - Delta (Δ)</br>",
                  "type": "string",
                  "enum": [
                    "star",
                    "delta"
                  ],
                  "default": "star"
                },
                "maxVoltage": {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    "230",
                    "380",
                    "400",
                    "480",
                    "120",
                    "208",
                    "240",
                    "110-130",
                    "220-240",
                    "277"
                  ]
                },
                "maxCurrent": {
                  "type": "number",
                  "description": "The current (A) limit for the whole circuit. This would usually be the circuit breaker rated current.",
                  "multipleOf": 0.1
                },
                "minChargePointCurrent": {
                  "type": "number",
                  "nullable": true,
                  "description": "Defines what is the lowest current (A) allowed per charge point. New sessions cannot start if any of the existing ones has to be lowered to less than the set minimum rate. This is to ensure that a connected car vehicle actually charge because the vehicles have a minimum charging rate below which they would not accept the charge. If left empty, there is no minimum.",
                  "multipleOf": 0.1
                },
                "applyMinimumCurrentOnSessionStart": {
                  "type": "boolean",
                  "default": false,
                  "description": "When enabled, new sessions start at the configured minimum current (minChargePointCurrent). This improves user experience but bypasses initial DLM safety checks. Use with caution: In offline scenarios, the DLM cannot limit the load, creating a high risk of circuit overload. Only enable this option if your site has a stable internet connection and the electrical circuit has significant spare capacity to handle all charge points operating at their minimum current simultaneously.\n"
                },
                "applyFcfsLoadManagementStrategy": {
                  "type": "boolean",
                  "default": false,
                  "description": "When enabled, on charge points with multiple EVSEs, only the first active session receives current. Any other session on the same charge point waits until the first session ends.\n"
                },
                "setSessionLimitToZeroOnIdle": {
                  "type": "boolean",
                  "description": "Sets the limit to 0 when the session enters an idle period.",
                  "deprecated": true
                },
                "electricityMeterId": {
                  "type": "number",
                  "nullable": true,
                  "description": "The ID of the Electricity Meter linked to the circuit (if any)."
                },
                "offlineReservedCurrent": {
                  "type": "number",
                  "nullable": true,
                  "description": "The current (A) reserved for other loads on the circuit (non-managed loads) when the Electricity Meter is offline.",
                  "multipleOf": 0.1
                },
                "loadBalancingIntegration": {
                  "type": "object",
                  "nullable": true,
                  "description": "The selected integration enables the system to receive and apply third-party charging limits to the chargers added in the circuit.",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "nullable": true,
                      "description": "The id of the load balancing integration (can be found in the admin panel). Provide `null` if you want to disable any load balancing integration and revert back to the built-in load balancing."
                    },
                    "fields": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "startDate": {
                              "type": "string",
                              "format": "date",
                              "nullable": true,
                              "example": "2025-02-18",
                              "description": "DREEV specific. Reporting and accepting charging schedules will commence at this date."
                            }
                          }
                        },
                        {
                          "type": "object",
                          "properties": {
                            "installationId": {
                              "type": "string",
                              "format": "uuid",
                              "example": "0194db65-2791-70ae-9575-89959f57d915",
                              "description": "Zaptec specific. Installation ID inside Zaptec system, used for identifying the corresponding circuit."
                            }
                          },
                          "required": [
                            "installationId"
                          ]
                        }
                      ]
                    }
                  }
                },
                "chargePointPriorities": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "readOnly": true
                      },
                      "priority": {
                        "type": "number"
                      },
                      "evses": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "integer"
                            },
                            "priority": {
                              "type": "number"
                            }
                          }
                        }
                      }
                    }
                  },
                  "nullable": true,
                  "readOnly": true
                },
                "userPriorities": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "readOnly": true
                      },
                      "targetId": {
                        "type": "integer",
                        "description": "The ID of the User Group the user must be part of or the ID of the Partner from which the user must have an invite from, for the set priority apply for the session."
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "partner",
                          "userGroup"
                        ]
                      },
                      "priority": {
                        "type": "number",
                        "description": "The priority where 1 is equal to anyone else, 2 is twice as important, 0.5 is half as important.",
                        "multipleOf": 0.1,
                        "format": "float",
                        "minimum": 0
                      }
                    }
                  },
                  "nullable": true,
                  "readOnly": true
                },
                "socPriorities": {
                  "type": "object",
                  "nullable": true,
                  "readOnly": true,
                  "properties": {
                    "upperThresholdPercent": {
                      "type": "number",
                      "nullable": true,
                      "description": "The state of charge (SoC) percentage above which the `highSoCPriority` will be applied. Must have a 5% offset from the `lowerThresholdPercent` (if provided).\nFor example if `lowerThresholdPercent` is set to 50, this can have a value of 55 or higher.\nSetting this to `null` will remove the usage of the `highSoCPriority`.\n",
                      "multipleOf": 5,
                      "minimum": 5,
                      "maximum": 95
                    },
                    "highSoCPriority": {
                      "type": "number",
                      "minimum": 0,
                      "multipleOf": 0.1,
                      "format": "float"
                    },
                    "lowerThresholdPercent": {
                      "type": "number",
                      "nullable": true,
                      "description": "The state of charge (SoC) percentage below which the `lowSoCPriority` will be applied. Must have a 5% offset from the `upperThresholdPercent` (if provided).\nFor example if `upperThresholdPercent ` is set to 50, this can have a value of 45 or lower.\nSetting this to `null` will remove the usage of the `lowSoCPriority`.\n",
                      "multipleOf": 5,
                      "minimum": 5,
                      "maximum": 95
                    },
                    "lowSoCPriority": {
                      "type": "number",
                      "minimum": 0,
                      "multipleOf": 0.1,
                      "format": "float"
                    }
                  }
                },
                "consumption": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "phase"
                    ],
                    "properties": {
                      "phase": {
                        "type": "string",
                        "enum": [
                          "L1",
                          "L2",
                          "L3"
                        ]
                      },
                      "consumption": {
                        "type": "number",
                        "description": "In amps",
                        "multipleOf": 0.1
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      }
                    }
                  },
                  "nullable": true,
                  "readOnly": true
                },
                "unmanagedLoad": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "phase"
                    ],
                    "properties": {
                      "phase": {
                        "type": "string",
                        "enum": [
                          "L1",
                          "L2",
                          "L3"
                        ]
                      },
                      "consumption": {
                        "type": "number",
                        "description": "In amps",
                        "multipleOf": 0.1
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      }
                    }
                  },
                  "nullable": true,
                  "readOnly": true
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "circuitCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string"
              },
              "parentCircuitId": {
                "type": "integer",
                "nullable": true,
                "description": "Specify parent circuit in Multi-level DLM. Circuits used in flexibility assets or using load balancing integration can not be used in Multi-level DLM.\n"
              },
              "phases": {
                "type": "string",
                "enum": [
                  "single_phase",
                  "three_phase",
                  "split_phase"
                ]
              },
              "phaseRotation": {
                "type": "string",
                "nullable": true,
                "description": "`R` stands for `L1`, </br>\n`S` - for `L2` </br>\n`T` - for `L3` </br>\nSo for example `RST` = `L1`, `L2`, `L3`, while `RTS` = `L1`, `L3`, `L2`, etc. </br>\nWe are deriving the connected phase from this property for single phase if connectedPhase is not provided. Please don't rely on this property anymore as this functionality will be turned of in near future. Pass the correct connectedPhase instead. If you pass both properties (connectedPhase and phaseRotation) only connectedPhase will be taken into consideration for determining the phase.\n",
                "enum": [
                  "RST",
                  "RTS",
                  "SRT",
                  "STR",
                  "TRS",
                  "TSR"
                ]
              },
              "connectedPhase": {
                "type": "string",
                "nullable": true,
                "description": "Specifies the active line conductors used in the circuit.\n- `L1_L2` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L2_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L2` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L3` - Valid when `phases` = `single_phase` in electrical configuration `star`\n",
                "enum": [
                  "L1",
                  "L2",
                  "L3",
                  "L1_L2",
                  "L1_L3",
                  "L2_L3"
                ]
              },
              "electricalConfiguration": {
                "description": "Defines the type of electrical configuration of the charge point. The available options are </br> `star` - Star/Wye (Y) (default)</br> `delta` - Delta (Δ)</br>",
                "type": "string",
                "enum": [
                  "star",
                  "delta"
                ],
                "default": "star"
              },
              "maxVoltage": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "230",
                  "380",
                  "400",
                  "480",
                  "120",
                  "208",
                  "240",
                  "110-130",
                  "220-240",
                  "277"
                ]
              },
              "maxCurrent": {
                "type": "number",
                "description": "The current (A) limit for the whole circuit. This would usually be the circuit breaker rated current.",
                "multipleOf": 0.1
              },
              "minChargePointCurrent": {
                "type": "number",
                "nullable": true,
                "description": "Defines what is the lowest current (A) allowed per charge point. New sessions cannot start if any of the existing ones has to be lowered to less than the set minimum rate. This is to ensure that a connected car vehicle actually charge because the vehicles have a minimum charging rate below which they would not accept the charge. If left empty, there is no minimum.",
                "multipleOf": 0.1
              },
              "applyMinimumCurrentOnSessionStart": {
                "type": "boolean",
                "default": false,
                "description": "When enabled, new sessions start at the configured minimum current (minChargePointCurrent). This improves user experience but bypasses initial DLM safety checks. Use with caution: In offline scenarios, the DLM cannot limit the load, creating a high risk of circuit overload. Only enable this option if your site has a stable internet connection and the electrical circuit has significant spare capacity to handle all charge points operating at their minimum current simultaneously.\n"
              },
              "applyFcfsLoadManagementStrategy": {
                "type": "boolean",
                "default": false,
                "description": "When enabled, on charge points with multiple EVSEs, only the first active session receives current. Any other session on the same charge point waits until the first session ends.\n"
              },
              "setSessionLimitToZeroOnIdle": {
                "type": "boolean",
                "description": "Sets the limit to 0 when the session enters an idle period.",
                "deprecated": true
              },
              "electricityMeterId": {
                "type": "number",
                "nullable": true,
                "description": "The ID of the Electricity Meter linked to the circuit (if any)."
              },
              "offlineReservedCurrent": {
                "type": "number",
                "nullable": true,
                "description": "The current (A) reserved for other loads on the circuit (non-managed loads) when the Electricity Meter is offline.",
                "multipleOf": 0.1
              },
              "loadBalancingIntegration": {
                "type": "object",
                "nullable": true,
                "description": "The selected integration enables the system to receive and apply third-party charging limits to the chargers added in the circuit.",
                "properties": {
                  "id": {
                    "type": "integer",
                    "nullable": true,
                    "description": "The id of the load balancing integration (can be found in the admin panel). Provide `null` if you want to disable any load balancing integration and revert back to the built-in load balancing."
                  },
                  "fields": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "startDate": {
                            "type": "string",
                            "format": "date",
                            "nullable": true,
                            "example": "2025-02-18",
                            "description": "DREEV specific. Reporting and accepting charging schedules will commence at this date."
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "installationId": {
                            "type": "string",
                            "format": "uuid",
                            "example": "0194db65-2791-70ae-9575-89959f57d915",
                            "description": "Zaptec specific. Installation ID inside Zaptec system, used for identifying the corresponding circuit."
                          }
                        },
                        "required": [
                          "installationId"
                        ]
                      }
                    ]
                  }
                }
              },
              "chargePointPriorities": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "priority": {
                      "type": "number"
                    },
                    "evses": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer"
                          },
                          "priority": {
                            "type": "number"
                          }
                        }
                      }
                    }
                  }
                },
                "nullable": true,
                "readOnly": true
              },
              "userPriorities": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "targetId": {
                      "type": "integer",
                      "description": "The ID of the User Group the user must be part of or the ID of the Partner from which the user must have an invite from, for the set priority apply for the session."
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "partner",
                        "userGroup"
                      ]
                    },
                    "priority": {
                      "type": "number",
                      "description": "The priority where 1 is equal to anyone else, 2 is twice as important, 0.5 is half as important.",
                      "multipleOf": 0.1,
                      "format": "float",
                      "minimum": 0
                    }
                  }
                },
                "nullable": true,
                "readOnly": true
              },
              "socPriorities": {
                "type": "object",
                "nullable": true,
                "readOnly": true,
                "properties": {
                  "upperThresholdPercent": {
                    "type": "number",
                    "nullable": true,
                    "description": "The state of charge (SoC) percentage above which the `highSoCPriority` will be applied. Must have a 5% offset from the `lowerThresholdPercent` (if provided).\nFor example if `lowerThresholdPercent` is set to 50, this can have a value of 55 or higher.\nSetting this to `null` will remove the usage of the `highSoCPriority`.\n",
                    "multipleOf": 5,
                    "minimum": 5,
                    "maximum": 95
                  },
                  "highSoCPriority": {
                    "type": "number",
                    "minimum": 0,
                    "multipleOf": 0.1,
                    "format": "float"
                  },
                  "lowerThresholdPercent": {
                    "type": "number",
                    "nullable": true,
                    "description": "The state of charge (SoC) percentage below which the `lowSoCPriority` will be applied. Must have a 5% offset from the `upperThresholdPercent` (if provided).\nFor example if `upperThresholdPercent ` is set to 50, this can have a value of 45 or lower.\nSetting this to `null` will remove the usage of the `lowSoCPriority`.\n",
                    "multipleOf": 5,
                    "minimum": 5,
                    "maximum": 95
                  },
                  "lowSoCPriority": {
                    "type": "number",
                    "minimum": 0,
                    "multipleOf": 0.1,
                    "format": "float"
                  }
                }
              },
              "consumption": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "phase"
                  ],
                  "properties": {
                    "phase": {
                      "type": "string",
                      "enum": [
                        "L1",
                        "L2",
                        "L3"
                      ]
                    },
                    "consumption": {
                      "type": "number",
                      "description": "In amps",
                      "multipleOf": 0.1
                    },
                    "lastUpdatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO 8601 formatted date",
                      "readOnly": true
                    }
                  }
                },
                "nullable": true,
                "readOnly": true
              },
              "unmanagedLoad": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "phase"
                  ],
                  "properties": {
                    "phase": {
                      "type": "string",
                      "enum": [
                        "L1",
                        "L2",
                        "L3"
                      ]
                    },
                    "consumption": {
                      "type": "number",
                      "description": "In amps",
                      "multipleOf": 0.1
                    },
                    "lastUpdatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO 8601 formatted date",
                      "readOnly": true
                    }
                  }
                },
                "nullable": true,
                "readOnly": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "circuitRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string"
              },
              "parentCircuitId": {
                "type": "integer",
                "nullable": true,
                "description": "Specify parent circuit in Multi-level DLM. Circuits used in flexibility assets or using load balancing integration can not be used in Multi-level DLM.\n"
              },
              "phases": {
                "type": "string",
                "enum": [
                  "single_phase",
                  "three_phase",
                  "split_phase"
                ]
              },
              "phaseRotation": {
                "type": "string",
                "nullable": true,
                "description": "`R` stands for `L1`, </br>\n`S` - for `L2` </br>\n`T` - for `L3` </br>\nSo for example `RST` = `L1`, `L2`, `L3`, while `RTS` = `L1`, `L3`, `L2`, etc. </br>\nWe are deriving the connected phase from this property for single phase if connectedPhase is not provided. Please don't rely on this property anymore as this functionality will be turned of in near future. Pass the correct connectedPhase instead. If you pass both properties (connectedPhase and phaseRotation) only connectedPhase will be taken into consideration for determining the phase.\n",
                "enum": [
                  "RST",
                  "RTS",
                  "SRT",
                  "STR",
                  "TRS",
                  "TSR"
                ]
              },
              "connectedPhase": {
                "type": "string",
                "nullable": true,
                "description": "Specifies the active line conductors used in the circuit.\n- `L1_L2` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L2_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L2` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L3` - Valid when `phases` = `single_phase` in electrical configuration `star`\n",
                "enum": [
                  "L1",
                  "L2",
                  "L3",
                  "L1_L2",
                  "L1_L3",
                  "L2_L3"
                ]
              },
              "electricalConfiguration": {
                "description": "Defines the type of electrical configuration of the charge point. The available options are </br> `star` - Star/Wye (Y) (default)</br> `delta` - Delta (Δ)</br>",
                "type": "string",
                "enum": [
                  "star",
                  "delta"
                ],
                "default": "star"
              },
              "maxVoltage": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "230",
                  "380",
                  "400",
                  "480",
                  "120",
                  "208",
                  "240",
                  "110-130",
                  "220-240",
                  "277"
                ]
              },
              "maxCurrent": {
                "type": "number",
                "description": "The current (A) limit for the whole circuit. This would usually be the circuit breaker rated current.",
                "multipleOf": 0.1
              },
              "minChargePointCurrent": {
                "type": "number",
                "nullable": true,
                "description": "Defines what is the lowest current (A) allowed per charge point. New sessions cannot start if any of the existing ones has to be lowered to less than the set minimum rate. This is to ensure that a connected car vehicle actually charge because the vehicles have a minimum charging rate below which they would not accept the charge. If left empty, there is no minimum.",
                "multipleOf": 0.1
              },
              "applyMinimumCurrentOnSessionStart": {
                "type": "boolean",
                "default": false,
                "description": "When enabled, new sessions start at the configured minimum current (minChargePointCurrent). This improves user experience but bypasses initial DLM safety checks. Use with caution: In offline scenarios, the DLM cannot limit the load, creating a high risk of circuit overload. Only enable this option if your site has a stable internet connection and the electrical circuit has significant spare capacity to handle all charge points operating at their minimum current simultaneously.\n"
              },
              "applyFcfsLoadManagementStrategy": {
                "type": "boolean",
                "default": false,
                "description": "When enabled, on charge points with multiple EVSEs, only the first active session receives current. Any other session on the same charge point waits until the first session ends.\n"
              },
              "setSessionLimitToZeroOnIdle": {
                "type": "boolean",
                "description": "Sets the limit to 0 when the session enters an idle period.",
                "deprecated": true
              },
              "electricityMeterId": {
                "type": "number",
                "nullable": true,
                "description": "The ID of the Electricity Meter linked to the circuit (if any)."
              },
              "offlineReservedCurrent": {
                "type": "number",
                "nullable": true,
                "description": "The current (A) reserved for other loads on the circuit (non-managed loads) when the Electricity Meter is offline.",
                "multipleOf": 0.1
              },
              "loadBalancingIntegration": {
                "type": "object",
                "nullable": true,
                "description": "The selected integration enables the system to receive and apply third-party charging limits to the chargers added in the circuit.",
                "properties": {
                  "id": {
                    "type": "integer",
                    "nullable": true,
                    "description": "The id of the load balancing integration (can be found in the admin panel). Provide `null` if you want to disable any load balancing integration and revert back to the built-in load balancing."
                  },
                  "fields": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "startDate": {
                            "type": "string",
                            "format": "date",
                            "nullable": true,
                            "example": "2025-02-18",
                            "description": "DREEV specific. Reporting and accepting charging schedules will commence at this date."
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "installationId": {
                            "type": "string",
                            "format": "uuid",
                            "example": "0194db65-2791-70ae-9575-89959f57d915",
                            "description": "Zaptec specific. Installation ID inside Zaptec system, used for identifying the corresponding circuit."
                          }
                        },
                        "required": [
                          "installationId"
                        ]
                      }
                    ]
                  }
                }
              },
              "chargePointPriorities": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "priority": {
                      "type": "number"
                    },
                    "evses": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer"
                          },
                          "priority": {
                            "type": "number"
                          }
                        }
                      }
                    }
                  }
                },
                "nullable": true,
                "readOnly": true
              },
              "userPriorities": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "targetId": {
                      "type": "integer",
                      "description": "The ID of the User Group the user must be part of or the ID of the Partner from which the user must have an invite from, for the set priority apply for the session."
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "partner",
                        "userGroup"
                      ]
                    },
                    "priority": {
                      "type": "number",
                      "description": "The priority where 1 is equal to anyone else, 2 is twice as important, 0.5 is half as important.",
                      "multipleOf": 0.1,
                      "format": "float",
                      "minimum": 0
                    }
                  }
                },
                "nullable": true,
                "readOnly": true
              },
              "socPriorities": {
                "type": "object",
                "nullable": true,
                "readOnly": true,
                "properties": {
                  "upperThresholdPercent": {
                    "type": "number",
                    "nullable": true,
                    "description": "The state of charge (SoC) percentage above which the `highSoCPriority` will be applied. Must have a 5% offset from the `lowerThresholdPercent` (if provided).\nFor example if `lowerThresholdPercent` is set to 50, this can have a value of 55 or higher.\nSetting this to `null` will remove the usage of the `highSoCPriority`.\n",
                    "multipleOf": 5,
                    "minimum": 5,
                    "maximum": 95
                  },
                  "highSoCPriority": {
                    "type": "number",
                    "minimum": 0,
                    "multipleOf": 0.1,
                    "format": "float"
                  },
                  "lowerThresholdPercent": {
                    "type": "number",
                    "nullable": true,
                    "description": "The state of charge (SoC) percentage below which the `lowSoCPriority` will be applied. Must have a 5% offset from the `upperThresholdPercent` (if provided).\nFor example if `upperThresholdPercent ` is set to 50, this can have a value of 45 or lower.\nSetting this to `null` will remove the usage of the `lowSoCPriority`.\n",
                    "multipleOf": 5,
                    "minimum": 5,
                    "maximum": 95
                  },
                  "lowSoCPriority": {
                    "type": "number",
                    "minimum": 0,
                    "multipleOf": 0.1,
                    "format": "float"
                  }
                }
              },
              "consumption": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "phase"
                  ],
                  "properties": {
                    "phase": {
                      "type": "string",
                      "enum": [
                        "L1",
                        "L2",
                        "L3"
                      ]
                    },
                    "consumption": {
                      "type": "number",
                      "description": "In amps",
                      "multipleOf": 0.1
                    },
                    "lastUpdatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO 8601 formatted date",
                      "readOnly": true
                    }
                  }
                },
                "nullable": true,
                "readOnly": true
              },
              "unmanagedLoad": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "phase"
                  ],
                  "properties": {
                    "phase": {
                      "type": "string",
                      "enum": [
                        "L1",
                        "L2",
                        "L3"
                      ]
                    },
                    "consumption": {
                      "type": "number",
                      "description": "In amps",
                      "multipleOf": 0.1
                    },
                    "lastUpdatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO 8601 formatted date",
                      "readOnly": true
                    }
                  }
                },
                "nullable": true,
                "readOnly": true
              },
              "schedule": {
                "type": "object",
                "nullable": true,
                "readOnly": true,
                "properties": {
                  "scheduleType": {
                    "type": "string",
                    "enum": [
                      "daily",
                      "weekly"
                    ],
                    "description": "Schedule type for time-based current reduction:\n- **daily**: Same schedule periods apply every day\n- **weekly**: Different schedule periods can be configured for each day of the week\n"
                  },
                  "schedule": {
                    "description": "Schedule configuration for time-based current reduction. The structure depends on scheduleType:\n- When scheduleType is `daily`: An array of time periods that apply every day.\n- When scheduleType is `weekly`: An object with day-of-week keys (monday through sunday), each containing an array of time periods.\nPeriods within a day must not overlap and cannot span midnight.\n",
                    "oneOf": [
                      {
                        "type": "array",
                        "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                        "items": {
                          "type": "object",
                          "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                          "properties": {
                            "start": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "Start time of the period in HH:MM format (24-hour).",
                              "example": "08:00"
                            },
                            "end": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                              "example": "18:00"
                            },
                            "maxCurrent": {
                              "type": "number",
                              "multipleOf": 0.1,
                              "minimum": 0,
                              "format": "float",
                              "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                              "example": 16
                            }
                          },
                          "required": [
                            "start",
                            "end",
                            "maxCurrent"
                          ]
                        }
                      },
                      {
                        "type": "object",
                        "description": "A weekly schedule with separate time periods for each day of the week.\nEach day can have multiple non-overlapping periods. All days must be provided, even if empty.\n",
                        "properties": {
                          "monday": {
                            "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                              "properties": {
                                "start": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "Start time of the period in HH:MM format (24-hour).",
                                  "example": "08:00"
                                },
                                "end": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                                  "example": "18:00"
                                },
                                "maxCurrent": {
                                  "type": "number",
                                  "multipleOf": 0.1,
                                  "minimum": 0,
                                  "format": "float",
                                  "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                                  "example": 16
                                }
                              },
                              "required": [
                                "start",
                                "end",
                                "maxCurrent"
                              ]
                            }
                          },
                          "tuesday": {
                            "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                              "properties": {
                                "start": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "Start time of the period in HH:MM format (24-hour).",
                                  "example": "08:00"
                                },
                                "end": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                                  "example": "18:00"
                                },
                                "maxCurrent": {
                                  "type": "number",
                                  "multipleOf": 0.1,
                                  "minimum": 0,
                                  "format": "float",
                                  "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                                  "example": 16
                                }
                              },
                              "required": [
                                "start",
                                "end",
                                "maxCurrent"
                              ]
                            }
                          },
                          "wednesday": {
                            "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                              "properties": {
                                "start": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "Start time of the period in HH:MM format (24-hour).",
                                  "example": "08:00"
                                },
                                "end": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                                  "example": "18:00"
                                },
                                "maxCurrent": {
                                  "type": "number",
                                  "multipleOf": 0.1,
                                  "minimum": 0,
                                  "format": "float",
                                  "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                                  "example": 16
                                }
                              },
                              "required": [
                                "start",
                                "end",
                                "maxCurrent"
                              ]
                            }
                          },
                          "thursday": {
                            "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                              "properties": {
                                "start": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "Start time of the period in HH:MM format (24-hour).",
                                  "example": "08:00"
                                },
                                "end": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                                  "example": "18:00"
                                },
                                "maxCurrent": {
                                  "type": "number",
                                  "multipleOf": 0.1,
                                  "minimum": 0,
                                  "format": "float",
                                  "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                                  "example": 16
                                }
                              },
                              "required": [
                                "start",
                                "end",
                                "maxCurrent"
                              ]
                            }
                          },
                          "friday": {
                            "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                              "properties": {
                                "start": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "Start time of the period in HH:MM format (24-hour).",
                                  "example": "08:00"
                                },
                                "end": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                                  "example": "18:00"
                                },
                                "maxCurrent": {
                                  "type": "number",
                                  "multipleOf": 0.1,
                                  "minimum": 0,
                                  "format": "float",
                                  "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                                  "example": 16
                                }
                              },
                              "required": [
                                "start",
                                "end",
                                "maxCurrent"
                              ]
                            }
                          },
                          "saturday": {
                            "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                              "properties": {
                                "start": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "Start time of the period in HH:MM format (24-hour).",
                                  "example": "08:00"
                                },
                                "end": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                                  "example": "18:00"
                                },
                                "maxCurrent": {
                                  "type": "number",
                                  "multipleOf": 0.1,
                                  "minimum": 0,
                                  "format": "float",
                                  "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                                  "example": 16
                                }
                              },
                              "required": [
                                "start",
                                "end",
                                "maxCurrent"
                              ]
                            }
                          },
                          "sunday": {
                            "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                              "properties": {
                                "start": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "Start time of the period in HH:MM format (24-hour).",
                                  "example": "08:00"
                                },
                                "end": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                                  "example": "18:00"
                                },
                                "maxCurrent": {
                                  "type": "number",
                                  "multipleOf": 0.1,
                                  "minimum": 0,
                                  "format": "float",
                                  "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                                  "example": 16
                                }
                              },
                              "required": [
                                "start",
                                "end",
                                "maxCurrent"
                              ]
                            }
                          }
                        },
                        "required": [
                          "monday",
                          "tuesday",
                          "wednesday",
                          "thursday",
                          "friday",
                          "saturday",
                          "sunday"
                        ]
                      }
                    ]
                  },
                  "scheduleLimitUnit": {
                    "description": "Unit for interpreting schedule period `maxCurrent` values, and the upper bound that applies to each period:\n- **amps**: Per-phase amperes (A); must not exceed the circuit's `maxCurrent`.\n- **kilowatts**: Total kilowatts (kW); must not exceed the circuit's derived kW capacity computed from `maxCurrent × phases × maxVoltage`.\n",
                    "type": "string",
                    "enum": [
                      "amps",
                      "kilowatts"
                    ]
                  }
                },
                "required": [
                  "scheduleType",
                  "schedule"
                ]
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string"
              },
              "parentCircuitId": {
                "type": "integer",
                "nullable": true,
                "description": "Specify parent circuit in Multi-level DLM. Circuits used in flexibility assets or using load balancing integration can not be used in Multi-level DLM.\n"
              },
              "phases": {
                "type": "string",
                "enum": [
                  "single_phase",
                  "three_phase",
                  "split_phase"
                ]
              },
              "phaseRotation": {
                "type": "string",
                "nullable": true,
                "description": "`R` stands for `L1`, </br>\n`S` - for `L2` </br>\n`T` - for `L3` </br>\nSo for example `RST` = `L1`, `L2`, `L3`, while `RTS` = `L1`, `L3`, `L2`, etc. </br>\nWe are deriving the connected phase from this property for single phase if connectedPhase is not provided. Please don't rely on this property anymore as this functionality will be turned of in near future. Pass the correct connectedPhase instead. If you pass both properties (connectedPhase and phaseRotation) only connectedPhase will be taken into consideration for determining the phase.\n",
                "enum": [
                  "RST",
                  "RTS",
                  "SRT",
                  "STR",
                  "TRS",
                  "TSR"
                ]
              },
              "connectedPhase": {
                "type": "string",
                "nullable": true,
                "description": "Specifies the active line conductors used in the circuit.\n- `L1_L2` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L2_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L2` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L3` - Valid when `phases` = `single_phase` in electrical configuration `star`\n",
                "enum": [
                  "L1",
                  "L2",
                  "L3",
                  "L1_L2",
                  "L1_L3",
                  "L2_L3"
                ]
              },
              "electricalConfiguration": {
                "description": "Defines the type of electrical configuration of the charge point. The available options are </br> `star` - Star/Wye (Y) (default)</br> `delta` - Delta (Δ)</br>",
                "type": "string",
                "enum": [
                  "star",
                  "delta"
                ],
                "default": "star"
              },
              "maxVoltage": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "230",
                  "380",
                  "400",
                  "480",
                  "120",
                  "208",
                  "240",
                  "110-130",
                  "220-240",
                  "277"
                ]
              },
              "maxCurrent": {
                "type": "number",
                "description": "The current (A) limit for the whole circuit. This would usually be the circuit breaker rated current.",
                "multipleOf": 0.1
              },
              "minChargePointCurrent": {
                "type": "number",
                "nullable": true,
                "description": "Defines what is the lowest current (A) allowed per charge point. New sessions cannot start if any of the existing ones has to be lowered to less than the set minimum rate. This is to ensure that a connected car vehicle actually charge because the vehicles have a minimum charging rate below which they would not accept the charge. If left empty, there is no minimum.",
                "multipleOf": 0.1
              },
              "applyMinimumCurrentOnSessionStart": {
                "type": "boolean",
                "default": false,
                "description": "When enabled, new sessions start at the configured minimum current (minChargePointCurrent). This improves user experience but bypasses initial DLM safety checks. Use with caution: In offline scenarios, the DLM cannot limit the load, creating a high risk of circuit overload. Only enable this option if your site has a stable internet connection and the electrical circuit has significant spare capacity to handle all charge points operating at their minimum current simultaneously.\n"
              },
              "applyFcfsLoadManagementStrategy": {
                "type": "boolean",
                "default": false,
                "description": "When enabled, on charge points with multiple EVSEs, only the first active session receives current. Any other session on the same charge point waits until the first session ends.\n"
              },
              "setSessionLimitToZeroOnIdle": {
                "type": "boolean",
                "description": "Sets the limit to 0 when the session enters an idle period.",
                "deprecated": true
              },
              "electricityMeterId": {
                "type": "number",
                "nullable": true,
                "description": "The ID of the Electricity Meter linked to the circuit (if any)."
              },
              "offlineReservedCurrent": {
                "type": "number",
                "nullable": true,
                "description": "The current (A) reserved for other loads on the circuit (non-managed loads) when the Electricity Meter is offline.",
                "multipleOf": 0.1
              },
              "loadBalancingIntegration": {
                "type": "object",
                "nullable": true,
                "description": "The selected integration enables the system to receive and apply third-party charging limits to the chargers added in the circuit.",
                "properties": {
                  "id": {
                    "type": "integer",
                    "nullable": true,
                    "description": "The id of the load balancing integration (can be found in the admin panel). Provide `null` if you want to disable any load balancing integration and revert back to the built-in load balancing."
                  },
                  "fields": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "startDate": {
                            "type": "string",
                            "format": "date",
                            "nullable": true,
                            "example": "2025-02-18",
                            "description": "DREEV specific. Reporting and accepting charging schedules will commence at this date."
                          }
                        }
                      },
                      {
                        "type": "object",
                        "properties": {
                          "installationId": {
                            "type": "string",
                            "format": "uuid",
                            "example": "0194db65-2791-70ae-9575-89959f57d915",
                            "description": "Zaptec specific. Installation ID inside Zaptec system, used for identifying the corresponding circuit."
                          }
                        },
                        "required": [
                          "installationId"
                        ]
                      }
                    ]
                  }
                }
              },
              "chargePointPriorities": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "priority": {
                      "type": "number"
                    },
                    "evses": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer"
                          },
                          "priority": {
                            "type": "number"
                          }
                        }
                      }
                    }
                  }
                },
                "nullable": true,
                "readOnly": true
              },
              "userPriorities": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "targetId": {
                      "type": "integer",
                      "description": "The ID of the User Group the user must be part of or the ID of the Partner from which the user must have an invite from, for the set priority apply for the session."
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "partner",
                        "userGroup"
                      ]
                    },
                    "priority": {
                      "type": "number",
                      "description": "The priority where 1 is equal to anyone else, 2 is twice as important, 0.5 is half as important.",
                      "multipleOf": 0.1,
                      "format": "float",
                      "minimum": 0
                    }
                  }
                },
                "nullable": true,
                "readOnly": true
              },
              "socPriorities": {
                "type": "object",
                "nullable": true,
                "readOnly": true,
                "properties": {
                  "upperThresholdPercent": {
                    "type": "number",
                    "nullable": true,
                    "description": "The state of charge (SoC) percentage above which the `highSoCPriority` will be applied. Must have a 5% offset from the `lowerThresholdPercent` (if provided).\nFor example if `lowerThresholdPercent` is set to 50, this can have a value of 55 or higher.\nSetting this to `null` will remove the usage of the `highSoCPriority`.\n",
                    "multipleOf": 5,
                    "minimum": 5,
                    "maximum": 95
                  },
                  "highSoCPriority": {
                    "type": "number",
                    "minimum": 0,
                    "multipleOf": 0.1,
                    "format": "float"
                  },
                  "lowerThresholdPercent": {
                    "type": "number",
                    "nullable": true,
                    "description": "The state of charge (SoC) percentage below which the `lowSoCPriority` will be applied. Must have a 5% offset from the `upperThresholdPercent` (if provided).\nFor example if `upperThresholdPercent ` is set to 50, this can have a value of 45 or lower.\nSetting this to `null` will remove the usage of the `lowSoCPriority`.\n",
                    "multipleOf": 5,
                    "minimum": 5,
                    "maximum": 95
                  },
                  "lowSoCPriority": {
                    "type": "number",
                    "minimum": 0,
                    "multipleOf": 0.1,
                    "format": "float"
                  }
                }
              },
              "consumption": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "phase"
                  ],
                  "properties": {
                    "phase": {
                      "type": "string",
                      "enum": [
                        "L1",
                        "L2",
                        "L3"
                      ]
                    },
                    "consumption": {
                      "type": "number",
                      "description": "In amps",
                      "multipleOf": 0.1
                    },
                    "lastUpdatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO 8601 formatted date",
                      "readOnly": true
                    }
                  }
                },
                "nullable": true,
                "readOnly": true
              },
              "unmanagedLoad": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "phase"
                  ],
                  "properties": {
                    "phase": {
                      "type": "string",
                      "enum": [
                        "L1",
                        "L2",
                        "L3"
                      ]
                    },
                    "consumption": {
                      "type": "number",
                      "description": "In amps",
                      "multipleOf": 0.1
                    },
                    "lastUpdatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO 8601 formatted date",
                      "readOnly": true
                    }
                  }
                },
                "nullable": true,
                "readOnly": true
              },
              "schedule": {
                "type": "object",
                "nullable": true,
                "readOnly": true,
                "properties": {
                  "scheduleType": {
                    "type": "string",
                    "enum": [
                      "daily",
                      "weekly"
                    ],
                    "description": "Schedule type for time-based current reduction:\n- **daily**: Same schedule periods apply every day\n- **weekly**: Different schedule periods can be configured for each day of the week\n"
                  },
                  "schedule": {
                    "description": "Schedule configuration for time-based current reduction. The structure depends on scheduleType:\n- When scheduleType is `daily`: An array of time periods that apply every day.\n- When scheduleType is `weekly`: An object with day-of-week keys (monday through sunday), each containing an array of time periods.\nPeriods within a day must not overlap and cannot span midnight.\n",
                    "oneOf": [
                      {
                        "type": "array",
                        "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                        "items": {
                          "type": "object",
                          "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                          "properties": {
                            "start": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "Start time of the period in HH:MM format (24-hour).",
                              "example": "08:00"
                            },
                            "end": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                              "example": "18:00"
                            },
                            "maxCurrent": {
                              "type": "number",
                              "multipleOf": 0.1,
                              "minimum": 0,
                              "format": "float",
                              "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                              "example": 16
                            }
                          },
                          "required": [
                            "start",
                            "end",
                            "maxCurrent"
                          ]
                        }
                      },
                      {
                        "type": "object",
                        "description": "A weekly schedule with separate time periods for each day of the week.\nEach day can have multiple non-overlapping periods. All days must be provided, even if empty.\n",
                        "properties": {
                          "monday": {
                            "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                              "properties": {
                                "start": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "Start time of the period in HH:MM format (24-hour).",
                                  "example": "08:00"
                                },
                                "end": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                                  "example": "18:00"
                                },
                                "maxCurrent": {
                                  "type": "number",
                                  "multipleOf": 0.1,
                                  "minimum": 0,
                                  "format": "float",
                                  "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                                  "example": 16
                                }
                              },
                              "required": [
                                "start",
                                "end",
                                "maxCurrent"
                              ]
                            }
                          },
                          "tuesday": {
                            "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                              "properties": {
                                "start": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "Start time of the period in HH:MM format (24-hour).",
                                  "example": "08:00"
                                },
                                "end": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                                  "example": "18:00"
                                },
                                "maxCurrent": {
                                  "type": "number",
                                  "multipleOf": 0.1,
                                  "minimum": 0,
                                  "format": "float",
                                  "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                                  "example": 16
                                }
                              },
                              "required": [
                                "start",
                                "end",
                                "maxCurrent"
                              ]
                            }
                          },
                          "wednesday": {
                            "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                              "properties": {
                                "start": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "Start time of the period in HH:MM format (24-hour).",
                                  "example": "08:00"
                                },
                                "end": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                                  "example": "18:00"
                                },
                                "maxCurrent": {
                                  "type": "number",
                                  "multipleOf": 0.1,
                                  "minimum": 0,
                                  "format": "float",
                                  "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                                  "example": 16
                                }
                              },
                              "required": [
                                "start",
                                "end",
                                "maxCurrent"
                              ]
                            }
                          },
                          "thursday": {
                            "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                              "properties": {
                                "start": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "Start time of the period in HH:MM format (24-hour).",
                                  "example": "08:00"
                                },
                                "end": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                                  "example": "18:00"
                                },
                                "maxCurrent": {
                                  "type": "number",
                                  "multipleOf": 0.1,
                                  "minimum": 0,
                                  "format": "float",
                                  "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                                  "example": 16
                                }
                              },
                              "required": [
                                "start",
                                "end",
                                "maxCurrent"
                              ]
                            }
                          },
                          "friday": {
                            "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                              "properties": {
                                "start": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "Start time of the period in HH:MM format (24-hour).",
                                  "example": "08:00"
                                },
                                "end": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                                  "example": "18:00"
                                },
                                "maxCurrent": {
                                  "type": "number",
                                  "multipleOf": 0.1,
                                  "minimum": 0,
                                  "format": "float",
                                  "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                                  "example": 16
                                }
                              },
                              "required": [
                                "start",
                                "end",
                                "maxCurrent"
                              ]
                            }
                          },
                          "saturday": {
                            "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                              "properties": {
                                "start": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "Start time of the period in HH:MM format (24-hour).",
                                  "example": "08:00"
                                },
                                "end": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                                  "example": "18:00"
                                },
                                "maxCurrent": {
                                  "type": "number",
                                  "multipleOf": 0.1,
                                  "minimum": 0,
                                  "format": "float",
                                  "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                                  "example": 16
                                }
                              },
                              "required": [
                                "start",
                                "end",
                                "maxCurrent"
                              ]
                            }
                          },
                          "sunday": {
                            "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                              "properties": {
                                "start": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "Start time of the period in HH:MM format (24-hour).",
                                  "example": "08:00"
                                },
                                "end": {
                                  "type": "string",
                                  "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                                  "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                                  "example": "18:00"
                                },
                                "maxCurrent": {
                                  "type": "number",
                                  "multipleOf": 0.1,
                                  "minimum": 0,
                                  "format": "float",
                                  "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                                  "example": 16
                                }
                              },
                              "required": [
                                "start",
                                "end",
                                "maxCurrent"
                              ]
                            }
                          }
                        },
                        "required": [
                          "monday",
                          "tuesday",
                          "wednesday",
                          "thursday",
                          "friday",
                          "saturday",
                          "sunday"
                        ]
                      }
                    ]
                  },
                  "scheduleLimitUnit": {
                    "description": "Unit for interpreting schedule period `maxCurrent` values, and the upper bound that applies to each period:\n- **amps**: Per-phase amperes (A); must not exceed the circuit's `maxCurrent`.\n- **kilowatts**: Total kilowatts (kW); must not exceed the circuit's derived kW capacity computed from `maxCurrent × phases × maxVoltage`.\n",
                    "type": "string",
                    "enum": [
                      "amps",
                      "kilowatts"
                    ]
                  }
                },
                "required": [
                  "scheduleType",
                  "schedule"
                ]
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "circuitChargePointPrioritiesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "priority": {
                  "type": "number"
                },
                "evses": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer"
                      },
                      "priority": {
                        "type": "number"
                      }
                    }
                  }
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitConsumption": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "phase"
              ],
              "properties": {
                "phase": {
                  "type": "string",
                  "enum": [
                    "L1",
                    "L2",
                    "L3"
                  ]
                },
                "consumption": {
                  "type": "number",
                  "description": "In amps",
                  "multipleOf": 0.1
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "circuitScheduleRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "scheduleType": {
                "type": "string",
                "enum": [
                  "daily",
                  "weekly"
                ],
                "description": "Schedule type for time-based current reduction:\n- **daily**: Same schedule periods apply every day\n- **weekly**: Different schedule periods can be configured for each day of the week\n"
              },
              "schedule": {
                "description": "Schedule configuration for time-based current reduction. The structure depends on scheduleType:\n- When scheduleType is `daily`: An array of time periods that apply every day.\n- When scheduleType is `weekly`: An object with day-of-week keys (monday through sunday), each containing an array of time periods.\nPeriods within a day must not overlap and cannot span midnight.\n",
                "oneOf": [
                  {
                    "type": "array",
                    "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                    "items": {
                      "type": "object",
                      "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                      "properties": {
                        "start": {
                          "type": "string",
                          "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                          "description": "Start time of the period in HH:MM format (24-hour).",
                          "example": "08:00"
                        },
                        "end": {
                          "type": "string",
                          "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                          "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                          "example": "18:00"
                        },
                        "maxCurrent": {
                          "type": "number",
                          "multipleOf": 0.1,
                          "minimum": 0,
                          "format": "float",
                          "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                          "example": 16
                        }
                      },
                      "required": [
                        "start",
                        "end",
                        "maxCurrent"
                      ]
                    }
                  },
                  {
                    "type": "object",
                    "description": "A weekly schedule with separate time periods for each day of the week.\nEach day can have multiple non-overlapping periods. All days must be provided, even if empty.\n",
                    "properties": {
                      "monday": {
                        "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                          "properties": {
                            "start": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "Start time of the period in HH:MM format (24-hour).",
                              "example": "08:00"
                            },
                            "end": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                              "example": "18:00"
                            },
                            "maxCurrent": {
                              "type": "number",
                              "multipleOf": 0.1,
                              "minimum": 0,
                              "format": "float",
                              "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                              "example": 16
                            }
                          },
                          "required": [
                            "start",
                            "end",
                            "maxCurrent"
                          ]
                        }
                      },
                      "tuesday": {
                        "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                          "properties": {
                            "start": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "Start time of the period in HH:MM format (24-hour).",
                              "example": "08:00"
                            },
                            "end": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                              "example": "18:00"
                            },
                            "maxCurrent": {
                              "type": "number",
                              "multipleOf": 0.1,
                              "minimum": 0,
                              "format": "float",
                              "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                              "example": 16
                            }
                          },
                          "required": [
                            "start",
                            "end",
                            "maxCurrent"
                          ]
                        }
                      },
                      "wednesday": {
                        "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                          "properties": {
                            "start": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "Start time of the period in HH:MM format (24-hour).",
                              "example": "08:00"
                            },
                            "end": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                              "example": "18:00"
                            },
                            "maxCurrent": {
                              "type": "number",
                              "multipleOf": 0.1,
                              "minimum": 0,
                              "format": "float",
                              "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                              "example": 16
                            }
                          },
                          "required": [
                            "start",
                            "end",
                            "maxCurrent"
                          ]
                        }
                      },
                      "thursday": {
                        "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                          "properties": {
                            "start": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "Start time of the period in HH:MM format (24-hour).",
                              "example": "08:00"
                            },
                            "end": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                              "example": "18:00"
                            },
                            "maxCurrent": {
                              "type": "number",
                              "multipleOf": 0.1,
                              "minimum": 0,
                              "format": "float",
                              "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                              "example": 16
                            }
                          },
                          "required": [
                            "start",
                            "end",
                            "maxCurrent"
                          ]
                        }
                      },
                      "friday": {
                        "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                          "properties": {
                            "start": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "Start time of the period in HH:MM format (24-hour).",
                              "example": "08:00"
                            },
                            "end": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                              "example": "18:00"
                            },
                            "maxCurrent": {
                              "type": "number",
                              "multipleOf": 0.1,
                              "minimum": 0,
                              "format": "float",
                              "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                              "example": 16
                            }
                          },
                          "required": [
                            "start",
                            "end",
                            "maxCurrent"
                          ]
                        }
                      },
                      "saturday": {
                        "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                          "properties": {
                            "start": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "Start time of the period in HH:MM format (24-hour).",
                              "example": "08:00"
                            },
                            "end": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                              "example": "18:00"
                            },
                            "maxCurrent": {
                              "type": "number",
                              "multipleOf": 0.1,
                              "minimum": 0,
                              "format": "float",
                              "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                              "example": 16
                            }
                          },
                          "required": [
                            "start",
                            "end",
                            "maxCurrent"
                          ]
                        }
                      },
                      "sunday": {
                        "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                          "properties": {
                            "start": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "Start time of the period in HH:MM format (24-hour).",
                              "example": "08:00"
                            },
                            "end": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                              "example": "18:00"
                            },
                            "maxCurrent": {
                              "type": "number",
                              "multipleOf": 0.1,
                              "minimum": 0,
                              "format": "float",
                              "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                              "example": 16
                            }
                          },
                          "required": [
                            "start",
                            "end",
                            "maxCurrent"
                          ]
                        }
                      }
                    },
                    "required": [
                      "monday",
                      "tuesday",
                      "wednesday",
                      "thursday",
                      "friday",
                      "saturday",
                      "sunday"
                    ]
                  }
                ]
              },
              "scheduleLimitUnit": {
                "description": "Unit for interpreting schedule period `maxCurrent` values, and the upper bound that applies to each period:\n- **amps**: Per-phase amperes (A); must not exceed the circuit's `maxCurrent`.\n- **kilowatts**: Total kilowatts (kW); must not exceed the circuit's derived kW capacity computed from `maxCurrent × phases × maxVoltage`.\n",
                "type": "string",
                "enum": [
                  "amps",
                  "kilowatts"
                ]
              }
            },
            "required": [
              "scheduleType",
              "schedule"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "circuitScheduleCreateOrUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "scheduleType": {
                "type": "string",
                "enum": [
                  "daily",
                  "weekly"
                ],
                "description": "Schedule type for time-based current reduction:\n- **daily**: Same schedule periods apply every day\n- **weekly**: Different schedule periods can be configured for each day of the week\n"
              },
              "schedule": {
                "description": "Schedule configuration for time-based current reduction. The structure depends on scheduleType:\n- When scheduleType is `daily`: An array of time periods that apply every day.\n- When scheduleType is `weekly`: An object with day-of-week keys (monday through sunday), each containing an array of time periods.\nPeriods within a day must not overlap and cannot span midnight.\n",
                "oneOf": [
                  {
                    "type": "array",
                    "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                    "items": {
                      "type": "object",
                      "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                      "properties": {
                        "start": {
                          "type": "string",
                          "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                          "description": "Start time of the period in HH:MM format (24-hour).",
                          "example": "08:00"
                        },
                        "end": {
                          "type": "string",
                          "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                          "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                          "example": "18:00"
                        },
                        "maxCurrent": {
                          "type": "number",
                          "multipleOf": 0.1,
                          "minimum": 0,
                          "format": "float",
                          "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                          "example": 16
                        }
                      },
                      "required": [
                        "start",
                        "end",
                        "maxCurrent"
                      ]
                    }
                  },
                  {
                    "type": "object",
                    "description": "A weekly schedule with separate time periods for each day of the week.\nEach day can have multiple non-overlapping periods. All days must be provided, even if empty.\n",
                    "properties": {
                      "monday": {
                        "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                          "properties": {
                            "start": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "Start time of the period in HH:MM format (24-hour).",
                              "example": "08:00"
                            },
                            "end": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                              "example": "18:00"
                            },
                            "maxCurrent": {
                              "type": "number",
                              "multipleOf": 0.1,
                              "minimum": 0,
                              "format": "float",
                              "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                              "example": 16
                            }
                          },
                          "required": [
                            "start",
                            "end",
                            "maxCurrent"
                          ]
                        }
                      },
                      "tuesday": {
                        "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                          "properties": {
                            "start": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "Start time of the period in HH:MM format (24-hour).",
                              "example": "08:00"
                            },
                            "end": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                              "example": "18:00"
                            },
                            "maxCurrent": {
                              "type": "number",
                              "multipleOf": 0.1,
                              "minimum": 0,
                              "format": "float",
                              "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                              "example": 16
                            }
                          },
                          "required": [
                            "start",
                            "end",
                            "maxCurrent"
                          ]
                        }
                      },
                      "wednesday": {
                        "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                          "properties": {
                            "start": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "Start time of the period in HH:MM format (24-hour).",
                              "example": "08:00"
                            },
                            "end": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                              "example": "18:00"
                            },
                            "maxCurrent": {
                              "type": "number",
                              "multipleOf": 0.1,
                              "minimum": 0,
                              "format": "float",
                              "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                              "example": 16
                            }
                          },
                          "required": [
                            "start",
                            "end",
                            "maxCurrent"
                          ]
                        }
                      },
                      "thursday": {
                        "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                          "properties": {
                            "start": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "Start time of the period in HH:MM format (24-hour).",
                              "example": "08:00"
                            },
                            "end": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                              "example": "18:00"
                            },
                            "maxCurrent": {
                              "type": "number",
                              "multipleOf": 0.1,
                              "minimum": 0,
                              "format": "float",
                              "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                              "example": 16
                            }
                          },
                          "required": [
                            "start",
                            "end",
                            "maxCurrent"
                          ]
                        }
                      },
                      "friday": {
                        "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                          "properties": {
                            "start": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "Start time of the period in HH:MM format (24-hour).",
                              "example": "08:00"
                            },
                            "end": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                              "example": "18:00"
                            },
                            "maxCurrent": {
                              "type": "number",
                              "multipleOf": 0.1,
                              "minimum": 0,
                              "format": "float",
                              "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                              "example": 16
                            }
                          },
                          "required": [
                            "start",
                            "end",
                            "maxCurrent"
                          ]
                        }
                      },
                      "saturday": {
                        "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                          "properties": {
                            "start": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "Start time of the period in HH:MM format (24-hour).",
                              "example": "08:00"
                            },
                            "end": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                              "example": "18:00"
                            },
                            "maxCurrent": {
                              "type": "number",
                              "multipleOf": 0.1,
                              "minimum": 0,
                              "format": "float",
                              "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                              "example": 16
                            }
                          },
                          "required": [
                            "start",
                            "end",
                            "maxCurrent"
                          ]
                        }
                      },
                      "sunday": {
                        "description": "A daily schedule consisting of time periods that apply every day.\nPeriods within the schedule must not overlap.\n",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "description": "A time period within a schedule during which reduced current applies.\nThe period defines when the circuit's maximum available current is limited.\n",
                          "properties": {
                            "start": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "Start time of the period in HH:MM format (24-hour).",
                              "example": "08:00"
                            },
                            "end": {
                              "type": "string",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                              "description": "End time of the period in HH:MM format (24-hour). Must be after the start time (periods cannot span midnight).",
                              "example": "18:00"
                            },
                            "maxCurrent": {
                              "type": "number",
                              "multipleOf": 0.1,
                              "minimum": 0,
                              "format": "float",
                              "description": "Maximum current (A) available during this period. Must not exceed the circuit's maximum current.",
                              "example": 16
                            }
                          },
                          "required": [
                            "start",
                            "end",
                            "maxCurrent"
                          ]
                        }
                      }
                    },
                    "required": [
                      "monday",
                      "tuesday",
                      "wednesday",
                      "thursday",
                      "friday",
                      "saturday",
                      "sunday"
                    ]
                  }
                ]
              },
              "scheduleLimitUnit": {
                "description": "Unit for interpreting schedule period `maxCurrent` values, and the upper bound that applies to each period:\n- **amps**: Per-phase amperes (A); must not exceed the circuit's `maxCurrent`.\n- **kilowatts**: Total kilowatts (kW); must not exceed the circuit's derived kW capacity computed from `maxCurrent × phases × maxVoltage`.\n",
                "type": "string",
                "enum": [
                  "amps",
                  "kilowatts"
                ]
              }
            },
            "required": [
              "scheduleType",
              "schedule"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "circuitScheduleDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitSocPrioritiesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "upperThresholdPercent": {
            "type": "number",
            "nullable": true,
            "description": "The state of charge (SoC) percentage above which the `highSoCPriority` will be applied. Must have a 5% offset from the `lowerThresholdPercent` (if provided).\nFor example if `lowerThresholdPercent` is set to 50, this can have a value of 55 or higher.\nSetting this to `null` will remove the usage of the `highSoCPriority`.\n",
            "multipleOf": 5,
            "minimum": 5,
            "maximum": 95
          },
          "highSoCPriority": {
            "type": "number",
            "minimum": 0,
            "multipleOf": 0.1,
            "format": "float"
          },
          "lowerThresholdPercent": {
            "type": "number",
            "nullable": true,
            "description": "The state of charge (SoC) percentage below which the `lowSoCPriority` will be applied. Must have a 5% offset from the `upperThresholdPercent` (if provided).\nFor example if `upperThresholdPercent ` is set to 50, this can have a value of 45 or lower.\nSetting this to `null` will remove the usage of the `lowSoCPriority`.\n",
            "multipleOf": 5,
            "minimum": 5,
            "maximum": 95
          },
          "lowSoCPriority": {
            "type": "number",
            "minimum": 0,
            "multipleOf": 0.1,
            "format": "float"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitUnmanagedLoadRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "phase"
              ],
              "properties": {
                "phase": {
                  "type": "string",
                  "enum": [
                    "L1",
                    "L2",
                    "L3"
                  ]
                },
                "consumption": {
                  "type": "number",
                  "description": "In amps",
                  "multipleOf": 0.1
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitUserPrioritiesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "targetId": {
                  "type": "integer",
                  "description": "The ID of the User Group the user must be part of or the ID of the Partner from which the user must have an invite from, for the set priority apply for the session."
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "partner",
                    "userGroup"
                  ]
                },
                "priority": {
                  "type": "number",
                  "description": "The priority where 1 is equal to anyone else, 2 is twice as important, 0.5 is half as important.",
                  "multipleOf": 0.1,
                  "format": "float",
                  "minimum": 0
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitUserPriorityCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "targetId": {
                "type": "integer",
                "description": "The ID of the User Group the user must be part of or the ID of the Partner from which the user must have an invite from, for the set priority apply for the session."
              },
              "type": {
                "type": "string",
                "enum": [
                  "partner",
                  "userGroup"
                ]
              },
              "priority": {
                "type": "number",
                "description": "The priority where 1 is equal to anyone else, 2 is twice as important, 0.5 is half as important.",
                "multipleOf": 0.1,
                "format": "float",
                "minimum": 0
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "circuitUserPriorityRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "targetId": {
                "type": "integer",
                "description": "The ID of the User Group the user must be part of or the ID of the Partner from which the user must have an invite from, for the set priority apply for the session."
              },
              "type": {
                "type": "string",
                "enum": [
                  "partner",
                  "userGroup"
                ]
              },
              "priority": {
                "type": "number",
                "description": "The priority where 1 is equal to anyone else, 2 is twice as important, 0.5 is half as important.",
                "multipleOf": 0.1,
                "format": "float",
                "minimum": 0
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "circuitUserPriorityDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "circuitUserPriorityUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "targetId": {
                "type": "integer",
                "description": "The ID of the User Group the user must be part of or the ID of the Partner from which the user must have an invite from, for the set priority apply for the session."
              },
              "type": {
                "type": "string",
                "enum": [
                  "partner",
                  "userGroup"
                ]
              },
              "priority": {
                "type": "number",
                "description": "The priority where 1 is equal to anyone else, 2 is twice as important, 0.5 is half as important.",
                "multipleOf": 0.1,
                "format": "float",
                "minimum": 0
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "listConfigurationTemplates": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "required": [
                "id",
                "operatorId"
              ],
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1,
                  "readOnly": true
                },
                "name": {
                  "type": "string"
                },
                "ocppVersion": {
                  "type": "string",
                  "enum": [
                    "ocpp 1.6",
                    "ocpp 2.0.1"
                  ]
                },
                "lastUpdatedAt": {
                  "readOnly": true,
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date"
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "createConfigurationTemplate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1,
                "readOnly": true
              },
              "name": {
                "type": "string"
              },
              "ocppVersion": {
                "type": "string",
                "enum": [
                  "ocpp 1.6",
                  "ocpp 2.0.1"
                ]
              },
              "lastUpdatedAt": {
                "readOnly": true,
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "getConfigurationTemplate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1,
                "readOnly": true
              },
              "name": {
                "type": "string"
              },
              "ocppVersion": {
                "type": "string",
                "enum": [
                  "ocpp 1.6",
                  "ocpp 2.0.1"
                ]
              },
              "lastUpdatedAt": {
                "readOnly": true,
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "deleteConfigurationTemplate": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "updateConfigurationTemplate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1,
                "readOnly": true
              },
              "name": {
                "type": "string"
              },
              "ocppVersion": {
                "type": "string",
                "enum": [
                  "ocpp 1.6",
                  "ocpp 2.0.1"
                ]
              },
              "lastUpdatedAt": {
                "readOnly": true,
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "configurationTemplateVariableListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "title": "Configuration variable for OCPP 1.6",
                  "required": [
                    "id",
                    "keyName",
                    "value",
                    "lastUpdatedAt"
                  ],
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "keyName": {
                      "type": "string"
                    },
                    "value": {
                      "type": "string"
                    },
                    "lastUpdatedAt": {
                      "readOnly": true,
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO 8601 formatted date"
                    }
                  }
                },
                {
                  "title": "Configuration variable for OCPP 2.0.1",
                  "required": [
                    "id",
                    "value",
                    "variableName",
                    "variableType",
                    "variableInstance",
                    "component",
                    "componentInstance",
                    "evseId",
                    "connectorId",
                    "lastUpdatedAt"
                  ],
                  "type": "object",
                  "additionalProperties": false,
                  "description": "Represents a configuration variable based on the OCPP 2.0.1 specification.\nFields such as `variableName`, `variableType`, `variableInstance`, `component`,\n`componentInstance`, `evseId`, and `connectorId` directly correspond to the OCPP 2.0.1 protocol.\n",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "value": {
                      "type": "string"
                    },
                    "variableName": {
                      "type": "string"
                    },
                    "variableType": {
                      "type": "string",
                      "enum": [
                        "Actual",
                        "Target",
                        "MinSet",
                        "MaxSet"
                      ],
                      "nullable": true
                    },
                    "variableInstance": {
                      "type": "string",
                      "nullable": true
                    },
                    "component": {
                      "type": "string"
                    },
                    "componentInstance": {
                      "type": "string",
                      "nullable": true
                    },
                    "evseId": {
                      "type": "integer",
                      "nullable": true
                    },
                    "connectorId": {
                      "type": "integer",
                      "nullable": true
                    },
                    "lastUpdatedAt": {
                      "readOnly": true,
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO 8601 formatted date"
                    }
                  }
                }
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "configurationTemplateVariableCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "title": "Created Configuration Template Variable",
            "description": "Created configuration template variable - OCPP 1.6 or 2.1",
            "oneOf": [
              {
                "title": "Configuration variable for OCPP 1.6",
                "required": [
                  "id",
                  "keyName",
                  "value",
                  "lastUpdatedAt"
                ],
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "keyName": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  },
                  "lastUpdatedAt": {
                    "readOnly": true,
                    "type": "string",
                    "format": "date-time",
                    "description": "ISO 8601 formatted date"
                  }
                }
              },
              {
                "title": "Configuration variable for OCPP 2.0.1",
                "required": [
                  "id",
                  "value",
                  "variableName",
                  "variableType",
                  "variableInstance",
                  "component",
                  "componentInstance",
                  "evseId",
                  "connectorId",
                  "lastUpdatedAt"
                ],
                "type": "object",
                "additionalProperties": false,
                "description": "Represents a configuration variable based on the OCPP 2.0.1 specification.\nFields such as `variableName`, `variableType`, `variableInstance`, `component`,\n`componentInstance`, `evseId`, and `connectorId` directly correspond to the OCPP 2.0.1 protocol.\n",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "value": {
                    "type": "string"
                  },
                  "variableName": {
                    "type": "string"
                  },
                  "variableType": {
                    "type": "string",
                    "enum": [
                      "Actual",
                      "Target",
                      "MinSet",
                      "MaxSet"
                    ],
                    "nullable": true
                  },
                  "variableInstance": {
                    "type": "string",
                    "nullable": true
                  },
                  "component": {
                    "type": "string"
                  },
                  "componentInstance": {
                    "type": "string",
                    "nullable": true
                  },
                  "evseId": {
                    "type": "integer",
                    "nullable": true
                  },
                  "connectorId": {
                    "type": "integer",
                    "nullable": true
                  },
                  "lastUpdatedAt": {
                    "readOnly": true,
                    "type": "string",
                    "format": "date-time",
                    "description": "ISO 8601 formatted date"
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "configurationTemplateVariableDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "configurationTemplateVariableUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "title": "Updated Configuration Template Variable",
            "description": "Updated configuration template variable - OCPP 1.6 or 2.1",
            "oneOf": [
              {
                "title": "Configuration variable for OCPP 1.6",
                "required": [
                  "id",
                  "keyName",
                  "value",
                  "lastUpdatedAt"
                ],
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "keyName": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  },
                  "lastUpdatedAt": {
                    "readOnly": true,
                    "type": "string",
                    "format": "date-time",
                    "description": "ISO 8601 formatted date"
                  }
                }
              },
              {
                "title": "Configuration variable for OCPP 2.0.1",
                "required": [
                  "id",
                  "value",
                  "variableName",
                  "variableType",
                  "variableInstance",
                  "component",
                  "componentInstance",
                  "evseId",
                  "connectorId",
                  "lastUpdatedAt"
                ],
                "type": "object",
                "additionalProperties": false,
                "description": "Represents a configuration variable based on the OCPP 2.0.1 specification.\nFields such as `variableName`, `variableType`, `variableInstance`, `component`,\n`componentInstance`, `evseId`, and `connectorId` directly correspond to the OCPP 2.0.1 protocol.\n",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "value": {
                    "type": "string"
                  },
                  "variableName": {
                    "type": "string"
                  },
                  "variableType": {
                    "type": "string",
                    "enum": [
                      "Actual",
                      "Target",
                      "MinSet",
                      "MaxSet"
                    ],
                    "nullable": true
                  },
                  "variableInstance": {
                    "type": "string",
                    "nullable": true
                  },
                  "component": {
                    "type": "string"
                  },
                  "componentInstance": {
                    "type": "string",
                    "nullable": true
                  },
                  "evseId": {
                    "type": "integer",
                    "nullable": true
                  },
                  "connectorId": {
                    "type": "integer",
                    "nullable": true
                  },
                  "lastUpdatedAt": {
                    "readOnly": true,
                    "type": "string",
                    "format": "date-time",
                    "description": "ISO 8601 formatted date"
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "consentHistoryListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "userId": {
                  "type": "integer",
                  "description": "The ID of the user who performed the consent action",
                  "readOnly": true
                },
                "termVersionId": {
                  "type": "integer",
                  "description": "The ID of the specific term version for which the consent action was performed",
                  "readOnly": true
                },
                "termType": {
                  "type": "string",
                  "readOnly": true,
                  "enum": [
                    "marketing",
                    "signup",
                    "subscription",
                    "top-up"
                  ],
                  "description": "The type of term:\n- marketing: Marketing and promotional communications consent\n- signup: Initial registration terms and conditions\n- subscription: Subscription service terms\n- top-up: Top-up service terms\n"
                },
                "action": {
                  "type": "string",
                  "readOnly": true,
                  "enum": [
                    "agreed",
                    "rejected"
                  ],
                  "description": "The consent action that was performed:\n- agreed: User agreed to the terms\n- rejected: User rejected the terms\n",
                  "example": "agreed"
                },
                "actionAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "userId",
                "termVersionId",
                "termType",
                "action",
                "actionAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "consentsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "userId": {
                  "type": "integer",
                  "description": "The ID of the user who gave or rejected consent",
                  "readOnly": true
                },
                "termVersionId": {
                  "type": "integer",
                  "description": "The ID of the specific term version for which consent was given or rejected",
                  "readOnly": true
                },
                "termType": {
                  "type": "string",
                  "readOnly": true,
                  "enum": [
                    "marketing",
                    "signup",
                    "subscription",
                    "top-up"
                  ],
                  "description": "The type of term:\n- marketing: Marketing and promotional communications consent\n- signup: Initial registration terms and conditions\n- subscription: Subscription service terms\n- top-up: Top-up service terms\n"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "agreed",
                    "rejected"
                  ],
                  "description": "The consent status:\n- agreed: User has agreed to the terms\n- rejected: User has explicitly rejected the terms\n",
                  "example": "agreed"
                },
                "collection": {
                  "type": "string",
                  "enum": [
                    "explicit",
                    "automatic"
                  ],
                  "description": "Defines how consent is collected:\n- **explicit**: Requires user explicit confirmation\n- **automatic**: Assumes consent upon use\n"
                },
                "source": {
                  "type": "string",
                  "readOnly": true,
                  "enum": [
                    "app",
                    "api"
                  ],
                  "description": "Where the consent originated:\n- app: Consent created via mobile application\n- api: Consent created via API endpoint\n"
                },
                "agreedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "rejectedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "termVersionIsActive": {
                  "type": "boolean",
                  "description": "Whether the associated term version is currently active (not past or future)",
                  "readOnly": true
                }
              },
              "required": [
                "userId",
                "termVersionId",
                "termType",
                "status",
                "collection",
                "source",
                "termVersionIsActive"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "consentsCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "userId": {
                "type": "integer",
                "description": "The ID of the user who gave or rejected consent",
                "readOnly": true
              },
              "termVersionId": {
                "type": "integer",
                "description": "The ID of the specific term version for which consent was given or rejected",
                "readOnly": true
              },
              "termType": {
                "type": "string",
                "readOnly": true,
                "enum": [
                  "marketing",
                  "signup",
                  "subscription",
                  "top-up"
                ],
                "description": "The type of term:\n- marketing: Marketing and promotional communications consent\n- signup: Initial registration terms and conditions\n- subscription: Subscription service terms\n- top-up: Top-up service terms\n"
              },
              "status": {
                "type": "string",
                "enum": [
                  "agreed",
                  "rejected"
                ],
                "description": "The consent status:\n- agreed: User has agreed to the terms\n- rejected: User has explicitly rejected the terms\n",
                "example": "agreed"
              },
              "collection": {
                "type": "string",
                "enum": [
                  "explicit",
                  "automatic"
                ],
                "description": "Defines how consent is collected:\n- **explicit**: Requires user explicit confirmation\n- **automatic**: Assumes consent upon use\n"
              },
              "source": {
                "type": "string",
                "readOnly": true,
                "enum": [
                  "app",
                  "api"
                ],
                "description": "Where the consent originated:\n- app: Consent created via mobile application\n- api: Consent created via API endpoint\n"
              },
              "agreedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "rejectedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "termVersionIsActive": {
                "type": "boolean",
                "description": "Whether the associated term version is currently active (not past or future)",
                "readOnly": true
              }
            },
            "required": [
              "userId",
              "termVersionId",
              "termType",
              "status",
              "collection",
              "source",
              "termVersionIsActive"
            ]
          }
        }
      }
    },
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "contactDetailsRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "lastUpdatedAt": {
            "deprecated": true,
            "type": "string",
            "format": "date-time",
            "description": "ISO 8601 formatted date",
            "readOnly": true
          }
        },
        "required": [
          "email"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "contactDetailsUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "lastUpdatedAt": {
            "deprecated": true,
            "type": "string",
            "format": "date-time",
            "description": "ISO 8601 formatted date",
            "readOnly": true
          }
        },
        "required": [
          "email"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "contactDetailsDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "chargePointModelsListingDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "name": {
                  "type": "string"
                },
                "vendorId": {
                  "type": "integer"
                },
                "defaultPhoto": {
                  "type": "string",
                  "format": "uri",
                  "nullable": true,
                  "description": "For home chargers the default photo for the model is shown in the mobile app. The image URL is available for 24 hours after generated."
                },
                "userManual": {
                  "type": "string",
                  "format": "uri",
                  "nullable": true,
                  "description": "A download link for the user manual. Shown in the mobile app for home chargers."
                },
                "installerManual": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to an externally-hosted installer manual. The system stores this URL reference only (does not download or cache the document) and provides it to installers for viewing/downloading through the installer app interface. This field is omitted from the response when no installer manual is configured."
                }
              },
              "required": [
                "id",
                "name",
                "vendorId",
                "defaultPhoto",
                "userManual"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page"
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page"
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page",
                "nullable": true
              }
            },
            "required": [
              "first",
              "last"
            ]
          },
          "meta": {
            "type": "object",
            "properties": {
              "current_page": {
                "type": "integer",
                "description": "The number of the current page being fetched"
              },
              "from": {
                "type": "integer",
                "description": "The first of the fetched item's position in the total list",
                "nullable": true
              },
              "last_page": {
                "type": "integer",
                "description": "The number of the past page"
              },
              "links": {
                "type": "array",
                "description": "Array of link objects pointing to the previous/current/next pages",
                "items": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string",
                      "nullable": true,
                      "description": "The URL to the previous/current/next page or null if such page does not exist"
                    },
                    "label": {
                      "type": "string",
                      "description": "The name of the page that the links should be pointing to"
                    },
                    "active": {
                      "type": "boolean",
                      "description": "Is the link active, it will be true only when there is an URL"
                    }
                  }
                }
              },
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "to": {
                "type": "integer",
                "description": "The last of the fetched item's position in the total list",
                "nullable": true
              },
              "total": {
                "type": "integer",
                "description": "The total number of items in the list"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "chargePointModelCreateDeprecated": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "name": {
                "type": "string"
              },
              "vendorId": {
                "type": "integer"
              },
              "defaultPhoto": {
                "type": "string",
                "format": "uri",
                "nullable": true,
                "description": "For home chargers the default photo for the model is shown in the mobile app. The image URL is available for 24 hours after generated."
              },
              "userManual": {
                "type": "string",
                "format": "uri",
                "nullable": true,
                "description": "A download link for the user manual. Shown in the mobile app for home chargers."
              },
              "installerManual": {
                "type": "string",
                "format": "uri",
                "description": "URL to an externally-hosted installer manual. The system stores this URL reference only (does not download or cache the document) and provides it to installers for viewing/downloading through the installer app interface. This field is omitted from the response when no installer manual is configured."
              }
            },
            "required": [
              "id",
              "name",
              "vendorId",
              "defaultPhoto",
              "userManual"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointModelReadDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "name": {
                "type": "string"
              },
              "vendorId": {
                "type": "integer"
              },
              "defaultPhoto": {
                "type": "string",
                "format": "uri",
                "nullable": true,
                "description": "For home chargers the default photo for the model is shown in the mobile app. The image URL is available for 24 hours after generated."
              },
              "userManual": {
                "type": "string",
                "format": "uri",
                "nullable": true,
                "description": "A download link for the user manual. Shown in the mobile app for home chargers."
              },
              "installerManual": {
                "type": "string",
                "format": "uri",
                "description": "URL to an externally-hosted installer manual. The system stores this URL reference only (does not download or cache the document) and provides it to installers for viewing/downloading through the installer app interface. This field is omitted from the response when no installer manual is configured."
              }
            },
            "required": [
              "id",
              "name",
              "vendorId",
              "defaultPhoto",
              "userManual"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointModelDeleteDeprecated": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "chargePointModelUpdateDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "name": {
                "type": "string"
              },
              "vendorId": {
                "type": "integer"
              },
              "defaultPhoto": {
                "type": "string",
                "format": "uri",
                "nullable": true,
                "description": "For home chargers the default photo for the model is shown in the mobile app. The image URL is available for 24 hours after generated."
              },
              "userManual": {
                "type": "string",
                "format": "uri",
                "nullable": true,
                "description": "A download link for the user manual. Shown in the mobile app for home chargers."
              },
              "installerManual": {
                "type": "string",
                "format": "uri",
                "description": "URL to an externally-hosted installer manual. The system stores this URL reference only (does not download or cache the document) and provides it to installers for viewing/downloading through the installer app interface. This field is omitted from the response when no installer manual is configured."
              }
            },
            "required": [
              "id",
              "name",
              "vendorId",
              "defaultPhoto",
              "userManual"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointVendorsListingDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "name": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "name"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page"
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page"
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page",
                "nullable": true
              }
            },
            "required": [
              "first",
              "last"
            ]
          },
          "meta": {
            "type": "object",
            "properties": {
              "current_page": {
                "type": "integer",
                "description": "The number of the current page being fetched"
              },
              "from": {
                "type": "integer",
                "description": "The first of the fetched item's position in the total list",
                "nullable": true
              },
              "last_page": {
                "type": "integer",
                "description": "The number of the past page"
              },
              "links": {
                "type": "array",
                "description": "Array of link objects pointing to the previous/current/next pages",
                "items": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string",
                      "nullable": true,
                      "description": "The URL to the previous/current/next page or null if such page does not exist"
                    },
                    "label": {
                      "type": "string",
                      "description": "The name of the page that the links should be pointing to"
                    },
                    "active": {
                      "type": "boolean",
                      "description": "Is the link active, it will be true only when there is an URL"
                    }
                  }
                }
              },
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "to": {
                "type": "integer",
                "description": "The last of the fetched item's position in the total list",
                "nullable": true
              },
              "total": {
                "type": "integer",
                "description": "The total number of items in the list"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "chargePointVendorCreateDeprecated": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "name"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointVendorReadDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "name"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "chargePointVendorDeleteDeprecated": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "chargePointVendorUpdateDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "name"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "currenciesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "name": {
                  "type": "string",
                  "readOnly": true,
                  "description": "The name is auto generated and is of format: alphabeticCode + {currency name}, for example EUR (Euro)."
                },
                "alphabeticCode": {
                  "description": "The currency 3-letter code.",
                  "type": "string",
                  "enum": [
                    "AED",
                    "AFN",
                    "ALL",
                    "AMD",
                    "ANG",
                    "AOA",
                    "ARS",
                    "AUD",
                    "AWG",
                    "AZN",
                    "BAM",
                    "BBD",
                    "BDT",
                    "BGN",
                    "BHD",
                    "BIF",
                    "BMD",
                    "BND",
                    "BOB",
                    "BOV",
                    "BRL",
                    "BSD",
                    "BTN",
                    "BWP",
                    "BYN",
                    "BZD",
                    "CAD",
                    "CDF",
                    "CHE",
                    "CHF",
                    "CHW",
                    "CLF",
                    "CLP",
                    "CNY",
                    "COP",
                    "COU",
                    "CRC",
                    "CUC",
                    "CUP",
                    "CVE",
                    "CZK",
                    "DJF",
                    "DKK",
                    "DOP",
                    "DZD",
                    "EGP",
                    "ERN",
                    "ETB",
                    "EUR",
                    "FJD",
                    "FKP",
                    "GBP",
                    "GEL",
                    "GHS",
                    "GIP",
                    "GMD",
                    "GNF",
                    "GTQ",
                    "GYD",
                    "HKD",
                    "HNL",
                    "HRK",
                    "HTG",
                    "HUF",
                    "IDR",
                    "ILS",
                    "INR",
                    "IQD",
                    "IRR",
                    "ISK",
                    "JMD",
                    "JOD",
                    "JPY",
                    "KES",
                    "KGS",
                    "KHR",
                    "KMF",
                    "KPW",
                    "KRW",
                    "KWD",
                    "KYD",
                    "KZT",
                    "LAK",
                    "LBP",
                    "LKR",
                    "LRD",
                    "LSL",
                    "LYD",
                    "MAD",
                    "MDL",
                    "MGA",
                    "MKD",
                    "MMK",
                    "MNT",
                    "MOP",
                    "MRU",
                    "MUR",
                    "MVR",
                    "MWK",
                    "MXN",
                    "MXV",
                    "MYR",
                    "MZN",
                    "NAD",
                    "NGN",
                    "NIO",
                    "NOK",
                    "NPR",
                    "NZD",
                    "OMR",
                    "PAB",
                    "PEN",
                    "PGK",
                    "PHP",
                    "PKR",
                    "PLN",
                    "PYG",
                    "QAR",
                    "RON",
                    "RSD",
                    "RUB",
                    "RWF",
                    "SAR",
                    "SBD",
                    "SCR",
                    "SDG",
                    "SEK",
                    "SGD",
                    "SHP",
                    "SLL",
                    "SOS",
                    "SRD",
                    "SSP",
                    "STN",
                    "SVC",
                    "SYP",
                    "SZL",
                    "THB",
                    "TJS",
                    "TMT",
                    "TND",
                    "TOP",
                    "TRY",
                    "TTD",
                    "TWD",
                    "TZS",
                    "UAH",
                    "UGX",
                    "USD",
                    "USN",
                    "UYI",
                    "UYU",
                    "UYW",
                    "UZS",
                    "VES",
                    "VND",
                    "VUV",
                    "WST",
                    "XAF",
                    "XAG",
                    "XAU",
                    "XBA",
                    "XBB",
                    "XBC",
                    "XBD",
                    "XCD",
                    "XDR",
                    "XOF",
                    "XPD",
                    "XPF",
                    "XPT",
                    "XSU",
                    "XTS",
                    "XUA",
                    "XXX",
                    "YER",
                    "ZAR",
                    "ZMW",
                    "ZWL"
                  ]
                },
                "numericCode": {
                  "type": "string",
                  "readOnly": true,
                  "description": "The currency numeric code that corresponds to the alphabeticCode."
                },
                "prefix": {
                  "type": "string",
                  "description": "When displaying amounts in this currency, the prefix is added in front of the amount. This could be symbols, for example $ or £.",
                  "nullable": true
                },
                "suffix": {
                  "type": "string",
                  "description": "When displaying amounts in this currency, the suffix is added after the amount.",
                  "nullable": true
                },
                "decimal": {
                  "type": "integer",
                  "description": "The actual precision of the currency. This is used when charging a payment method or calculating totals.",
                  "nullable": true
                },
                "unitPriceAndCalculationsDecimal": {
                  "type": "integer",
                  "description": "Used when setting price per kWh and per minute in tariffs.",
                  "nullable": true
                },
                "enableUseOfMinorCurrencyUnit": {
                  "type": "boolean",
                  "description": "When enabled, the minor currency unit is used to set electricity price threshold for flexible tariffs and to set electricity cost tracking in the home charging app. The minor currency unit for the US dollar, for example, is the cent."
                },
                "minorUnitSign": {
                  "type": "string",
                  "description": "The sign or letter for the minor currency unit. For US dollar, for example, this could be \"¢\" or \"c\" for cents.",
                  "nullable": true
                }
              },
              "required": [
                "alphabeticCode"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "currencyCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true,
            "description": "The name is auto generated and is of format: alphabeticCode + {currency name}, for example EUR (Euro)."
          },
          "alphabeticCode": {
            "description": "The currency 3-letter code.",
            "type": "string",
            "enum": [
              "AED",
              "AFN",
              "ALL",
              "AMD",
              "ANG",
              "AOA",
              "ARS",
              "AUD",
              "AWG",
              "AZN",
              "BAM",
              "BBD",
              "BDT",
              "BGN",
              "BHD",
              "BIF",
              "BMD",
              "BND",
              "BOB",
              "BOV",
              "BRL",
              "BSD",
              "BTN",
              "BWP",
              "BYN",
              "BZD",
              "CAD",
              "CDF",
              "CHE",
              "CHF",
              "CHW",
              "CLF",
              "CLP",
              "CNY",
              "COP",
              "COU",
              "CRC",
              "CUC",
              "CUP",
              "CVE",
              "CZK",
              "DJF",
              "DKK",
              "DOP",
              "DZD",
              "EGP",
              "ERN",
              "ETB",
              "EUR",
              "FJD",
              "FKP",
              "GBP",
              "GEL",
              "GHS",
              "GIP",
              "GMD",
              "GNF",
              "GTQ",
              "GYD",
              "HKD",
              "HNL",
              "HRK",
              "HTG",
              "HUF",
              "IDR",
              "ILS",
              "INR",
              "IQD",
              "IRR",
              "ISK",
              "JMD",
              "JOD",
              "JPY",
              "KES",
              "KGS",
              "KHR",
              "KMF",
              "KPW",
              "KRW",
              "KWD",
              "KYD",
              "KZT",
              "LAK",
              "LBP",
              "LKR",
              "LRD",
              "LSL",
              "LYD",
              "MAD",
              "MDL",
              "MGA",
              "MKD",
              "MMK",
              "MNT",
              "MOP",
              "MRU",
              "MUR",
              "MVR",
              "MWK",
              "MXN",
              "MXV",
              "MYR",
              "MZN",
              "NAD",
              "NGN",
              "NIO",
              "NOK",
              "NPR",
              "NZD",
              "OMR",
              "PAB",
              "PEN",
              "PGK",
              "PHP",
              "PKR",
              "PLN",
              "PYG",
              "QAR",
              "RON",
              "RSD",
              "RUB",
              "RWF",
              "SAR",
              "SBD",
              "SCR",
              "SDG",
              "SEK",
              "SGD",
              "SHP",
              "SLL",
              "SOS",
              "SRD",
              "SSP",
              "STN",
              "SVC",
              "SYP",
              "SZL",
              "THB",
              "TJS",
              "TMT",
              "TND",
              "TOP",
              "TRY",
              "TTD",
              "TWD",
              "TZS",
              "UAH",
              "UGX",
              "USD",
              "USN",
              "UYI",
              "UYU",
              "UYW",
              "UZS",
              "VES",
              "VND",
              "VUV",
              "WST",
              "XAF",
              "XAG",
              "XAU",
              "XBA",
              "XBB",
              "XBC",
              "XBD",
              "XCD",
              "XDR",
              "XOF",
              "XPD",
              "XPF",
              "XPT",
              "XSU",
              "XTS",
              "XUA",
              "XXX",
              "YER",
              "ZAR",
              "ZMW",
              "ZWL"
            ]
          },
          "numericCode": {
            "type": "string",
            "readOnly": true,
            "description": "The currency numeric code that corresponds to the alphabeticCode."
          },
          "prefix": {
            "type": "string",
            "description": "When displaying amounts in this currency, the prefix is added in front of the amount. This could be symbols, for example $ or £.",
            "nullable": true
          },
          "suffix": {
            "type": "string",
            "description": "When displaying amounts in this currency, the suffix is added after the amount.",
            "nullable": true
          },
          "decimal": {
            "type": "integer",
            "description": "The actual precision of the currency. This is used when charging a payment method or calculating totals.",
            "nullable": true
          },
          "unitPriceAndCalculationsDecimal": {
            "type": "integer",
            "description": "Used when setting price per kWh and per minute in tariffs.",
            "nullable": true
          },
          "enableUseOfMinorCurrencyUnit": {
            "type": "boolean",
            "description": "When enabled, the minor currency unit is used to set electricity price threshold for flexible tariffs and to set electricity cost tracking in the home charging app. The minor currency unit for the US dollar, for example, is the cent."
          },
          "minorUnitSign": {
            "type": "string",
            "description": "The sign or letter for the minor currency unit. For US dollar, for example, this could be \"¢\" or \"c\" for cents.",
            "nullable": true
          }
        },
        "required": [
          "alphabeticCode"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "currencyRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true,
            "description": "The name is auto generated and is of format: alphabeticCode + {currency name}, for example EUR (Euro)."
          },
          "alphabeticCode": {
            "description": "The currency 3-letter code.",
            "type": "string",
            "enum": [
              "AED",
              "AFN",
              "ALL",
              "AMD",
              "ANG",
              "AOA",
              "ARS",
              "AUD",
              "AWG",
              "AZN",
              "BAM",
              "BBD",
              "BDT",
              "BGN",
              "BHD",
              "BIF",
              "BMD",
              "BND",
              "BOB",
              "BOV",
              "BRL",
              "BSD",
              "BTN",
              "BWP",
              "BYN",
              "BZD",
              "CAD",
              "CDF",
              "CHE",
              "CHF",
              "CHW",
              "CLF",
              "CLP",
              "CNY",
              "COP",
              "COU",
              "CRC",
              "CUC",
              "CUP",
              "CVE",
              "CZK",
              "DJF",
              "DKK",
              "DOP",
              "DZD",
              "EGP",
              "ERN",
              "ETB",
              "EUR",
              "FJD",
              "FKP",
              "GBP",
              "GEL",
              "GHS",
              "GIP",
              "GMD",
              "GNF",
              "GTQ",
              "GYD",
              "HKD",
              "HNL",
              "HRK",
              "HTG",
              "HUF",
              "IDR",
              "ILS",
              "INR",
              "IQD",
              "IRR",
              "ISK",
              "JMD",
              "JOD",
              "JPY",
              "KES",
              "KGS",
              "KHR",
              "KMF",
              "KPW",
              "KRW",
              "KWD",
              "KYD",
              "KZT",
              "LAK",
              "LBP",
              "LKR",
              "LRD",
              "LSL",
              "LYD",
              "MAD",
              "MDL",
              "MGA",
              "MKD",
              "MMK",
              "MNT",
              "MOP",
              "MRU",
              "MUR",
              "MVR",
              "MWK",
              "MXN",
              "MXV",
              "MYR",
              "MZN",
              "NAD",
              "NGN",
              "NIO",
              "NOK",
              "NPR",
              "NZD",
              "OMR",
              "PAB",
              "PEN",
              "PGK",
              "PHP",
              "PKR",
              "PLN",
              "PYG",
              "QAR",
              "RON",
              "RSD",
              "RUB",
              "RWF",
              "SAR",
              "SBD",
              "SCR",
              "SDG",
              "SEK",
              "SGD",
              "SHP",
              "SLL",
              "SOS",
              "SRD",
              "SSP",
              "STN",
              "SVC",
              "SYP",
              "SZL",
              "THB",
              "TJS",
              "TMT",
              "TND",
              "TOP",
              "TRY",
              "TTD",
              "TWD",
              "TZS",
              "UAH",
              "UGX",
              "USD",
              "USN",
              "UYI",
              "UYU",
              "UYW",
              "UZS",
              "VES",
              "VND",
              "VUV",
              "WST",
              "XAF",
              "XAG",
              "XAU",
              "XBA",
              "XBB",
              "XBC",
              "XBD",
              "XCD",
              "XDR",
              "XOF",
              "XPD",
              "XPF",
              "XPT",
              "XSU",
              "XTS",
              "XUA",
              "XXX",
              "YER",
              "ZAR",
              "ZMW",
              "ZWL"
            ]
          },
          "numericCode": {
            "type": "string",
            "readOnly": true,
            "description": "The currency numeric code that corresponds to the alphabeticCode."
          },
          "prefix": {
            "type": "string",
            "description": "When displaying amounts in this currency, the prefix is added in front of the amount. This could be symbols, for example $ or £.",
            "nullable": true
          },
          "suffix": {
            "type": "string",
            "description": "When displaying amounts in this currency, the suffix is added after the amount.",
            "nullable": true
          },
          "decimal": {
            "type": "integer",
            "description": "The actual precision of the currency. This is used when charging a payment method or calculating totals.",
            "nullable": true
          },
          "unitPriceAndCalculationsDecimal": {
            "type": "integer",
            "description": "Used when setting price per kWh and per minute in tariffs.",
            "nullable": true
          },
          "enableUseOfMinorCurrencyUnit": {
            "type": "boolean",
            "description": "When enabled, the minor currency unit is used to set electricity price threshold for flexible tariffs and to set electricity cost tracking in the home charging app. The minor currency unit for the US dollar, for example, is the cent."
          },
          "minorUnitSign": {
            "type": "string",
            "description": "The sign or letter for the minor currency unit. For US dollar, for example, this could be \"¢\" or \"c\" for cents.",
            "nullable": true
          }
        },
        "required": [
          "alphabeticCode"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "currencyDeleteDeprecated": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "currencyUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true,
            "description": "The name is auto generated and is of format: alphabeticCode + {currency name}, for example EUR (Euro)."
          },
          "alphabeticCode": {
            "description": "The currency 3-letter code.",
            "type": "string",
            "enum": [
              "AED",
              "AFN",
              "ALL",
              "AMD",
              "ANG",
              "AOA",
              "ARS",
              "AUD",
              "AWG",
              "AZN",
              "BAM",
              "BBD",
              "BDT",
              "BGN",
              "BHD",
              "BIF",
              "BMD",
              "BND",
              "BOB",
              "BOV",
              "BRL",
              "BSD",
              "BTN",
              "BWP",
              "BYN",
              "BZD",
              "CAD",
              "CDF",
              "CHE",
              "CHF",
              "CHW",
              "CLF",
              "CLP",
              "CNY",
              "COP",
              "COU",
              "CRC",
              "CUC",
              "CUP",
              "CVE",
              "CZK",
              "DJF",
              "DKK",
              "DOP",
              "DZD",
              "EGP",
              "ERN",
              "ETB",
              "EUR",
              "FJD",
              "FKP",
              "GBP",
              "GEL",
              "GHS",
              "GIP",
              "GMD",
              "GNF",
              "GTQ",
              "GYD",
              "HKD",
              "HNL",
              "HRK",
              "HTG",
              "HUF",
              "IDR",
              "ILS",
              "INR",
              "IQD",
              "IRR",
              "ISK",
              "JMD",
              "JOD",
              "JPY",
              "KES",
              "KGS",
              "KHR",
              "KMF",
              "KPW",
              "KRW",
              "KWD",
              "KYD",
              "KZT",
              "LAK",
              "LBP",
              "LKR",
              "LRD",
              "LSL",
              "LYD",
              "MAD",
              "MDL",
              "MGA",
              "MKD",
              "MMK",
              "MNT",
              "MOP",
              "MRU",
              "MUR",
              "MVR",
              "MWK",
              "MXN",
              "MXV",
              "MYR",
              "MZN",
              "NAD",
              "NGN",
              "NIO",
              "NOK",
              "NPR",
              "NZD",
              "OMR",
              "PAB",
              "PEN",
              "PGK",
              "PHP",
              "PKR",
              "PLN",
              "PYG",
              "QAR",
              "RON",
              "RSD",
              "RUB",
              "RWF",
              "SAR",
              "SBD",
              "SCR",
              "SDG",
              "SEK",
              "SGD",
              "SHP",
              "SLL",
              "SOS",
              "SRD",
              "SSP",
              "STN",
              "SVC",
              "SYP",
              "SZL",
              "THB",
              "TJS",
              "TMT",
              "TND",
              "TOP",
              "TRY",
              "TTD",
              "TWD",
              "TZS",
              "UAH",
              "UGX",
              "USD",
              "USN",
              "UYI",
              "UYU",
              "UYW",
              "UZS",
              "VES",
              "VND",
              "VUV",
              "WST",
              "XAF",
              "XAG",
              "XAU",
              "XBA",
              "XBB",
              "XBC",
              "XBD",
              "XCD",
              "XDR",
              "XOF",
              "XPD",
              "XPF",
              "XPT",
              "XSU",
              "XTS",
              "XUA",
              "XXX",
              "YER",
              "ZAR",
              "ZMW",
              "ZWL"
            ]
          },
          "numericCode": {
            "type": "string",
            "readOnly": true,
            "description": "The currency numeric code that corresponds to the alphabeticCode."
          },
          "prefix": {
            "type": "string",
            "description": "When displaying amounts in this currency, the prefix is added in front of the amount. This could be symbols, for example $ or £.",
            "nullable": true
          },
          "suffix": {
            "type": "string",
            "description": "When displaying amounts in this currency, the suffix is added after the amount.",
            "nullable": true
          },
          "decimal": {
            "type": "integer",
            "description": "The actual precision of the currency. This is used when charging a payment method or calculating totals.",
            "nullable": true
          },
          "unitPriceAndCalculationsDecimal": {
            "type": "integer",
            "description": "Used when setting price per kWh and per minute in tariffs.",
            "nullable": true
          },
          "enableUseOfMinorCurrencyUnit": {
            "type": "boolean",
            "description": "When enabled, the minor currency unit is used to set electricity price threshold for flexible tariffs and to set electricity cost tracking in the home charging app. The minor currency unit for the US dollar, for example, is the cent."
          },
          "minorUnitSign": {
            "type": "string",
            "description": "The sign or letter for the minor currency unit. For US dollar, for example, this could be \"¢\" or \"c\" for cents.",
            "nullable": true
          }
        },
        "required": [
          "alphabeticCode"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "listCurrencyRates": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The unique identifier of the currency rate",
                  "example": 1
                },
                "base": {
                  "type": "string",
                  "description": "The base currency code (ISO 4217)",
                  "example": "EUR"
                },
                "target": {
                  "type": "string",
                  "description": "The target currency code (ISO 4217)",
                  "example": "USD"
                },
                "rate": {
                  "type": "number",
                  "format": "float",
                  "description": "The exchange rate from base to target currency",
                  "example": 1.08
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The date and time when the currency rate was last updated",
                  "example": "2025-06-05T14:30:00+00:00"
                }
              },
              "required": [
                "id",
                "base",
                "target",
                "rate",
                "updatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "createCurrencyRate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The unique identifier of the currency rate",
                "example": 1
              },
              "base": {
                "type": "string",
                "description": "The base currency code (ISO 4217)",
                "example": "EUR"
              },
              "target": {
                "type": "string",
                "description": "The target currency code (ISO 4217)",
                "example": "USD"
              },
              "rate": {
                "type": "number",
                "format": "float",
                "description": "The exchange rate from base to target currency",
                "example": 1.08
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "The date and time when the currency rate was last updated",
                "example": "2025-06-05T14:30:00+00:00"
              }
            },
            "required": [
              "id",
              "base",
              "target",
              "rate",
              "updatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getCurrencyRate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The unique identifier of the currency rate",
                "example": 1
              },
              "base": {
                "type": "string",
                "description": "The base currency code (ISO 4217)",
                "example": "EUR"
              },
              "target": {
                "type": "string",
                "description": "The target currency code (ISO 4217)",
                "example": "USD"
              },
              "rate": {
                "type": "number",
                "format": "float",
                "description": "The exchange rate from base to target currency",
                "example": 1.08
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "The date and time when the currency rate was last updated",
                "example": "2025-06-05T14:30:00+00:00"
              }
            },
            "required": [
              "id",
              "base",
              "target",
              "rate",
              "updatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "deleteCurrencyRate": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "updateCurrencyRate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The unique identifier of the currency rate",
                "example": 1
              },
              "base": {
                "type": "string",
                "description": "The base currency code (ISO 4217)",
                "example": "EUR"
              },
              "target": {
                "type": "string",
                "description": "The target currency code (ISO 4217)",
                "example": "USD"
              },
              "rate": {
                "type": "number",
                "format": "float",
                "description": "The exchange rate from base to target currency",
                "example": 1.08
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "The date and time when the currency rate was last updated",
                "example": "2025-06-05T14:30:00+00:00"
              }
            },
            "required": [
              "id",
              "base",
              "target",
              "rate",
              "updatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "customFeesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "transactionId": {
                  "type": "integer",
                  "description": "The ID of the Transaction that the custom fee relates to."
                },
                "createdByAdminId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The ID of the Admin who has created the voucher."
                },
                "amount": {
                  "type": "number",
                  "format": "decimal"
                },
                "currency": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 3,
                  "description": "The ISO 4217 3-letter code of the currency."
                },
                "bankMessage": {
                  "type": "string"
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "operatorId",
                "createdAt",
                "transactionId",
                "amount",
                "currency",
                "bankMessage",
                "lastUpdatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "customFeeRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "transactionId": {
                "type": "integer",
                "description": "The ID of the Transaction that the custom fee relates to."
              },
              "createdByAdminId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the Admin who has created the voucher."
              },
              "amount": {
                "type": "number",
                "format": "decimal"
              },
              "currency": {
                "type": "string",
                "minLength": 3,
                "maxLength": 3,
                "description": "The ISO 4217 3-letter code of the currency."
              },
              "bankMessage": {
                "type": "string"
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "createdAt",
              "transactionId",
              "amount",
              "currency",
              "bankMessage",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getDowntimePeriodNotices": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "downtime",
                    "exempt"
                  ]
                },
                "notice": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "operatorId",
                "type",
                "notice",
                "createdAt",
                "lastUpdatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "postDowntimePeriodNotice": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "type": {
                "type": "string",
                "enum": [
                  "downtime",
                  "exempt"
                ]
              },
              "notice": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "type",
              "notice",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getDowntimePeriodNotice": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "type": {
                "type": "string",
                "enum": [
                  "downtime",
                  "exempt"
                ]
              },
              "notice": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "type",
              "notice",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "deleteDowntimePeriodNotice": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "patchDowntimePeriodNotice": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "type": {
                "type": "string",
                "enum": [
                  "downtime",
                  "exempt"
                ]
              },
              "notice": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "type",
              "notice",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "electricityMetersLising": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "required": [
                "id",
                "operatorId"
              ],
              "type": "object",
              "properties": {
                "id": {
                  "type": "number",
                  "description": "Unique ID of the Electricity Meter.",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The operator ID for this resource.\nRequired for global admin tokens.\nOptional for operator-scoped tokens (defaults to token's operator).\n",
                  "example": 1
                },
                "name": {
                  "type": "string"
                },
                "integrationId": {
                  "type": "integer",
                  "description": "The ID of an existing electricity meter integration."
                },
                "integrationParameters": {
                  "type": "object",
                  "description": "Electricity meter integration parameters.",
                  "additionalProperties": {
                    "type": "string"
                  },
                  "example": {
                    "device_id": 123456
                  }
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "electricityMeterCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "number",
                "description": "Unique ID of the Electricity Meter.",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "description": "The operator ID for this resource.\nRequired for global admin tokens.\nOptional for operator-scoped tokens (defaults to token's operator).\n",
                "example": 1
              },
              "name": {
                "type": "string"
              },
              "integrationId": {
                "type": "integer",
                "description": "The ID of an existing electricity meter integration."
              },
              "integrationParameters": {
                "type": "object",
                "description": "Electricity meter integration parameters.",
                "additionalProperties": {
                  "type": "string"
                },
                "example": {
                  "device_id": 123456
                }
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "electricityMeterRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "number",
                "description": "Unique ID of the Electricity Meter.",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "description": "The operator ID for this resource.\nRequired for global admin tokens.\nOptional for operator-scoped tokens (defaults to token's operator).\n",
                "example": 1
              },
              "name": {
                "type": "string"
              },
              "integrationId": {
                "type": "integer",
                "description": "The ID of an existing electricity meter integration."
              },
              "integrationParameters": {
                "type": "object",
                "description": "Electricity meter integration parameters.",
                "additionalProperties": {
                  "type": "string"
                },
                "example": {
                  "device_id": 123456
                }
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "electricityMeterDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "electricityMeterUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "number",
                "description": "Unique ID of the Electricity Meter.",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "description": "The operator ID for this resource.\nRequired for global admin tokens.\nOptional for operator-scoped tokens (defaults to token's operator).\n",
                "example": 1
              },
              "name": {
                "type": "string"
              },
              "integrationId": {
                "type": "integer",
                "description": "The ID of an existing electricity meter integration."
              },
              "integrationParameters": {
                "type": "object",
                "description": "Electricity meter integration parameters.",
                "additionalProperties": {
                  "type": "string"
                },
                "example": {
                  "device_id": 123456
                }
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "electricityRatesListingDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "name": {
                  "type": "string"
                },
                "utilityId": {
                  "type": "integer",
                  "nullable": true
                },
                "pricingGranularityInMinutes": {
                  "type": "integer",
                  "enum": [
                    60,
                    30,
                    15
                  ]
                },
                "defaultPricePerKwh": {
                  "type": "number",
                  "description": "If there is no pricing supplied for a time interval or no time interval at all, this price would be used."
                },
                "taxId": {
                  "type": "integer",
                  "description": "Deprecated! Please use `taxPercentage` instead! This field is used only to indicate the applied tax. All Electricity Rate prices should be supplied including the tax.",
                  "deprecated": true
                },
                "taxPercentage": {
                  "type": "number",
                  "format": "float",
                  "multipleOf": 0.001,
                  "minimum": 0,
                  "maximum": 100,
                  "example": 12.532,
                  "description": "This field is used only to indicate the applied tax. All Electricity Rate prices should be supplied including the tax."
                },
                "intervalPricing": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "weekDays": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "monday",
                            "tuesday",
                            "wednesday",
                            "thursday",
                            "friday",
                            "saturday",
                            "sunday"
                          ]
                        },
                        "description": "Specify the day for which the pricing would be valid."
                      },
                      "elements": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "startAt": {
                              "type": "string",
                              "pattern": "^\\d{2}:\\d{2}:\\d{2}$",
                              "description": "Example 00:00:00",
                              "example": "00:00:00"
                            },
                            "endAt": {
                              "type": "string",
                              "pattern": "^\\d{2}:\\d{2}:\\d{2}$",
                              "description": "Example 01:00:00",
                              "example": "01:00:00"
                            },
                            "price": {
                              "type": "number",
                              "nullable": true
                            }
                          },
                          "required": [
                            "startAt",
                            "endAt"
                          ]
                        }
                      }
                    },
                    "required": [
                      "weekDays"
                    ]
                  },
                  "nullable": true,
                  "description": "The time interval must be always the same for every single day through the week and could be either 15 min, 30 min or 60 min. The startAt and endAt must comply with this restriction."
                },
                "intervalSpecialPricing": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "specialPricingName": {
                        "type": "string"
                      },
                      "validOn": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "date"
                        },
                        "description": "A list of dates when the special pricing would apply, e.g. holidays, promo days, etc."
                      },
                      "elements": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "startAt": {
                              "type": "string",
                              "pattern": "^\\d{2}:\\d{2}:\\d{2}$",
                              "description": "Example 00:00:00",
                              "example": "00:00:00"
                            },
                            "endAt": {
                              "type": "string",
                              "pattern": "^\\d{2}:\\d{2}:\\d{2}$",
                              "description": "Example 01:00:00",
                              "example": "01:00:00"
                            },
                            "price": {
                              "type": "number",
                              "nullable": true
                            }
                          },
                          "required": [
                            "startAt",
                            "endAt"
                          ]
                        }
                      }
                    },
                    "required": [
                      "specialPricingName",
                      "validOn"
                    ]
                  },
                  "nullable": true,
                  "description": "The same time interval as in intervalPricing must be used. The startAt and endAt must comply with this restriction."
                }
              },
              "required": [
                "id",
                "name",
                "pricingGranularityInMinutes",
                "defaultPricePerKwh"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "electricityRateCreateDeprecated": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string"
              },
              "utilityId": {
                "type": "integer",
                "nullable": true
              },
              "pricingGranularityInMinutes": {
                "type": "integer",
                "enum": [
                  60,
                  30,
                  15
                ]
              },
              "defaultPricePerKwh": {
                "type": "number",
                "description": "If there is no pricing supplied for a time interval or no time interval at all, this price would be used."
              },
              "taxId": {
                "type": "integer",
                "description": "Deprecated! Please use `taxPercentage` instead! This field is used only to indicate the applied tax. All Electricity Rate prices should be supplied including the tax.",
                "deprecated": true
              },
              "taxPercentage": {
                "type": "number",
                "format": "float",
                "multipleOf": 0.001,
                "minimum": 0,
                "maximum": 100,
                "example": 12.532,
                "description": "This field is used only to indicate the applied tax. All Electricity Rate prices should be supplied including the tax."
              },
              "intervalPricing": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "weekDays": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "monday",
                          "tuesday",
                          "wednesday",
                          "thursday",
                          "friday",
                          "saturday",
                          "sunday"
                        ]
                      },
                      "description": "Specify the day for which the pricing would be valid."
                    },
                    "elements": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "startAt": {
                            "type": "string",
                            "pattern": "^\\d{2}:\\d{2}:\\d{2}$",
                            "description": "Example 00:00:00",
                            "example": "00:00:00"
                          },
                          "endAt": {
                            "type": "string",
                            "pattern": "^\\d{2}:\\d{2}:\\d{2}$",
                            "description": "Example 01:00:00",
                            "example": "01:00:00"
                          },
                          "price": {
                            "type": "number",
                            "nullable": true
                          }
                        },
                        "required": [
                          "startAt",
                          "endAt"
                        ]
                      }
                    }
                  },
                  "required": [
                    "weekDays"
                  ]
                },
                "nullable": true,
                "description": "The time interval must be always the same for every single day through the week and could be either 15 min, 30 min or 60 min. The startAt and endAt must comply with this restriction."
              },
              "intervalSpecialPricing": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "specialPricingName": {
                      "type": "string"
                    },
                    "validOn": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "date"
                      },
                      "description": "A list of dates when the special pricing would apply, e.g. holidays, promo days, etc."
                    },
                    "elements": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "startAt": {
                            "type": "string",
                            "pattern": "^\\d{2}:\\d{2}:\\d{2}$",
                            "description": "Example 00:00:00",
                            "example": "00:00:00"
                          },
                          "endAt": {
                            "type": "string",
                            "pattern": "^\\d{2}:\\d{2}:\\d{2}$",
                            "description": "Example 01:00:00",
                            "example": "01:00:00"
                          },
                          "price": {
                            "type": "number",
                            "nullable": true
                          }
                        },
                        "required": [
                          "startAt",
                          "endAt"
                        ]
                      }
                    }
                  },
                  "required": [
                    "specialPricingName",
                    "validOn"
                  ]
                },
                "nullable": true,
                "description": "The same time interval as in intervalPricing must be used. The startAt and endAt must comply with this restriction."
              }
            },
            "required": [
              "id",
              "name",
              "pricingGranularityInMinutes",
              "defaultPricePerKwh"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "electricityRateReadDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string"
              },
              "utilityId": {
                "type": "integer",
                "nullable": true
              },
              "pricingGranularityInMinutes": {
                "type": "integer",
                "enum": [
                  60,
                  30,
                  15
                ]
              },
              "defaultPricePerKwh": {
                "type": "number",
                "description": "If there is no pricing supplied for a time interval or no time interval at all, this price would be used."
              },
              "taxId": {
                "type": "integer",
                "description": "Deprecated! Please use `taxPercentage` instead! This field is used only to indicate the applied tax. All Electricity Rate prices should be supplied including the tax.",
                "deprecated": true
              },
              "taxPercentage": {
                "type": "number",
                "format": "float",
                "multipleOf": 0.001,
                "minimum": 0,
                "maximum": 100,
                "example": 12.532,
                "description": "This field is used only to indicate the applied tax. All Electricity Rate prices should be supplied including the tax."
              },
              "intervalPricing": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "weekDays": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "monday",
                          "tuesday",
                          "wednesday",
                          "thursday",
                          "friday",
                          "saturday",
                          "sunday"
                        ]
                      },
                      "description": "Specify the day for which the pricing would be valid."
                    },
                    "elements": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "startAt": {
                            "type": "string",
                            "pattern": "^\\d{2}:\\d{2}:\\d{2}$",
                            "description": "Example 00:00:00",
                            "example": "00:00:00"
                          },
                          "endAt": {
                            "type": "string",
                            "pattern": "^\\d{2}:\\d{2}:\\d{2}$",
                            "description": "Example 01:00:00",
                            "example": "01:00:00"
                          },
                          "price": {
                            "type": "number",
                            "nullable": true
                          }
                        },
                        "required": [
                          "startAt",
                          "endAt"
                        ]
                      }
                    }
                  },
                  "required": [
                    "weekDays"
                  ]
                },
                "nullable": true,
                "description": "The time interval must be always the same for every single day through the week and could be either 15 min, 30 min or 60 min. The startAt and endAt must comply with this restriction."
              },
              "intervalSpecialPricing": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "specialPricingName": {
                      "type": "string"
                    },
                    "validOn": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "date"
                      },
                      "description": "A list of dates when the special pricing would apply, e.g. holidays, promo days, etc."
                    },
                    "elements": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "startAt": {
                            "type": "string",
                            "pattern": "^\\d{2}:\\d{2}:\\d{2}$",
                            "description": "Example 00:00:00",
                            "example": "00:00:00"
                          },
                          "endAt": {
                            "type": "string",
                            "pattern": "^\\d{2}:\\d{2}:\\d{2}$",
                            "description": "Example 01:00:00",
                            "example": "01:00:00"
                          },
                          "price": {
                            "type": "number",
                            "nullable": true
                          }
                        },
                        "required": [
                          "startAt",
                          "endAt"
                        ]
                      }
                    }
                  },
                  "required": [
                    "specialPricingName",
                    "validOn"
                  ]
                },
                "nullable": true,
                "description": "The same time interval as in intervalPricing must be used. The startAt and endAt must comply with this restriction."
              }
            },
            "required": [
              "id",
              "name",
              "pricingGranularityInMinutes",
              "defaultPricePerKwh"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "electricityRateUpdateDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string"
              },
              "utilityId": {
                "type": "integer",
                "nullable": true
              },
              "pricingGranularityInMinutes": {
                "type": "integer",
                "enum": [
                  60,
                  30,
                  15
                ]
              },
              "defaultPricePerKwh": {
                "type": "number",
                "description": "If there is no pricing supplied for a time interval or no time interval at all, this price would be used."
              },
              "taxId": {
                "type": "integer",
                "description": "Deprecated! Please use `taxPercentage` instead! This field is used only to indicate the applied tax. All Electricity Rate prices should be supplied including the tax.",
                "deprecated": true
              },
              "taxPercentage": {
                "type": "number",
                "format": "float",
                "multipleOf": 0.001,
                "minimum": 0,
                "maximum": 100,
                "example": 12.532,
                "description": "This field is used only to indicate the applied tax. All Electricity Rate prices should be supplied including the tax."
              },
              "intervalPricing": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "weekDays": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "monday",
                          "tuesday",
                          "wednesday",
                          "thursday",
                          "friday",
                          "saturday",
                          "sunday"
                        ]
                      },
                      "description": "Specify the day for which the pricing would be valid."
                    },
                    "elements": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "startAt": {
                            "type": "string",
                            "pattern": "^\\d{2}:\\d{2}:\\d{2}$",
                            "description": "Example 00:00:00",
                            "example": "00:00:00"
                          },
                          "endAt": {
                            "type": "string",
                            "pattern": "^\\d{2}:\\d{2}:\\d{2}$",
                            "description": "Example 01:00:00",
                            "example": "01:00:00"
                          },
                          "price": {
                            "type": "number",
                            "nullable": true
                          }
                        },
                        "required": [
                          "startAt",
                          "endAt"
                        ]
                      }
                    }
                  },
                  "required": [
                    "weekDays"
                  ]
                },
                "nullable": true,
                "description": "The time interval must be always the same for every single day through the week and could be either 15 min, 30 min or 60 min. The startAt and endAt must comply with this restriction."
              },
              "intervalSpecialPricing": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "specialPricingName": {
                      "type": "string"
                    },
                    "validOn": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "date"
                      },
                      "description": "A list of dates when the special pricing would apply, e.g. holidays, promo days, etc."
                    },
                    "elements": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "startAt": {
                            "type": "string",
                            "pattern": "^\\d{2}:\\d{2}:\\d{2}$",
                            "description": "Example 00:00:00",
                            "example": "00:00:00"
                          },
                          "endAt": {
                            "type": "string",
                            "pattern": "^\\d{2}:\\d{2}:\\d{2}$",
                            "description": "Example 01:00:00",
                            "example": "01:00:00"
                          },
                          "price": {
                            "type": "number",
                            "nullable": true
                          }
                        },
                        "required": [
                          "startAt",
                          "endAt"
                        ]
                      }
                    }
                  },
                  "required": [
                    "specialPricingName",
                    "validOn"
                  ]
                },
                "nullable": true,
                "description": "The same time interval as in intervalPricing must be used. The startAt and endAt must comply with this restriction."
              }
            },
            "required": [
              "id",
              "name",
              "pricingGranularityInMinutes",
              "defaultPricePerKwh"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "electricityRateDeleteDeprecated": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "electricityRatesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "name": {
                  "type": "string"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "admin_defined",
                    "octopus_go",
                    "agile_octopus",
                    "nord_pool"
                  ]
                },
                "utilityId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The id of the utility providing the electricity. Configured in the admin panel."
                },
                "defaultPrice": {
                  "type": "number",
                  "format": "decimal",
                  "description": "The default price per kWh, which will be applied if there is no pricing supplied for a time interval.\nPrices of all electricity rates created through the Public API or the admin panel must include the tax in the price.\nPrice per kWh.\n"
                },
                "taxPercentage": {
                  "type": "number",
                  "format": "float",
                  "nullable": true,
                  "multipleOf": 0.001,
                  "minimum": 0,
                  "maximum": 100,
                  "example": 12.532,
                  "description": "This field is used only to indicate the applied tax. All Electricity Rate prices should be provided with the tax included in the price."
                }
              },
              "required": [
                "id",
                "operatorId",
                "name",
                "type",
                "defaultPrice",
                "taxPercentage"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "electricityRateCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "admin_defined",
                  "octopus_go",
                  "agile_octopus",
                  "nord_pool"
                ]
              },
              "utilityId": {
                "type": "integer",
                "nullable": true,
                "description": "The id of the utility providing the electricity. Configured in the admin panel."
              },
              "defaultPrice": {
                "type": "number",
                "format": "decimal",
                "description": "The default price per kWh, which will be applied if there is no pricing supplied for a time interval.\nPrices of all electricity rates created through the Public API or the admin panel must include the tax in the price.\nPrice per kWh.\n"
              },
              "taxPercentage": {
                "type": "number",
                "format": "float",
                "nullable": true,
                "multipleOf": 0.001,
                "minimum": 0,
                "maximum": 100,
                "example": 12.532,
                "description": "This field is used only to indicate the applied tax. All Electricity Rate prices should be provided with the tax included in the price."
              }
            },
            "required": [
              "id",
              "operatorId",
              "name",
              "type",
              "defaultPrice",
              "taxPercentage"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "electricityRateRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "admin_defined",
                  "octopus_go",
                  "agile_octopus",
                  "nord_pool"
                ]
              },
              "utilityId": {
                "type": "integer",
                "nullable": true,
                "description": "The id of the utility providing the electricity. Configured in the admin panel."
              },
              "defaultPrice": {
                "type": "number",
                "format": "decimal",
                "description": "The default price per kWh, which will be applied if there is no pricing supplied for a time interval.\nPrices of all electricity rates created through the Public API or the admin panel must include the tax in the price.\nPrice per kWh.\n"
              },
              "taxPercentage": {
                "type": "number",
                "format": "float",
                "nullable": true,
                "multipleOf": 0.001,
                "minimum": 0,
                "maximum": 100,
                "example": 12.532,
                "description": "This field is used only to indicate the applied tax. All Electricity Rate prices should be provided with the tax included in the price."
              }
            },
            "required": [
              "id",
              "operatorId",
              "name",
              "type",
              "defaultPrice",
              "taxPercentage"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "electricityRateDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "electricityRateUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "admin_defined",
                  "octopus_go",
                  "agile_octopus",
                  "nord_pool"
                ]
              },
              "utilityId": {
                "type": "integer",
                "nullable": true,
                "description": "The id of the utility providing the electricity. Configured in the admin panel."
              },
              "defaultPrice": {
                "type": "number",
                "format": "decimal",
                "description": "The default price per kWh, which will be applied if there is no pricing supplied for a time interval.\nPrices of all electricity rates created through the Public API or the admin panel must include the tax in the price.\nPrice per kWh.\n"
              },
              "taxPercentage": {
                "type": "number",
                "format": "float",
                "nullable": true,
                "multipleOf": 0.001,
                "minimum": 0,
                "maximum": 100,
                "example": 12.532,
                "description": "This field is used only to indicate the applied tax. All Electricity Rate prices should be provided with the tax included in the price."
              }
            },
            "required": [
              "id",
              "operatorId",
              "name",
              "type",
              "defaultPrice",
              "taxPercentage"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "electricityRateEnergyMixRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "solar": {
                "type": "number",
                "description": "Represents what percent of the energy is generated from solar power.",
                "minimum": 0,
                "maximum": 100,
                "default": 0
              },
              "wind": {
                "type": "number",
                "description": "Represents what percent of the energy is generated from wind turbines.",
                "minimum": 0,
                "maximum": 100,
                "default": 0
              },
              "hydro": {
                "type": "number",
                "description": "Represents what percent of the energy is generated from hydropower.",
                "minimum": 0,
                "maximum": 100,
                "default": 0
              },
              "nuclear": {
                "type": "number",
                "description": "Represents what percent of the energy is generated from nuclear power plants.",
                "minimum": 0,
                "maximum": 100,
                "default": 0
              },
              "coal": {
                "type": "number",
                "description": "Represents what percent of the energy is generated from burning coal.",
                "minimum": 0,
                "maximum": 100,
                "default": 0
              },
              "naturalGas": {
                "type": "number",
                "description": "Represents what percent of the energy is generated from natural gas.",
                "minimum": 0,
                "maximum": 100,
                "default": 0
              },
              "otherRenewable": {
                "type": "number",
                "description": "Represents what percent of the energy is generated from any other type of renewable energy source. This could include any other renewable source not specifically listed.",
                "minimum": 0,
                "maximum": 100,
                "default": 0
              },
              "otherNonRenewable": {
                "type": "number",
                "description": "Represents what percent of the energy is generated from any other type of non-renewable energy source. This could include any other non-renewable source not specifically listed.",
                "minimum": 0,
                "maximum": 100,
                "default": 0
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "electricityRateEnergyMixUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "solar": {
                "type": "number",
                "description": "Represents what percent of the energy is generated from solar power.",
                "minimum": 0,
                "maximum": 100,
                "default": 0
              },
              "wind": {
                "type": "number",
                "description": "Represents what percent of the energy is generated from wind turbines.",
                "minimum": 0,
                "maximum": 100,
                "default": 0
              },
              "hydro": {
                "type": "number",
                "description": "Represents what percent of the energy is generated from hydropower.",
                "minimum": 0,
                "maximum": 100,
                "default": 0
              },
              "nuclear": {
                "type": "number",
                "description": "Represents what percent of the energy is generated from nuclear power plants.",
                "minimum": 0,
                "maximum": 100,
                "default": 0
              },
              "coal": {
                "type": "number",
                "description": "Represents what percent of the energy is generated from burning coal.",
                "minimum": 0,
                "maximum": 100,
                "default": 0
              },
              "naturalGas": {
                "type": "number",
                "description": "Represents what percent of the energy is generated from natural gas.",
                "minimum": 0,
                "maximum": 100,
                "default": 0
              },
              "otherRenewable": {
                "type": "number",
                "description": "Represents what percent of the energy is generated from any other type of renewable energy source. This could include any other renewable source not specifically listed.",
                "minimum": 0,
                "maximum": 100,
                "default": 0
              },
              "otherNonRenewable": {
                "type": "number",
                "description": "Represents what percent of the energy is generated from any other type of non-renewable energy source. This could include any other non-renewable source not specifically listed.",
                "minimum": 0,
                "maximum": 100,
                "default": 0
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "electricityRatePricePeriodsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "title": "Week Day Price Period",
                  "required": [
                    "weekDay",
                    "periods"
                  ],
                  "type": "object",
                  "properties": {
                    "weekDay": {
                      "description": "Can be one of the listed days of the week or `any`.",
                      "type": "string",
                      "enum": [
                        "mon",
                        "tue",
                        "wed",
                        "thu",
                        "fri",
                        "sat",
                        "sun",
                        "any"
                      ]
                    },
                    "periods": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "description": "A specific price period. The `startsAt` and `endsAt` times should be provided in the local time zone and not in UTC.\nDepending on the tenant multi timezone configuration either the tenant timezone will be used, or the timezone specific to the corresponding resource.\n",
                        "properties": {
                          "startsAt": {
                            "type": "string",
                            "pattern": "^\\d{2}:\\d{2}$",
                            "description": "The start time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                            "example": "23:45"
                          },
                          "endsAt": {
                            "type": "string",
                            "pattern": "^\\d{2}:\\d{2}$",
                            "description": "The end time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                            "example": "23:45"
                          },
                          "price": {
                            "type": "number",
                            "format": "decimal",
                            "example": 1.23,
                            "description": "The price that will apply for the given price period. Must include tax."
                          }
                        },
                        "required": [
                          "startsAt",
                          "endsAt",
                          "price"
                        ]
                      }
                    }
                  }
                },
                {
                  "title": "Date-specific Price Period",
                  "required": [
                    "date",
                    "periods"
                  ],
                  "type": "object",
                  "properties": {
                    "date": {
                      "description": "Uses the YYYY-MM-DD date format.",
                      "type": "string",
                      "format": "date",
                      "example": "2024-10-28"
                    },
                    "periods": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "description": "A specific price period. The `startsAt` and `endsAt` times should be provided in the local time zone and not in UTC.\nDepending on the tenant multi timezone configuration either the tenant timezone will be used, or the timezone specific to the corresponding resource.\n",
                        "properties": {
                          "startsAt": {
                            "type": "string",
                            "pattern": "^\\d{2}:\\d{2}$",
                            "description": "The start time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                            "example": "23:45"
                          },
                          "endsAt": {
                            "type": "string",
                            "pattern": "^\\d{2}:\\d{2}$",
                            "description": "The end time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                            "example": "23:45"
                          },
                          "price": {
                            "type": "number",
                            "format": "decimal",
                            "example": 1.23,
                            "description": "The price that will apply for the given price period. Must include tax."
                          }
                        },
                        "required": [
                          "startsAt",
                          "endsAt",
                          "price"
                        ]
                      }
                    }
                  }
                }
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "electricityRatePricePeriodsDateListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "title": "Date-specific Price Period",
              "required": [
                "date",
                "periods"
              ],
              "type": "object",
              "properties": {
                "date": {
                  "description": "Uses the YYYY-MM-DD date format.",
                  "type": "string",
                  "format": "date",
                  "example": "2024-10-28"
                },
                "periods": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "description": "A specific price period. The `startsAt` and `endsAt` times should be provided in the local time zone and not in UTC.\nDepending on the tenant multi timezone configuration either the tenant timezone will be used, or the timezone specific to the corresponding resource.\n",
                    "properties": {
                      "startsAt": {
                        "type": "string",
                        "pattern": "^\\d{2}:\\d{2}$",
                        "description": "The start time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                        "example": "23:45"
                      },
                      "endsAt": {
                        "type": "string",
                        "pattern": "^\\d{2}:\\d{2}$",
                        "description": "The end time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                        "example": "23:45"
                      },
                      "price": {
                        "type": "number",
                        "format": "decimal",
                        "example": 1.23,
                        "description": "The price that will apply for the given price period. Must include tax."
                      }
                    },
                    "required": [
                      "startsAt",
                      "endsAt",
                      "price"
                    ]
                  }
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "electricityRatePricePeriodsDateRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "title": "Date-specific Price Period",
            "required": [
              "date",
              "periods"
            ],
            "type": "object",
            "properties": {
              "date": {
                "description": "Uses the YYYY-MM-DD date format.",
                "type": "string",
                "format": "date",
                "example": "2024-10-28"
              },
              "periods": {
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "A specific price period. The `startsAt` and `endsAt` times should be provided in the local time zone and not in UTC.\nDepending on the tenant multi timezone configuration either the tenant timezone will be used, or the timezone specific to the corresponding resource.\n",
                  "properties": {
                    "startsAt": {
                      "type": "string",
                      "pattern": "^\\d{2}:\\d{2}$",
                      "description": "The start time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                      "example": "23:45"
                    },
                    "endsAt": {
                      "type": "string",
                      "pattern": "^\\d{2}:\\d{2}$",
                      "description": "The end time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                      "example": "23:45"
                    },
                    "price": {
                      "type": "number",
                      "format": "decimal",
                      "example": 1.23,
                      "description": "The price that will apply for the given price period. Must include tax."
                    }
                  },
                  "required": [
                    "startsAt",
                    "endsAt",
                    "price"
                  ]
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "electricityRatePricePeriodsDateCreateOrUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "title": "Date-specific Price Period",
            "required": [
              "date",
              "periods"
            ],
            "type": "object",
            "properties": {
              "date": {
                "description": "Uses the YYYY-MM-DD date format.",
                "type": "string",
                "format": "date",
                "example": "2024-10-28"
              },
              "periods": {
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "A specific price period. The `startsAt` and `endsAt` times should be provided in the local time zone and not in UTC.\nDepending on the tenant multi timezone configuration either the tenant timezone will be used, or the timezone specific to the corresponding resource.\n",
                  "properties": {
                    "startsAt": {
                      "type": "string",
                      "pattern": "^\\d{2}:\\d{2}$",
                      "description": "The start time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                      "example": "23:45"
                    },
                    "endsAt": {
                      "type": "string",
                      "pattern": "^\\d{2}:\\d{2}$",
                      "description": "The end time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                      "example": "23:45"
                    },
                    "price": {
                      "type": "number",
                      "format": "decimal",
                      "example": 1.23,
                      "description": "The price that will apply for the given price period. Must include tax."
                    }
                  },
                  "required": [
                    "startsAt",
                    "endsAt",
                    "price"
                  ]
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "title": "Date-specific Price Period",
            "required": [
              "date",
              "periods"
            ],
            "type": "object",
            "properties": {
              "date": {
                "description": "Uses the YYYY-MM-DD date format.",
                "type": "string",
                "format": "date",
                "example": "2024-10-28"
              },
              "periods": {
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "A specific price period. The `startsAt` and `endsAt` times should be provided in the local time zone and not in UTC.\nDepending on the tenant multi timezone configuration either the tenant timezone will be used, or the timezone specific to the corresponding resource.\n",
                  "properties": {
                    "startsAt": {
                      "type": "string",
                      "pattern": "^\\d{2}:\\d{2}$",
                      "description": "The start time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                      "example": "23:45"
                    },
                    "endsAt": {
                      "type": "string",
                      "pattern": "^\\d{2}:\\d{2}$",
                      "description": "The end time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                      "example": "23:45"
                    },
                    "price": {
                      "type": "number",
                      "format": "decimal",
                      "example": 1.23,
                      "description": "The price that will apply for the given price period. Must include tax."
                    }
                  },
                  "required": [
                    "startsAt",
                    "endsAt",
                    "price"
                  ]
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "electricityRatePricePeriodsDateDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "electricityRatePricePeriodsWeekDayListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "title": "Week Day Price Period",
              "required": [
                "weekDay",
                "periods"
              ],
              "type": "object",
              "properties": {
                "weekDay": {
                  "description": "Can be one of the listed days of the week or `any`.",
                  "type": "string",
                  "enum": [
                    "mon",
                    "tue",
                    "wed",
                    "thu",
                    "fri",
                    "sat",
                    "sun",
                    "any"
                  ]
                },
                "periods": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "description": "A specific price period. The `startsAt` and `endsAt` times should be provided in the local time zone and not in UTC.\nDepending on the tenant multi timezone configuration either the tenant timezone will be used, or the timezone specific to the corresponding resource.\n",
                    "properties": {
                      "startsAt": {
                        "type": "string",
                        "pattern": "^\\d{2}:\\d{2}$",
                        "description": "The start time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                        "example": "23:45"
                      },
                      "endsAt": {
                        "type": "string",
                        "pattern": "^\\d{2}:\\d{2}$",
                        "description": "The end time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                        "example": "23:45"
                      },
                      "price": {
                        "type": "number",
                        "format": "decimal",
                        "example": 1.23,
                        "description": "The price that will apply for the given price period. Must include tax."
                      }
                    },
                    "required": [
                      "startsAt",
                      "endsAt",
                      "price"
                    ]
                  }
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "electricityRatePricePeriodsWeekDayRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "title": "Week Day Price Period",
            "required": [
              "weekDay",
              "periods"
            ],
            "type": "object",
            "properties": {
              "weekDay": {
                "description": "Can be one of the listed days of the week or `any`.",
                "type": "string",
                "enum": [
                  "mon",
                  "tue",
                  "wed",
                  "thu",
                  "fri",
                  "sat",
                  "sun",
                  "any"
                ]
              },
              "periods": {
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "A specific price period. The `startsAt` and `endsAt` times should be provided in the local time zone and not in UTC.\nDepending on the tenant multi timezone configuration either the tenant timezone will be used, or the timezone specific to the corresponding resource.\n",
                  "properties": {
                    "startsAt": {
                      "type": "string",
                      "pattern": "^\\d{2}:\\d{2}$",
                      "description": "The start time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                      "example": "23:45"
                    },
                    "endsAt": {
                      "type": "string",
                      "pattern": "^\\d{2}:\\d{2}$",
                      "description": "The end time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                      "example": "23:45"
                    },
                    "price": {
                      "type": "number",
                      "format": "decimal",
                      "example": 1.23,
                      "description": "The price that will apply for the given price period. Must include tax."
                    }
                  },
                  "required": [
                    "startsAt",
                    "endsAt",
                    "price"
                  ]
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "electricityRatePricePeriodsWeekDayCreateaOrUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "title": "Week Day Price Period",
            "required": [
              "weekDay",
              "periods"
            ],
            "type": "object",
            "properties": {
              "weekDay": {
                "description": "Can be one of the listed days of the week or `any`.",
                "type": "string",
                "enum": [
                  "mon",
                  "tue",
                  "wed",
                  "thu",
                  "fri",
                  "sat",
                  "sun",
                  "any"
                ]
              },
              "periods": {
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "A specific price period. The `startsAt` and `endsAt` times should be provided in the local time zone and not in UTC.\nDepending on the tenant multi timezone configuration either the tenant timezone will be used, or the timezone specific to the corresponding resource.\n",
                  "properties": {
                    "startsAt": {
                      "type": "string",
                      "pattern": "^\\d{2}:\\d{2}$",
                      "description": "The start time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                      "example": "23:45"
                    },
                    "endsAt": {
                      "type": "string",
                      "pattern": "^\\d{2}:\\d{2}$",
                      "description": "The end time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                      "example": "23:45"
                    },
                    "price": {
                      "type": "number",
                      "format": "decimal",
                      "example": 1.23,
                      "description": "The price that will apply for the given price period. Must include tax."
                    }
                  },
                  "required": [
                    "startsAt",
                    "endsAt",
                    "price"
                  ]
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "title": "Week Day Price Period",
            "required": [
              "weekDay",
              "periods"
            ],
            "type": "object",
            "properties": {
              "weekDay": {
                "description": "Can be one of the listed days of the week or `any`.",
                "type": "string",
                "enum": [
                  "mon",
                  "tue",
                  "wed",
                  "thu",
                  "fri",
                  "sat",
                  "sun",
                  "any"
                ]
              },
              "periods": {
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "A specific price period. The `startsAt` and `endsAt` times should be provided in the local time zone and not in UTC.\nDepending on the tenant multi timezone configuration either the tenant timezone will be used, or the timezone specific to the corresponding resource.\n",
                  "properties": {
                    "startsAt": {
                      "type": "string",
                      "pattern": "^\\d{2}:\\d{2}$",
                      "description": "The start time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                      "example": "23:45"
                    },
                    "endsAt": {
                      "type": "string",
                      "pattern": "^\\d{2}:\\d{2}$",
                      "description": "The end time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                      "example": "23:45"
                    },
                    "price": {
                      "type": "number",
                      "format": "decimal",
                      "example": 1.23,
                      "description": "The price that will apply for the given price period. Must include tax."
                    }
                  },
                  "required": [
                    "startsAt",
                    "endsAt",
                    "price"
                  ]
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "electricityRatePricePeriodsWeekDayDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "energyCouponTemplatesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "description": "Energy coupon template resource",
              "type": "object",
              "properties": {
                "code": {
                  "type": "string",
                  "description": "Unique redemption code for the template",
                  "maxLength": 50
                },
                "name": {
                  "type": "string",
                  "description": "Template name",
                  "maxLength": 255
                },
                "energyWh": {
                  "type": "integer",
                  "description": "Energy amount in watt-hours granted per redemption",
                  "minimum": 1,
                  "maximum": 4000000000
                },
                "maxRedemptionCount": {
                  "type": "integer",
                  "description": "Maximum number of redemptions allowed. Omitted when unlimited."
                },
                "validityType": {
                  "type": "string",
                  "enum": [
                    "fixed_dates",
                    "period"
                  ],
                  "description": "Validity type for energy coupon templates:\n- **fixed_dates**: Coupons have fixed start and end dates\n- **period**: Coupons are valid for a number of days from the moment of redemption\n",
                  "example": "fixed_dates"
                },
                "validityDurationDays": {
                  "type": "integer",
                  "description": "Number of days the coupon is valid from the moment of redemption. Only present when validityType is period."
                },
                "couponValidFrom": {
                  "type": "string",
                  "format": "date",
                  "description": "Start date for coupon validity. Only present when validityType is fixed_dates."
                },
                "couponValidTo": {
                  "type": "string",
                  "format": "date",
                  "description": "End date for coupon validity. Only present when validityType is fixed_dates."
                },
                "templateValidFrom": {
                  "type": "string",
                  "format": "date",
                  "description": "Uses the YYYY-MM-DD date format."
                },
                "templateValidTo": {
                  "type": "string",
                  "format": "date",
                  "description": "Uses the YYYY-MM-DD date format."
                },
                "redemptionRules": {
                  "type": "object",
                  "description": "Rules that restrict who can redeem this template. Each rule is an independent check; enabling multiple rules stacks them.\n",
                  "properties": {
                    "newUsersOnly": {
                      "type": "boolean",
                      "description": "When true, only users registered within the last 7 days can redeem. Does not limit redemption count — combine with `oncePerUser` to also limit new users to one redemption."
                    },
                    "oncePerDevice": {
                      "type": "boolean",
                      "description": "When true, each device can redeem the template only once."
                    },
                    "oncePerEmail": {
                      "type": "boolean",
                      "description": "When true, each email address can redeem the template only once."
                    },
                    "oncePerPhoneNumber": {
                      "type": "boolean",
                      "description": "When true, each phone number can redeem the template only once."
                    },
                    "oncePerUser": {
                      "type": "boolean",
                      "description": "When true, each user account can redeem the template only once."
                    }
                  }
                },
                "restrictions": {
                  "type": "object",
                  "description": "Restrictions that limit where and by whom coupons can be used. All sub-restrictions are always returned.\n",
                  "properties": {
                    "personalChargePointsOnly": {
                      "type": "boolean",
                      "description": "When true, coupons can only be used at personal (home) charge points."
                    },
                    "evseType": {
                      "description": "EVSE type restriction for the energy coupon:\n- **ac**: Coupon can only be used at AC charging stations\n- **dc**: Coupon can only be used at DC charging stations\n- **any**: Coupon can be used at any charging station type\n",
                      "type": "string",
                      "enum": [
                        "ac",
                        "dc",
                        "any"
                      ],
                      "example": "any"
                    },
                    "countryRestriction": {
                      "type": "object",
                      "description": "Allow/deny charge points in specific countries.",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "none",
                            "allow",
                            "deny"
                          ],
                          "description": "- **none**: No country restriction.\n- **allow**: Only countries in the list are allowed.\n- **deny**: Countries in the list are denied.\n"
                        },
                        "countries": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "AF",
                              "AX",
                              "AL",
                              "DZ",
                              "AS",
                              "AD",
                              "AO",
                              "AI",
                              "AQ",
                              "AG",
                              "AR",
                              "AM",
                              "AW",
                              "AU",
                              "AT",
                              "AZ",
                              "BS",
                              "BH",
                              "BD",
                              "BB",
                              "BY",
                              "BE",
                              "BZ",
                              "BJ",
                              "BM",
                              "BT",
                              "BO",
                              "BQ",
                              "BA",
                              "BW",
                              "BV",
                              "BR",
                              "IO",
                              "BN",
                              "BG",
                              "BF",
                              "BI",
                              "KH",
                              "CM",
                              "CA",
                              "CV",
                              "KY",
                              "CF",
                              "TD",
                              "CL",
                              "CN",
                              "CX",
                              "CC",
                              "CO",
                              "KM",
                              "CG",
                              "CD",
                              "CK",
                              "CR",
                              "CI",
                              "HR",
                              "CU",
                              "CW",
                              "CY",
                              "CZ",
                              "DK",
                              "DJ",
                              "DM",
                              "DO",
                              "EC",
                              "EG",
                              "SV",
                              "GQ",
                              "ER",
                              "EE",
                              "ET",
                              "FK",
                              "FO",
                              "FJ",
                              "FI",
                              "FR",
                              "GF",
                              "PF",
                              "TF",
                              "GA",
                              "GM",
                              "GE",
                              "DE",
                              "GH",
                              "GI",
                              "GR",
                              "GL",
                              "GD",
                              "GP",
                              "GU",
                              "GT",
                              "GG",
                              "GN",
                              "GW",
                              "GY",
                              "HT",
                              "HM",
                              "VA",
                              "HN",
                              "HK",
                              "HU",
                              "IS",
                              "IN",
                              "ID",
                              "IR",
                              "IQ",
                              "IE",
                              "IM",
                              "IL",
                              "IT",
                              "JM",
                              "JP",
                              "JE",
                              "JO",
                              "KZ",
                              "KE",
                              "KI",
                              "KP",
                              "KR",
                              "XK",
                              "KW",
                              "KG",
                              "LA",
                              "LV",
                              "LB",
                              "LS",
                              "LR",
                              "LY",
                              "LI",
                              "LT",
                              "LU",
                              "MO",
                              "MK",
                              "MG",
                              "MW",
                              "MY",
                              "MV",
                              "ML",
                              "MT",
                              "MH",
                              "MQ",
                              "MR",
                              "MU",
                              "YT",
                              "MX",
                              "FM",
                              "MD",
                              "MC",
                              "MN",
                              "ME",
                              "MS",
                              "MA",
                              "MZ",
                              "MM",
                              "NA",
                              "NR",
                              "NP",
                              "NL",
                              "NC",
                              "NZ",
                              "NI",
                              "NE",
                              "NG",
                              "NU",
                              "NF",
                              "MP",
                              "NO",
                              "OM",
                              "PK",
                              "PW",
                              "PS",
                              "PA",
                              "PG",
                              "PY",
                              "PE",
                              "PH",
                              "PN",
                              "PL",
                              "PT",
                              "PR",
                              "QA",
                              "RE",
                              "RO",
                              "RU",
                              "RW",
                              "BL",
                              "SH",
                              "KN",
                              "LC",
                              "MF",
                              "PM",
                              "VC",
                              "WS",
                              "SM",
                              "ST",
                              "SA",
                              "SN",
                              "RS",
                              "SC",
                              "SL",
                              "SG",
                              "SX",
                              "SK",
                              "SI",
                              "SB",
                              "SO",
                              "ZA",
                              "GS",
                              "SS",
                              "ES",
                              "LK",
                              "SD",
                              "SR",
                              "SJ",
                              "SZ",
                              "SE",
                              "CH",
                              "SY",
                              "TW",
                              "TJ",
                              "TZ",
                              "TH",
                              "TL",
                              "TG",
                              "TK",
                              "TO",
                              "TT",
                              "TN",
                              "TR",
                              "TM",
                              "TC",
                              "TV",
                              "UG",
                              "UA",
                              "AE",
                              "GB",
                              "US",
                              "UM",
                              "UY",
                              "UZ",
                              "VU",
                              "VE",
                              "VN",
                              "VG",
                              "VI",
                              "WF",
                              "EH",
                              "YE",
                              "ZM",
                              "ZW"
                            ]
                          },
                          "description": "List of ISO 3166-1 alpha-2 country codes. Empty when type is none."
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    "partnerRestriction": {
                      "type": "object",
                      "description": "Allow/deny charge points owned by specific partners, or exclude all roaming charge points.",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "none",
                            "allow",
                            "deny",
                            "exclude_roaming"
                          ],
                          "description": "- **none**: No partner restriction.\n- **allow**: Only partners in the list are allowed.\n- **deny**: Partners in the list are denied.\n- **exclude_roaming**: Roaming charge points cannot be used. Partner list is ignored.\n"
                        },
                        "partnerIds": {
                          "type": "array",
                          "items": {
                            "type": "integer"
                          },
                          "description": "List of partner IDs. Empty when type is none or exclude_roaming."
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    "locationRestriction": {
                      "type": "object",
                      "description": "Allow/deny specific locations.",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "none",
                            "allow",
                            "deny"
                          ],
                          "description": "- **none**: No location restriction.\n- **allow**: Only locations in the list are allowed.\n- **deny**: Locations in the list are denied.\n"
                        },
                        "locationIds": {
                          "type": "array",
                          "items": {
                            "type": "integer"
                          },
                          "description": "List of location IDs. Empty when type is none."
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    "locationTagRestriction": {
                      "type": "object",
                      "description": "Allow/deny locations by tag name.",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "none",
                            "allow",
                            "deny"
                          ],
                          "description": "- **none**: No location tag restriction.\n- **allow**: Only locations with these tags are allowed.\n- **deny**: Locations with these tags are denied.\n"
                        },
                        "locationTagNames": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "List of location tag names. Empty when type is none."
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    "userGroupRestriction": {
                      "type": "object",
                      "description": "Allow/deny specific user groups.",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "none",
                            "allow",
                            "deny"
                          ],
                          "description": "- **none**: No user group restriction.\n- **allow**: Only users in these groups are allowed.\n- **deny**: Users in these groups are denied.\n"
                        },
                        "userGroupIds": {
                          "type": "array",
                          "items": {
                            "type": "integer"
                          },
                          "description": "List of user group IDs. Empty when type is none."
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    "minSessionEnergyWh": {
                      "type": "integer",
                      "minimum": 0,
                      "description": "Minimum session energy in watt-hours required for the coupon to be applicable."
                    },
                    "maxSessionEnergyWh": {
                      "type": "integer",
                      "minimum": 0,
                      "description": "Maximum session energy in watt-hours for the coupon to be applicable."
                    }
                  }
                },
                "externalId": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "An optional external identifier for integration purposes"
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Tags associated with this template"
                },
                "id": {
                  "type": "integer",
                  "description": "System-generated unique identifier",
                  "readOnly": true
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "active",
                    "paused",
                    "expired",
                    "exhausted"
                  ],
                  "description": "Energy coupon template status:\n- **active**: Template is active and available for redemption\n- **paused**: Template is temporarily paused, no new redemptions allowed\n- **expired**: Template has been deactivated or reached its expiry date\n- **exhausted**: Template has reached its maximum number of redemptions\n",
                  "example": "active"
                },
                "currentRedemptionCount": {
                  "type": "integer",
                  "description": "Current number of redemptions",
                  "readOnly": true
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "code",
                "name",
                "status",
                "energyWh",
                "currentRedemptionCount",
                "validityType",
                "redemptionRules",
                "restrictions",
                "tags",
                "createdAt",
                "updatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "energyCouponTemplateCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Energy coupon template resource",
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "description": "Unique redemption code for the template",
                "maxLength": 50
              },
              "name": {
                "type": "string",
                "description": "Template name",
                "maxLength": 255
              },
              "energyWh": {
                "type": "integer",
                "description": "Energy amount in watt-hours granted per redemption",
                "minimum": 1,
                "maximum": 4000000000
              },
              "maxRedemptionCount": {
                "type": "integer",
                "description": "Maximum number of redemptions allowed. Omitted when unlimited."
              },
              "validityType": {
                "type": "string",
                "enum": [
                  "fixed_dates",
                  "period"
                ],
                "description": "Validity type for energy coupon templates:\n- **fixed_dates**: Coupons have fixed start and end dates\n- **period**: Coupons are valid for a number of days from the moment of redemption\n",
                "example": "fixed_dates"
              },
              "validityDurationDays": {
                "type": "integer",
                "description": "Number of days the coupon is valid from the moment of redemption. Only present when validityType is period."
              },
              "couponValidFrom": {
                "type": "string",
                "format": "date",
                "description": "Start date for coupon validity. Only present when validityType is fixed_dates."
              },
              "couponValidTo": {
                "type": "string",
                "format": "date",
                "description": "End date for coupon validity. Only present when validityType is fixed_dates."
              },
              "templateValidFrom": {
                "type": "string",
                "format": "date",
                "description": "Uses the YYYY-MM-DD date format."
              },
              "templateValidTo": {
                "type": "string",
                "format": "date",
                "description": "Uses the YYYY-MM-DD date format."
              },
              "redemptionRules": {
                "type": "object",
                "description": "Rules that restrict who can redeem this template. Each rule is an independent check; enabling multiple rules stacks them.\n",
                "properties": {
                  "newUsersOnly": {
                    "type": "boolean",
                    "description": "When true, only users registered within the last 7 days can redeem. Does not limit redemption count — combine with `oncePerUser` to also limit new users to one redemption."
                  },
                  "oncePerDevice": {
                    "type": "boolean",
                    "description": "When true, each device can redeem the template only once."
                  },
                  "oncePerEmail": {
                    "type": "boolean",
                    "description": "When true, each email address can redeem the template only once."
                  },
                  "oncePerPhoneNumber": {
                    "type": "boolean",
                    "description": "When true, each phone number can redeem the template only once."
                  },
                  "oncePerUser": {
                    "type": "boolean",
                    "description": "When true, each user account can redeem the template only once."
                  }
                }
              },
              "restrictions": {
                "type": "object",
                "description": "Restrictions that limit where and by whom coupons can be used. All sub-restrictions are always returned.\n",
                "properties": {
                  "personalChargePointsOnly": {
                    "type": "boolean",
                    "description": "When true, coupons can only be used at personal (home) charge points."
                  },
                  "evseType": {
                    "description": "EVSE type restriction for the energy coupon:\n- **ac**: Coupon can only be used at AC charging stations\n- **dc**: Coupon can only be used at DC charging stations\n- **any**: Coupon can be used at any charging station type\n",
                    "type": "string",
                    "enum": [
                      "ac",
                      "dc",
                      "any"
                    ],
                    "example": "any"
                  },
                  "countryRestriction": {
                    "type": "object",
                    "description": "Allow/deny charge points in specific countries.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No country restriction.\n- **allow**: Only countries in the list are allowed.\n- **deny**: Countries in the list are denied.\n"
                      },
                      "countries": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "AF",
                            "AX",
                            "AL",
                            "DZ",
                            "AS",
                            "AD",
                            "AO",
                            "AI",
                            "AQ",
                            "AG",
                            "AR",
                            "AM",
                            "AW",
                            "AU",
                            "AT",
                            "AZ",
                            "BS",
                            "BH",
                            "BD",
                            "BB",
                            "BY",
                            "BE",
                            "BZ",
                            "BJ",
                            "BM",
                            "BT",
                            "BO",
                            "BQ",
                            "BA",
                            "BW",
                            "BV",
                            "BR",
                            "IO",
                            "BN",
                            "BG",
                            "BF",
                            "BI",
                            "KH",
                            "CM",
                            "CA",
                            "CV",
                            "KY",
                            "CF",
                            "TD",
                            "CL",
                            "CN",
                            "CX",
                            "CC",
                            "CO",
                            "KM",
                            "CG",
                            "CD",
                            "CK",
                            "CR",
                            "CI",
                            "HR",
                            "CU",
                            "CW",
                            "CY",
                            "CZ",
                            "DK",
                            "DJ",
                            "DM",
                            "DO",
                            "EC",
                            "EG",
                            "SV",
                            "GQ",
                            "ER",
                            "EE",
                            "ET",
                            "FK",
                            "FO",
                            "FJ",
                            "FI",
                            "FR",
                            "GF",
                            "PF",
                            "TF",
                            "GA",
                            "GM",
                            "GE",
                            "DE",
                            "GH",
                            "GI",
                            "GR",
                            "GL",
                            "GD",
                            "GP",
                            "GU",
                            "GT",
                            "GG",
                            "GN",
                            "GW",
                            "GY",
                            "HT",
                            "HM",
                            "VA",
                            "HN",
                            "HK",
                            "HU",
                            "IS",
                            "IN",
                            "ID",
                            "IR",
                            "IQ",
                            "IE",
                            "IM",
                            "IL",
                            "IT",
                            "JM",
                            "JP",
                            "JE",
                            "JO",
                            "KZ",
                            "KE",
                            "KI",
                            "KP",
                            "KR",
                            "XK",
                            "KW",
                            "KG",
                            "LA",
                            "LV",
                            "LB",
                            "LS",
                            "LR",
                            "LY",
                            "LI",
                            "LT",
                            "LU",
                            "MO",
                            "MK",
                            "MG",
                            "MW",
                            "MY",
                            "MV",
                            "ML",
                            "MT",
                            "MH",
                            "MQ",
                            "MR",
                            "MU",
                            "YT",
                            "MX",
                            "FM",
                            "MD",
                            "MC",
                            "MN",
                            "ME",
                            "MS",
                            "MA",
                            "MZ",
                            "MM",
                            "NA",
                            "NR",
                            "NP",
                            "NL",
                            "NC",
                            "NZ",
                            "NI",
                            "NE",
                            "NG",
                            "NU",
                            "NF",
                            "MP",
                            "NO",
                            "OM",
                            "PK",
                            "PW",
                            "PS",
                            "PA",
                            "PG",
                            "PY",
                            "PE",
                            "PH",
                            "PN",
                            "PL",
                            "PT",
                            "PR",
                            "QA",
                            "RE",
                            "RO",
                            "RU",
                            "RW",
                            "BL",
                            "SH",
                            "KN",
                            "LC",
                            "MF",
                            "PM",
                            "VC",
                            "WS",
                            "SM",
                            "ST",
                            "SA",
                            "SN",
                            "RS",
                            "SC",
                            "SL",
                            "SG",
                            "SX",
                            "SK",
                            "SI",
                            "SB",
                            "SO",
                            "ZA",
                            "GS",
                            "SS",
                            "ES",
                            "LK",
                            "SD",
                            "SR",
                            "SJ",
                            "SZ",
                            "SE",
                            "CH",
                            "SY",
                            "TW",
                            "TJ",
                            "TZ",
                            "TH",
                            "TL",
                            "TG",
                            "TK",
                            "TO",
                            "TT",
                            "TN",
                            "TR",
                            "TM",
                            "TC",
                            "TV",
                            "UG",
                            "UA",
                            "AE",
                            "GB",
                            "US",
                            "UM",
                            "UY",
                            "UZ",
                            "VU",
                            "VE",
                            "VN",
                            "VG",
                            "VI",
                            "WF",
                            "EH",
                            "YE",
                            "ZM",
                            "ZW"
                          ]
                        },
                        "description": "List of ISO 3166-1 alpha-2 country codes. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "partnerRestriction": {
                    "type": "object",
                    "description": "Allow/deny charge points owned by specific partners, or exclude all roaming charge points.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny",
                          "exclude_roaming"
                        ],
                        "description": "- **none**: No partner restriction.\n- **allow**: Only partners in the list are allowed.\n- **deny**: Partners in the list are denied.\n- **exclude_roaming**: Roaming charge points cannot be used. Partner list is ignored.\n"
                      },
                      "partnerIds": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        },
                        "description": "List of partner IDs. Empty when type is none or exclude_roaming."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "locationRestriction": {
                    "type": "object",
                    "description": "Allow/deny specific locations.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No location restriction.\n- **allow**: Only locations in the list are allowed.\n- **deny**: Locations in the list are denied.\n"
                      },
                      "locationIds": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        },
                        "description": "List of location IDs. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "locationTagRestriction": {
                    "type": "object",
                    "description": "Allow/deny locations by tag name.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No location tag restriction.\n- **allow**: Only locations with these tags are allowed.\n- **deny**: Locations with these tags are denied.\n"
                      },
                      "locationTagNames": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "List of location tag names. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "userGroupRestriction": {
                    "type": "object",
                    "description": "Allow/deny specific user groups.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No user group restriction.\n- **allow**: Only users in these groups are allowed.\n- **deny**: Users in these groups are denied.\n"
                      },
                      "userGroupIds": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        },
                        "description": "List of user group IDs. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "minSessionEnergyWh": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Minimum session energy in watt-hours required for the coupon to be applicable."
                  },
                  "maxSessionEnergyWh": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Maximum session energy in watt-hours for the coupon to be applicable."
                  }
                }
              },
              "externalId": {
                "type": "string",
                "maxLength": 255,
                "description": "An optional external identifier for integration purposes"
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Tags associated with this template"
              },
              "id": {
                "type": "integer",
                "description": "System-generated unique identifier",
                "readOnly": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "active",
                  "paused",
                  "expired",
                  "exhausted"
                ],
                "description": "Energy coupon template status:\n- **active**: Template is active and available for redemption\n- **paused**: Template is temporarily paused, no new redemptions allowed\n- **expired**: Template has been deactivated or reached its expiry date\n- **exhausted**: Template has reached its maximum number of redemptions\n",
                "example": "active"
              },
              "currentRedemptionCount": {
                "type": "integer",
                "description": "Current number of redemptions",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "code",
              "name",
              "status",
              "energyWh",
              "currentRedemptionCount",
              "validityType",
              "redemptionRules",
              "restrictions",
              "tags",
              "createdAt",
              "updatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "energyCouponTemplateRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Energy coupon template resource",
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "description": "Unique redemption code for the template",
                "maxLength": 50
              },
              "name": {
                "type": "string",
                "description": "Template name",
                "maxLength": 255
              },
              "energyWh": {
                "type": "integer",
                "description": "Energy amount in watt-hours granted per redemption",
                "minimum": 1,
                "maximum": 4000000000
              },
              "maxRedemptionCount": {
                "type": "integer",
                "description": "Maximum number of redemptions allowed. Omitted when unlimited."
              },
              "validityType": {
                "type": "string",
                "enum": [
                  "fixed_dates",
                  "period"
                ],
                "description": "Validity type for energy coupon templates:\n- **fixed_dates**: Coupons have fixed start and end dates\n- **period**: Coupons are valid for a number of days from the moment of redemption\n",
                "example": "fixed_dates"
              },
              "validityDurationDays": {
                "type": "integer",
                "description": "Number of days the coupon is valid from the moment of redemption. Only present when validityType is period."
              },
              "couponValidFrom": {
                "type": "string",
                "format": "date",
                "description": "Start date for coupon validity. Only present when validityType is fixed_dates."
              },
              "couponValidTo": {
                "type": "string",
                "format": "date",
                "description": "End date for coupon validity. Only present when validityType is fixed_dates."
              },
              "templateValidFrom": {
                "type": "string",
                "format": "date",
                "description": "Uses the YYYY-MM-DD date format."
              },
              "templateValidTo": {
                "type": "string",
                "format": "date",
                "description": "Uses the YYYY-MM-DD date format."
              },
              "redemptionRules": {
                "type": "object",
                "description": "Rules that restrict who can redeem this template. Each rule is an independent check; enabling multiple rules stacks them.\n",
                "properties": {
                  "newUsersOnly": {
                    "type": "boolean",
                    "description": "When true, only users registered within the last 7 days can redeem. Does not limit redemption count — combine with `oncePerUser` to also limit new users to one redemption."
                  },
                  "oncePerDevice": {
                    "type": "boolean",
                    "description": "When true, each device can redeem the template only once."
                  },
                  "oncePerEmail": {
                    "type": "boolean",
                    "description": "When true, each email address can redeem the template only once."
                  },
                  "oncePerPhoneNumber": {
                    "type": "boolean",
                    "description": "When true, each phone number can redeem the template only once."
                  },
                  "oncePerUser": {
                    "type": "boolean",
                    "description": "When true, each user account can redeem the template only once."
                  }
                }
              },
              "restrictions": {
                "type": "object",
                "description": "Restrictions that limit where and by whom coupons can be used. All sub-restrictions are always returned.\n",
                "properties": {
                  "personalChargePointsOnly": {
                    "type": "boolean",
                    "description": "When true, coupons can only be used at personal (home) charge points."
                  },
                  "evseType": {
                    "description": "EVSE type restriction for the energy coupon:\n- **ac**: Coupon can only be used at AC charging stations\n- **dc**: Coupon can only be used at DC charging stations\n- **any**: Coupon can be used at any charging station type\n",
                    "type": "string",
                    "enum": [
                      "ac",
                      "dc",
                      "any"
                    ],
                    "example": "any"
                  },
                  "countryRestriction": {
                    "type": "object",
                    "description": "Allow/deny charge points in specific countries.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No country restriction.\n- **allow**: Only countries in the list are allowed.\n- **deny**: Countries in the list are denied.\n"
                      },
                      "countries": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "AF",
                            "AX",
                            "AL",
                            "DZ",
                            "AS",
                            "AD",
                            "AO",
                            "AI",
                            "AQ",
                            "AG",
                            "AR",
                            "AM",
                            "AW",
                            "AU",
                            "AT",
                            "AZ",
                            "BS",
                            "BH",
                            "BD",
                            "BB",
                            "BY",
                            "BE",
                            "BZ",
                            "BJ",
                            "BM",
                            "BT",
                            "BO",
                            "BQ",
                            "BA",
                            "BW",
                            "BV",
                            "BR",
                            "IO",
                            "BN",
                            "BG",
                            "BF",
                            "BI",
                            "KH",
                            "CM",
                            "CA",
                            "CV",
                            "KY",
                            "CF",
                            "TD",
                            "CL",
                            "CN",
                            "CX",
                            "CC",
                            "CO",
                            "KM",
                            "CG",
                            "CD",
                            "CK",
                            "CR",
                            "CI",
                            "HR",
                            "CU",
                            "CW",
                            "CY",
                            "CZ",
                            "DK",
                            "DJ",
                            "DM",
                            "DO",
                            "EC",
                            "EG",
                            "SV",
                            "GQ",
                            "ER",
                            "EE",
                            "ET",
                            "FK",
                            "FO",
                            "FJ",
                            "FI",
                            "FR",
                            "GF",
                            "PF",
                            "TF",
                            "GA",
                            "GM",
                            "GE",
                            "DE",
                            "GH",
                            "GI",
                            "GR",
                            "GL",
                            "GD",
                            "GP",
                            "GU",
                            "GT",
                            "GG",
                            "GN",
                            "GW",
                            "GY",
                            "HT",
                            "HM",
                            "VA",
                            "HN",
                            "HK",
                            "HU",
                            "IS",
                            "IN",
                            "ID",
                            "IR",
                            "IQ",
                            "IE",
                            "IM",
                            "IL",
                            "IT",
                            "JM",
                            "JP",
                            "JE",
                            "JO",
                            "KZ",
                            "KE",
                            "KI",
                            "KP",
                            "KR",
                            "XK",
                            "KW",
                            "KG",
                            "LA",
                            "LV",
                            "LB",
                            "LS",
                            "LR",
                            "LY",
                            "LI",
                            "LT",
                            "LU",
                            "MO",
                            "MK",
                            "MG",
                            "MW",
                            "MY",
                            "MV",
                            "ML",
                            "MT",
                            "MH",
                            "MQ",
                            "MR",
                            "MU",
                            "YT",
                            "MX",
                            "FM",
                            "MD",
                            "MC",
                            "MN",
                            "ME",
                            "MS",
                            "MA",
                            "MZ",
                            "MM",
                            "NA",
                            "NR",
                            "NP",
                            "NL",
                            "NC",
                            "NZ",
                            "NI",
                            "NE",
                            "NG",
                            "NU",
                            "NF",
                            "MP",
                            "NO",
                            "OM",
                            "PK",
                            "PW",
                            "PS",
                            "PA",
                            "PG",
                            "PY",
                            "PE",
                            "PH",
                            "PN",
                            "PL",
                            "PT",
                            "PR",
                            "QA",
                            "RE",
                            "RO",
                            "RU",
                            "RW",
                            "BL",
                            "SH",
                            "KN",
                            "LC",
                            "MF",
                            "PM",
                            "VC",
                            "WS",
                            "SM",
                            "ST",
                            "SA",
                            "SN",
                            "RS",
                            "SC",
                            "SL",
                            "SG",
                            "SX",
                            "SK",
                            "SI",
                            "SB",
                            "SO",
                            "ZA",
                            "GS",
                            "SS",
                            "ES",
                            "LK",
                            "SD",
                            "SR",
                            "SJ",
                            "SZ",
                            "SE",
                            "CH",
                            "SY",
                            "TW",
                            "TJ",
                            "TZ",
                            "TH",
                            "TL",
                            "TG",
                            "TK",
                            "TO",
                            "TT",
                            "TN",
                            "TR",
                            "TM",
                            "TC",
                            "TV",
                            "UG",
                            "UA",
                            "AE",
                            "GB",
                            "US",
                            "UM",
                            "UY",
                            "UZ",
                            "VU",
                            "VE",
                            "VN",
                            "VG",
                            "VI",
                            "WF",
                            "EH",
                            "YE",
                            "ZM",
                            "ZW"
                          ]
                        },
                        "description": "List of ISO 3166-1 alpha-2 country codes. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "partnerRestriction": {
                    "type": "object",
                    "description": "Allow/deny charge points owned by specific partners, or exclude all roaming charge points.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny",
                          "exclude_roaming"
                        ],
                        "description": "- **none**: No partner restriction.\n- **allow**: Only partners in the list are allowed.\n- **deny**: Partners in the list are denied.\n- **exclude_roaming**: Roaming charge points cannot be used. Partner list is ignored.\n"
                      },
                      "partnerIds": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        },
                        "description": "List of partner IDs. Empty when type is none or exclude_roaming."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "locationRestriction": {
                    "type": "object",
                    "description": "Allow/deny specific locations.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No location restriction.\n- **allow**: Only locations in the list are allowed.\n- **deny**: Locations in the list are denied.\n"
                      },
                      "locationIds": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        },
                        "description": "List of location IDs. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "locationTagRestriction": {
                    "type": "object",
                    "description": "Allow/deny locations by tag name.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No location tag restriction.\n- **allow**: Only locations with these tags are allowed.\n- **deny**: Locations with these tags are denied.\n"
                      },
                      "locationTagNames": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "List of location tag names. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "userGroupRestriction": {
                    "type": "object",
                    "description": "Allow/deny specific user groups.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No user group restriction.\n- **allow**: Only users in these groups are allowed.\n- **deny**: Users in these groups are denied.\n"
                      },
                      "userGroupIds": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        },
                        "description": "List of user group IDs. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "minSessionEnergyWh": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Minimum session energy in watt-hours required for the coupon to be applicable."
                  },
                  "maxSessionEnergyWh": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Maximum session energy in watt-hours for the coupon to be applicable."
                  }
                }
              },
              "externalId": {
                "type": "string",
                "maxLength": 255,
                "description": "An optional external identifier for integration purposes"
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Tags associated with this template"
              },
              "id": {
                "type": "integer",
                "description": "System-generated unique identifier",
                "readOnly": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "active",
                  "paused",
                  "expired",
                  "exhausted"
                ],
                "description": "Energy coupon template status:\n- **active**: Template is active and available for redemption\n- **paused**: Template is temporarily paused, no new redemptions allowed\n- **expired**: Template has been deactivated or reached its expiry date\n- **exhausted**: Template has reached its maximum number of redemptions\n",
                "example": "active"
              },
              "currentRedemptionCount": {
                "type": "integer",
                "description": "Current number of redemptions",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "code",
              "name",
              "status",
              "energyWh",
              "currentRedemptionCount",
              "validityType",
              "redemptionRules",
              "restrictions",
              "tags",
              "createdAt",
              "updatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "energyCouponTemplateUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Energy coupon template resource",
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "description": "Unique redemption code for the template",
                "maxLength": 50
              },
              "name": {
                "type": "string",
                "description": "Template name",
                "maxLength": 255
              },
              "energyWh": {
                "type": "integer",
                "description": "Energy amount in watt-hours granted per redemption",
                "minimum": 1,
                "maximum": 4000000000
              },
              "maxRedemptionCount": {
                "type": "integer",
                "description": "Maximum number of redemptions allowed. Omitted when unlimited."
              },
              "validityType": {
                "type": "string",
                "enum": [
                  "fixed_dates",
                  "period"
                ],
                "description": "Validity type for energy coupon templates:\n- **fixed_dates**: Coupons have fixed start and end dates\n- **period**: Coupons are valid for a number of days from the moment of redemption\n",
                "example": "fixed_dates"
              },
              "validityDurationDays": {
                "type": "integer",
                "description": "Number of days the coupon is valid from the moment of redemption. Only present when validityType is period."
              },
              "couponValidFrom": {
                "type": "string",
                "format": "date",
                "description": "Start date for coupon validity. Only present when validityType is fixed_dates."
              },
              "couponValidTo": {
                "type": "string",
                "format": "date",
                "description": "End date for coupon validity. Only present when validityType is fixed_dates."
              },
              "templateValidFrom": {
                "type": "string",
                "format": "date",
                "description": "Uses the YYYY-MM-DD date format."
              },
              "templateValidTo": {
                "type": "string",
                "format": "date",
                "description": "Uses the YYYY-MM-DD date format."
              },
              "redemptionRules": {
                "type": "object",
                "description": "Rules that restrict who can redeem this template. Each rule is an independent check; enabling multiple rules stacks them.\n",
                "properties": {
                  "newUsersOnly": {
                    "type": "boolean",
                    "description": "When true, only users registered within the last 7 days can redeem. Does not limit redemption count — combine with `oncePerUser` to also limit new users to one redemption."
                  },
                  "oncePerDevice": {
                    "type": "boolean",
                    "description": "When true, each device can redeem the template only once."
                  },
                  "oncePerEmail": {
                    "type": "boolean",
                    "description": "When true, each email address can redeem the template only once."
                  },
                  "oncePerPhoneNumber": {
                    "type": "boolean",
                    "description": "When true, each phone number can redeem the template only once."
                  },
                  "oncePerUser": {
                    "type": "boolean",
                    "description": "When true, each user account can redeem the template only once."
                  }
                }
              },
              "restrictions": {
                "type": "object",
                "description": "Restrictions that limit where and by whom coupons can be used. All sub-restrictions are always returned.\n",
                "properties": {
                  "personalChargePointsOnly": {
                    "type": "boolean",
                    "description": "When true, coupons can only be used at personal (home) charge points."
                  },
                  "evseType": {
                    "description": "EVSE type restriction for the energy coupon:\n- **ac**: Coupon can only be used at AC charging stations\n- **dc**: Coupon can only be used at DC charging stations\n- **any**: Coupon can be used at any charging station type\n",
                    "type": "string",
                    "enum": [
                      "ac",
                      "dc",
                      "any"
                    ],
                    "example": "any"
                  },
                  "countryRestriction": {
                    "type": "object",
                    "description": "Allow/deny charge points in specific countries.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No country restriction.\n- **allow**: Only countries in the list are allowed.\n- **deny**: Countries in the list are denied.\n"
                      },
                      "countries": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "AF",
                            "AX",
                            "AL",
                            "DZ",
                            "AS",
                            "AD",
                            "AO",
                            "AI",
                            "AQ",
                            "AG",
                            "AR",
                            "AM",
                            "AW",
                            "AU",
                            "AT",
                            "AZ",
                            "BS",
                            "BH",
                            "BD",
                            "BB",
                            "BY",
                            "BE",
                            "BZ",
                            "BJ",
                            "BM",
                            "BT",
                            "BO",
                            "BQ",
                            "BA",
                            "BW",
                            "BV",
                            "BR",
                            "IO",
                            "BN",
                            "BG",
                            "BF",
                            "BI",
                            "KH",
                            "CM",
                            "CA",
                            "CV",
                            "KY",
                            "CF",
                            "TD",
                            "CL",
                            "CN",
                            "CX",
                            "CC",
                            "CO",
                            "KM",
                            "CG",
                            "CD",
                            "CK",
                            "CR",
                            "CI",
                            "HR",
                            "CU",
                            "CW",
                            "CY",
                            "CZ",
                            "DK",
                            "DJ",
                            "DM",
                            "DO",
                            "EC",
                            "EG",
                            "SV",
                            "GQ",
                            "ER",
                            "EE",
                            "ET",
                            "FK",
                            "FO",
                            "FJ",
                            "FI",
                            "FR",
                            "GF",
                            "PF",
                            "TF",
                            "GA",
                            "GM",
                            "GE",
                            "DE",
                            "GH",
                            "GI",
                            "GR",
                            "GL",
                            "GD",
                            "GP",
                            "GU",
                            "GT",
                            "GG",
                            "GN",
                            "GW",
                            "GY",
                            "HT",
                            "HM",
                            "VA",
                            "HN",
                            "HK",
                            "HU",
                            "IS",
                            "IN",
                            "ID",
                            "IR",
                            "IQ",
                            "IE",
                            "IM",
                            "IL",
                            "IT",
                            "JM",
                            "JP",
                            "JE",
                            "JO",
                            "KZ",
                            "KE",
                            "KI",
                            "KP",
                            "KR",
                            "XK",
                            "KW",
                            "KG",
                            "LA",
                            "LV",
                            "LB",
                            "LS",
                            "LR",
                            "LY",
                            "LI",
                            "LT",
                            "LU",
                            "MO",
                            "MK",
                            "MG",
                            "MW",
                            "MY",
                            "MV",
                            "ML",
                            "MT",
                            "MH",
                            "MQ",
                            "MR",
                            "MU",
                            "YT",
                            "MX",
                            "FM",
                            "MD",
                            "MC",
                            "MN",
                            "ME",
                            "MS",
                            "MA",
                            "MZ",
                            "MM",
                            "NA",
                            "NR",
                            "NP",
                            "NL",
                            "NC",
                            "NZ",
                            "NI",
                            "NE",
                            "NG",
                            "NU",
                            "NF",
                            "MP",
                            "NO",
                            "OM",
                            "PK",
                            "PW",
                            "PS",
                            "PA",
                            "PG",
                            "PY",
                            "PE",
                            "PH",
                            "PN",
                            "PL",
                            "PT",
                            "PR",
                            "QA",
                            "RE",
                            "RO",
                            "RU",
                            "RW",
                            "BL",
                            "SH",
                            "KN",
                            "LC",
                            "MF",
                            "PM",
                            "VC",
                            "WS",
                            "SM",
                            "ST",
                            "SA",
                            "SN",
                            "RS",
                            "SC",
                            "SL",
                            "SG",
                            "SX",
                            "SK",
                            "SI",
                            "SB",
                            "SO",
                            "ZA",
                            "GS",
                            "SS",
                            "ES",
                            "LK",
                            "SD",
                            "SR",
                            "SJ",
                            "SZ",
                            "SE",
                            "CH",
                            "SY",
                            "TW",
                            "TJ",
                            "TZ",
                            "TH",
                            "TL",
                            "TG",
                            "TK",
                            "TO",
                            "TT",
                            "TN",
                            "TR",
                            "TM",
                            "TC",
                            "TV",
                            "UG",
                            "UA",
                            "AE",
                            "GB",
                            "US",
                            "UM",
                            "UY",
                            "UZ",
                            "VU",
                            "VE",
                            "VN",
                            "VG",
                            "VI",
                            "WF",
                            "EH",
                            "YE",
                            "ZM",
                            "ZW"
                          ]
                        },
                        "description": "List of ISO 3166-1 alpha-2 country codes. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "partnerRestriction": {
                    "type": "object",
                    "description": "Allow/deny charge points owned by specific partners, or exclude all roaming charge points.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny",
                          "exclude_roaming"
                        ],
                        "description": "- **none**: No partner restriction.\n- **allow**: Only partners in the list are allowed.\n- **deny**: Partners in the list are denied.\n- **exclude_roaming**: Roaming charge points cannot be used. Partner list is ignored.\n"
                      },
                      "partnerIds": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        },
                        "description": "List of partner IDs. Empty when type is none or exclude_roaming."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "locationRestriction": {
                    "type": "object",
                    "description": "Allow/deny specific locations.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No location restriction.\n- **allow**: Only locations in the list are allowed.\n- **deny**: Locations in the list are denied.\n"
                      },
                      "locationIds": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        },
                        "description": "List of location IDs. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "locationTagRestriction": {
                    "type": "object",
                    "description": "Allow/deny locations by tag name.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No location tag restriction.\n- **allow**: Only locations with these tags are allowed.\n- **deny**: Locations with these tags are denied.\n"
                      },
                      "locationTagNames": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "List of location tag names. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "userGroupRestriction": {
                    "type": "object",
                    "description": "Allow/deny specific user groups.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No user group restriction.\n- **allow**: Only users in these groups are allowed.\n- **deny**: Users in these groups are denied.\n"
                      },
                      "userGroupIds": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        },
                        "description": "List of user group IDs. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "minSessionEnergyWh": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Minimum session energy in watt-hours required for the coupon to be applicable."
                  },
                  "maxSessionEnergyWh": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Maximum session energy in watt-hours for the coupon to be applicable."
                  }
                }
              },
              "externalId": {
                "type": "string",
                "maxLength": 255,
                "description": "An optional external identifier for integration purposes"
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Tags associated with this template"
              },
              "id": {
                "type": "integer",
                "description": "System-generated unique identifier",
                "readOnly": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "active",
                  "paused",
                  "expired",
                  "exhausted"
                ],
                "description": "Energy coupon template status:\n- **active**: Template is active and available for redemption\n- **paused**: Template is temporarily paused, no new redemptions allowed\n- **expired**: Template has been deactivated or reached its expiry date\n- **exhausted**: Template has reached its maximum number of redemptions\n",
                "example": "active"
              },
              "currentRedemptionCount": {
                "type": "integer",
                "description": "Current number of redemptions",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "code",
              "name",
              "status",
              "energyWh",
              "currentRedemptionCount",
              "validityType",
              "redemptionRules",
              "restrictions",
              "tags",
              "createdAt",
              "updatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "energyCouponsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "operatorId",
                "code",
                "type",
                "status",
                "energyWh",
                "remainingEnergyWh",
                "evseType",
                "restrictions",
                "createdAt"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "userId": {
                  "type": "integer",
                  "description": "The ID of the user the coupon is assigned to. Only present when the coupon is assigned to a user."
                },
                "code": {
                  "type": "string",
                  "description": "Unique coupon code"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "subscription",
                    "support_grant",
                    "manual_single",
                    "promotional",
                    "top_up_bonus"
                  ],
                  "description": "Energy coupon type. Only `support_grant` and `manual_single` can be created via the API. The remaining types are created automatically by the system.\n- **subscription**: Automatically created from a subscription plan\n- **support_grant**: Created by an operator as a support grant\n- **manual_single**: Manually created single-use coupon\n- **promotional**: Created as part of a promotional campaign\n- **top_up_bonus**: Bonus coupon from a top-up\n",
                  "example": "support_grant"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "unredeemed",
                    "inactive",
                    "active",
                    "locked",
                    "fully_consumed",
                    "expired",
                    "cancelled"
                  ],
                  "description": "Energy coupon status:\n- **unredeemed**: Not yet assigned to a user\n- **inactive**: Waiting to become valid (valid from date is in the future)\n- **active**: Currently usable for charging sessions\n- **locked**: Locked by an ongoing charging session\n- **fully_consumed**: All energy has been consumed\n- **expired**: Validity period has passed\n- **cancelled**: Manually cancelled\n",
                  "example": "active"
                },
                "energyWh": {
                  "type": "integer",
                  "description": "Total energy amount in watt-hours"
                },
                "remainingEnergyWh": {
                  "type": "integer",
                  "description": "Remaining energy amount in watt-hours"
                },
                "evseType": {
                  "deprecated": true,
                  "description": "EVSE type restriction for the energy coupon:\n- **ac**: Coupon can only be used at AC charging stations\n- **dc**: Coupon can only be used at DC charging stations\n- **any**: Coupon can be used at any charging station type\n",
                  "type": "string",
                  "enum": [
                    "ac",
                    "dc",
                    "any"
                  ],
                  "example": "any"
                },
                "validFrom": {
                  "type": "string",
                  "format": "date",
                  "description": "Uses the YYYY-MM-DD date format."
                },
                "validTo": {
                  "type": "string",
                  "format": "date",
                  "description": "Uses the YYYY-MM-DD date format."
                },
                "externalId": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "An optional external identifier for integration purposes"
                },
                "restrictions": {
                  "type": "object",
                  "description": "Restrictions that limit where and by whom coupons can be used. All sub-restrictions are always returned.\n",
                  "properties": {
                    "personalChargePointsOnly": {
                      "type": "boolean",
                      "description": "When true, coupons can only be used at personal (home) charge points."
                    },
                    "evseType": {
                      "description": "EVSE type restriction for the energy coupon:\n- **ac**: Coupon can only be used at AC charging stations\n- **dc**: Coupon can only be used at DC charging stations\n- **any**: Coupon can be used at any charging station type\n",
                      "type": "string",
                      "enum": [
                        "ac",
                        "dc",
                        "any"
                      ],
                      "example": "any"
                    },
                    "countryRestriction": {
                      "type": "object",
                      "description": "Allow/deny charge points in specific countries.",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "none",
                            "allow",
                            "deny"
                          ],
                          "description": "- **none**: No country restriction.\n- **allow**: Only countries in the list are allowed.\n- **deny**: Countries in the list are denied.\n"
                        },
                        "countries": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "AF",
                              "AX",
                              "AL",
                              "DZ",
                              "AS",
                              "AD",
                              "AO",
                              "AI",
                              "AQ",
                              "AG",
                              "AR",
                              "AM",
                              "AW",
                              "AU",
                              "AT",
                              "AZ",
                              "BS",
                              "BH",
                              "BD",
                              "BB",
                              "BY",
                              "BE",
                              "BZ",
                              "BJ",
                              "BM",
                              "BT",
                              "BO",
                              "BQ",
                              "BA",
                              "BW",
                              "BV",
                              "BR",
                              "IO",
                              "BN",
                              "BG",
                              "BF",
                              "BI",
                              "KH",
                              "CM",
                              "CA",
                              "CV",
                              "KY",
                              "CF",
                              "TD",
                              "CL",
                              "CN",
                              "CX",
                              "CC",
                              "CO",
                              "KM",
                              "CG",
                              "CD",
                              "CK",
                              "CR",
                              "CI",
                              "HR",
                              "CU",
                              "CW",
                              "CY",
                              "CZ",
                              "DK",
                              "DJ",
                              "DM",
                              "DO",
                              "EC",
                              "EG",
                              "SV",
                              "GQ",
                              "ER",
                              "EE",
                              "ET",
                              "FK",
                              "FO",
                              "FJ",
                              "FI",
                              "FR",
                              "GF",
                              "PF",
                              "TF",
                              "GA",
                              "GM",
                              "GE",
                              "DE",
                              "GH",
                              "GI",
                              "GR",
                              "GL",
                              "GD",
                              "GP",
                              "GU",
                              "GT",
                              "GG",
                              "GN",
                              "GW",
                              "GY",
                              "HT",
                              "HM",
                              "VA",
                              "HN",
                              "HK",
                              "HU",
                              "IS",
                              "IN",
                              "ID",
                              "IR",
                              "IQ",
                              "IE",
                              "IM",
                              "IL",
                              "IT",
                              "JM",
                              "JP",
                              "JE",
                              "JO",
                              "KZ",
                              "KE",
                              "KI",
                              "KP",
                              "KR",
                              "XK",
                              "KW",
                              "KG",
                              "LA",
                              "LV",
                              "LB",
                              "LS",
                              "LR",
                              "LY",
                              "LI",
                              "LT",
                              "LU",
                              "MO",
                              "MK",
                              "MG",
                              "MW",
                              "MY",
                              "MV",
                              "ML",
                              "MT",
                              "MH",
                              "MQ",
                              "MR",
                              "MU",
                              "YT",
                              "MX",
                              "FM",
                              "MD",
                              "MC",
                              "MN",
                              "ME",
                              "MS",
                              "MA",
                              "MZ",
                              "MM",
                              "NA",
                              "NR",
                              "NP",
                              "NL",
                              "NC",
                              "NZ",
                              "NI",
                              "NE",
                              "NG",
                              "NU",
                              "NF",
                              "MP",
                              "NO",
                              "OM",
                              "PK",
                              "PW",
                              "PS",
                              "PA",
                              "PG",
                              "PY",
                              "PE",
                              "PH",
                              "PN",
                              "PL",
                              "PT",
                              "PR",
                              "QA",
                              "RE",
                              "RO",
                              "RU",
                              "RW",
                              "BL",
                              "SH",
                              "KN",
                              "LC",
                              "MF",
                              "PM",
                              "VC",
                              "WS",
                              "SM",
                              "ST",
                              "SA",
                              "SN",
                              "RS",
                              "SC",
                              "SL",
                              "SG",
                              "SX",
                              "SK",
                              "SI",
                              "SB",
                              "SO",
                              "ZA",
                              "GS",
                              "SS",
                              "ES",
                              "LK",
                              "SD",
                              "SR",
                              "SJ",
                              "SZ",
                              "SE",
                              "CH",
                              "SY",
                              "TW",
                              "TJ",
                              "TZ",
                              "TH",
                              "TL",
                              "TG",
                              "TK",
                              "TO",
                              "TT",
                              "TN",
                              "TR",
                              "TM",
                              "TC",
                              "TV",
                              "UG",
                              "UA",
                              "AE",
                              "GB",
                              "US",
                              "UM",
                              "UY",
                              "UZ",
                              "VU",
                              "VE",
                              "VN",
                              "VG",
                              "VI",
                              "WF",
                              "EH",
                              "YE",
                              "ZM",
                              "ZW"
                            ]
                          },
                          "description": "List of ISO 3166-1 alpha-2 country codes. Empty when type is none."
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    "partnerRestriction": {
                      "type": "object",
                      "description": "Allow/deny charge points owned by specific partners, or exclude all roaming charge points.",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "none",
                            "allow",
                            "deny",
                            "exclude_roaming"
                          ],
                          "description": "- **none**: No partner restriction.\n- **allow**: Only partners in the list are allowed.\n- **deny**: Partners in the list are denied.\n- **exclude_roaming**: Roaming charge points cannot be used. Partner list is ignored.\n"
                        },
                        "partnerIds": {
                          "type": "array",
                          "items": {
                            "type": "integer"
                          },
                          "description": "List of partner IDs. Empty when type is none or exclude_roaming."
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    "locationRestriction": {
                      "type": "object",
                      "description": "Allow/deny specific locations.",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "none",
                            "allow",
                            "deny"
                          ],
                          "description": "- **none**: No location restriction.\n- **allow**: Only locations in the list are allowed.\n- **deny**: Locations in the list are denied.\n"
                        },
                        "locationIds": {
                          "type": "array",
                          "items": {
                            "type": "integer"
                          },
                          "description": "List of location IDs. Empty when type is none."
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    "locationTagRestriction": {
                      "type": "object",
                      "description": "Allow/deny locations by tag name.",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "none",
                            "allow",
                            "deny"
                          ],
                          "description": "- **none**: No location tag restriction.\n- **allow**: Only locations with these tags are allowed.\n- **deny**: Locations with these tags are denied.\n"
                        },
                        "locationTagNames": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "List of location tag names. Empty when type is none."
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    "userGroupRestriction": {
                      "type": "object",
                      "description": "Allow/deny specific user groups.",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "none",
                            "allow",
                            "deny"
                          ],
                          "description": "- **none**: No user group restriction.\n- **allow**: Only users in these groups are allowed.\n- **deny**: Users in these groups are denied.\n"
                        },
                        "userGroupIds": {
                          "type": "array",
                          "items": {
                            "type": "integer"
                          },
                          "description": "List of user group IDs. Empty when type is none."
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    "minSessionEnergyWh": {
                      "type": "integer",
                      "minimum": 0,
                      "description": "Minimum session energy in watt-hours required for the coupon to be applicable."
                    },
                    "maxSessionEnergyWh": {
                      "type": "integer",
                      "minimum": 0,
                      "description": "Maximum session energy in watt-hours for the coupon to be applicable."
                    }
                  }
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "energyCouponCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "operatorId",
              "code",
              "type",
              "status",
              "energyWh",
              "remainingEnergyWh",
              "evseType",
              "restrictions",
              "createdAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "userId": {
                "type": "integer",
                "description": "The ID of the user the coupon is assigned to. Only present when the coupon is assigned to a user."
              },
              "code": {
                "type": "string",
                "description": "Unique coupon code"
              },
              "type": {
                "type": "string",
                "enum": [
                  "subscription",
                  "support_grant",
                  "manual_single",
                  "promotional",
                  "top_up_bonus"
                ],
                "description": "Energy coupon type. Only `support_grant` and `manual_single` can be created via the API. The remaining types are created automatically by the system.\n- **subscription**: Automatically created from a subscription plan\n- **support_grant**: Created by an operator as a support grant\n- **manual_single**: Manually created single-use coupon\n- **promotional**: Created as part of a promotional campaign\n- **top_up_bonus**: Bonus coupon from a top-up\n",
                "example": "support_grant"
              },
              "status": {
                "type": "string",
                "enum": [
                  "unredeemed",
                  "inactive",
                  "active",
                  "locked",
                  "fully_consumed",
                  "expired",
                  "cancelled"
                ],
                "description": "Energy coupon status:\n- **unredeemed**: Not yet assigned to a user\n- **inactive**: Waiting to become valid (valid from date is in the future)\n- **active**: Currently usable for charging sessions\n- **locked**: Locked by an ongoing charging session\n- **fully_consumed**: All energy has been consumed\n- **expired**: Validity period has passed\n- **cancelled**: Manually cancelled\n",
                "example": "active"
              },
              "energyWh": {
                "type": "integer",
                "description": "Total energy amount in watt-hours"
              },
              "remainingEnergyWh": {
                "type": "integer",
                "description": "Remaining energy amount in watt-hours"
              },
              "evseType": {
                "deprecated": true,
                "description": "EVSE type restriction for the energy coupon:\n- **ac**: Coupon can only be used at AC charging stations\n- **dc**: Coupon can only be used at DC charging stations\n- **any**: Coupon can be used at any charging station type\n",
                "type": "string",
                "enum": [
                  "ac",
                  "dc",
                  "any"
                ],
                "example": "any"
              },
              "validFrom": {
                "type": "string",
                "format": "date",
                "description": "Uses the YYYY-MM-DD date format."
              },
              "validTo": {
                "type": "string",
                "format": "date",
                "description": "Uses the YYYY-MM-DD date format."
              },
              "externalId": {
                "type": "string",
                "maxLength": 255,
                "description": "An optional external identifier for integration purposes"
              },
              "restrictions": {
                "type": "object",
                "description": "Restrictions that limit where and by whom coupons can be used. All sub-restrictions are always returned.\n",
                "properties": {
                  "personalChargePointsOnly": {
                    "type": "boolean",
                    "description": "When true, coupons can only be used at personal (home) charge points."
                  },
                  "evseType": {
                    "description": "EVSE type restriction for the energy coupon:\n- **ac**: Coupon can only be used at AC charging stations\n- **dc**: Coupon can only be used at DC charging stations\n- **any**: Coupon can be used at any charging station type\n",
                    "type": "string",
                    "enum": [
                      "ac",
                      "dc",
                      "any"
                    ],
                    "example": "any"
                  },
                  "countryRestriction": {
                    "type": "object",
                    "description": "Allow/deny charge points in specific countries.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No country restriction.\n- **allow**: Only countries in the list are allowed.\n- **deny**: Countries in the list are denied.\n"
                      },
                      "countries": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "AF",
                            "AX",
                            "AL",
                            "DZ",
                            "AS",
                            "AD",
                            "AO",
                            "AI",
                            "AQ",
                            "AG",
                            "AR",
                            "AM",
                            "AW",
                            "AU",
                            "AT",
                            "AZ",
                            "BS",
                            "BH",
                            "BD",
                            "BB",
                            "BY",
                            "BE",
                            "BZ",
                            "BJ",
                            "BM",
                            "BT",
                            "BO",
                            "BQ",
                            "BA",
                            "BW",
                            "BV",
                            "BR",
                            "IO",
                            "BN",
                            "BG",
                            "BF",
                            "BI",
                            "KH",
                            "CM",
                            "CA",
                            "CV",
                            "KY",
                            "CF",
                            "TD",
                            "CL",
                            "CN",
                            "CX",
                            "CC",
                            "CO",
                            "KM",
                            "CG",
                            "CD",
                            "CK",
                            "CR",
                            "CI",
                            "HR",
                            "CU",
                            "CW",
                            "CY",
                            "CZ",
                            "DK",
                            "DJ",
                            "DM",
                            "DO",
                            "EC",
                            "EG",
                            "SV",
                            "GQ",
                            "ER",
                            "EE",
                            "ET",
                            "FK",
                            "FO",
                            "FJ",
                            "FI",
                            "FR",
                            "GF",
                            "PF",
                            "TF",
                            "GA",
                            "GM",
                            "GE",
                            "DE",
                            "GH",
                            "GI",
                            "GR",
                            "GL",
                            "GD",
                            "GP",
                            "GU",
                            "GT",
                            "GG",
                            "GN",
                            "GW",
                            "GY",
                            "HT",
                            "HM",
                            "VA",
                            "HN",
                            "HK",
                            "HU",
                            "IS",
                            "IN",
                            "ID",
                            "IR",
                            "IQ",
                            "IE",
                            "IM",
                            "IL",
                            "IT",
                            "JM",
                            "JP",
                            "JE",
                            "JO",
                            "KZ",
                            "KE",
                            "KI",
                            "KP",
                            "KR",
                            "XK",
                            "KW",
                            "KG",
                            "LA",
                            "LV",
                            "LB",
                            "LS",
                            "LR",
                            "LY",
                            "LI",
                            "LT",
                            "LU",
                            "MO",
                            "MK",
                            "MG",
                            "MW",
                            "MY",
                            "MV",
                            "ML",
                            "MT",
                            "MH",
                            "MQ",
                            "MR",
                            "MU",
                            "YT",
                            "MX",
                            "FM",
                            "MD",
                            "MC",
                            "MN",
                            "ME",
                            "MS",
                            "MA",
                            "MZ",
                            "MM",
                            "NA",
                            "NR",
                            "NP",
                            "NL",
                            "NC",
                            "NZ",
                            "NI",
                            "NE",
                            "NG",
                            "NU",
                            "NF",
                            "MP",
                            "NO",
                            "OM",
                            "PK",
                            "PW",
                            "PS",
                            "PA",
                            "PG",
                            "PY",
                            "PE",
                            "PH",
                            "PN",
                            "PL",
                            "PT",
                            "PR",
                            "QA",
                            "RE",
                            "RO",
                            "RU",
                            "RW",
                            "BL",
                            "SH",
                            "KN",
                            "LC",
                            "MF",
                            "PM",
                            "VC",
                            "WS",
                            "SM",
                            "ST",
                            "SA",
                            "SN",
                            "RS",
                            "SC",
                            "SL",
                            "SG",
                            "SX",
                            "SK",
                            "SI",
                            "SB",
                            "SO",
                            "ZA",
                            "GS",
                            "SS",
                            "ES",
                            "LK",
                            "SD",
                            "SR",
                            "SJ",
                            "SZ",
                            "SE",
                            "CH",
                            "SY",
                            "TW",
                            "TJ",
                            "TZ",
                            "TH",
                            "TL",
                            "TG",
                            "TK",
                            "TO",
                            "TT",
                            "TN",
                            "TR",
                            "TM",
                            "TC",
                            "TV",
                            "UG",
                            "UA",
                            "AE",
                            "GB",
                            "US",
                            "UM",
                            "UY",
                            "UZ",
                            "VU",
                            "VE",
                            "VN",
                            "VG",
                            "VI",
                            "WF",
                            "EH",
                            "YE",
                            "ZM",
                            "ZW"
                          ]
                        },
                        "description": "List of ISO 3166-1 alpha-2 country codes. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "partnerRestriction": {
                    "type": "object",
                    "description": "Allow/deny charge points owned by specific partners, or exclude all roaming charge points.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny",
                          "exclude_roaming"
                        ],
                        "description": "- **none**: No partner restriction.\n- **allow**: Only partners in the list are allowed.\n- **deny**: Partners in the list are denied.\n- **exclude_roaming**: Roaming charge points cannot be used. Partner list is ignored.\n"
                      },
                      "partnerIds": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        },
                        "description": "List of partner IDs. Empty when type is none or exclude_roaming."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "locationRestriction": {
                    "type": "object",
                    "description": "Allow/deny specific locations.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No location restriction.\n- **allow**: Only locations in the list are allowed.\n- **deny**: Locations in the list are denied.\n"
                      },
                      "locationIds": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        },
                        "description": "List of location IDs. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "locationTagRestriction": {
                    "type": "object",
                    "description": "Allow/deny locations by tag name.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No location tag restriction.\n- **allow**: Only locations with these tags are allowed.\n- **deny**: Locations with these tags are denied.\n"
                      },
                      "locationTagNames": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "List of location tag names. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "userGroupRestriction": {
                    "type": "object",
                    "description": "Allow/deny specific user groups.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No user group restriction.\n- **allow**: Only users in these groups are allowed.\n- **deny**: Users in these groups are denied.\n"
                      },
                      "userGroupIds": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        },
                        "description": "List of user group IDs. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "minSessionEnergyWh": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Minimum session energy in watt-hours required for the coupon to be applicable."
                  },
                  "maxSessionEnergyWh": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Maximum session energy in watt-hours for the coupon to be applicable."
                  }
                }
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "energyCouponRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "operatorId",
              "code",
              "type",
              "status",
              "energyWh",
              "remainingEnergyWh",
              "evseType",
              "restrictions",
              "createdAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "userId": {
                "type": "integer",
                "description": "The ID of the user the coupon is assigned to. Only present when the coupon is assigned to a user."
              },
              "code": {
                "type": "string",
                "description": "Unique coupon code"
              },
              "type": {
                "type": "string",
                "enum": [
                  "subscription",
                  "support_grant",
                  "manual_single",
                  "promotional",
                  "top_up_bonus"
                ],
                "description": "Energy coupon type. Only `support_grant` and `manual_single` can be created via the API. The remaining types are created automatically by the system.\n- **subscription**: Automatically created from a subscription plan\n- **support_grant**: Created by an operator as a support grant\n- **manual_single**: Manually created single-use coupon\n- **promotional**: Created as part of a promotional campaign\n- **top_up_bonus**: Bonus coupon from a top-up\n",
                "example": "support_grant"
              },
              "status": {
                "type": "string",
                "enum": [
                  "unredeemed",
                  "inactive",
                  "active",
                  "locked",
                  "fully_consumed",
                  "expired",
                  "cancelled"
                ],
                "description": "Energy coupon status:\n- **unredeemed**: Not yet assigned to a user\n- **inactive**: Waiting to become valid (valid from date is in the future)\n- **active**: Currently usable for charging sessions\n- **locked**: Locked by an ongoing charging session\n- **fully_consumed**: All energy has been consumed\n- **expired**: Validity period has passed\n- **cancelled**: Manually cancelled\n",
                "example": "active"
              },
              "energyWh": {
                "type": "integer",
                "description": "Total energy amount in watt-hours"
              },
              "remainingEnergyWh": {
                "type": "integer",
                "description": "Remaining energy amount in watt-hours"
              },
              "evseType": {
                "deprecated": true,
                "description": "EVSE type restriction for the energy coupon:\n- **ac**: Coupon can only be used at AC charging stations\n- **dc**: Coupon can only be used at DC charging stations\n- **any**: Coupon can be used at any charging station type\n",
                "type": "string",
                "enum": [
                  "ac",
                  "dc",
                  "any"
                ],
                "example": "any"
              },
              "validFrom": {
                "type": "string",
                "format": "date",
                "description": "Uses the YYYY-MM-DD date format."
              },
              "validTo": {
                "type": "string",
                "format": "date",
                "description": "Uses the YYYY-MM-DD date format."
              },
              "externalId": {
                "type": "string",
                "maxLength": 255,
                "description": "An optional external identifier for integration purposes"
              },
              "restrictions": {
                "type": "object",
                "description": "Restrictions that limit where and by whom coupons can be used. All sub-restrictions are always returned.\n",
                "properties": {
                  "personalChargePointsOnly": {
                    "type": "boolean",
                    "description": "When true, coupons can only be used at personal (home) charge points."
                  },
                  "evseType": {
                    "description": "EVSE type restriction for the energy coupon:\n- **ac**: Coupon can only be used at AC charging stations\n- **dc**: Coupon can only be used at DC charging stations\n- **any**: Coupon can be used at any charging station type\n",
                    "type": "string",
                    "enum": [
                      "ac",
                      "dc",
                      "any"
                    ],
                    "example": "any"
                  },
                  "countryRestriction": {
                    "type": "object",
                    "description": "Allow/deny charge points in specific countries.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No country restriction.\n- **allow**: Only countries in the list are allowed.\n- **deny**: Countries in the list are denied.\n"
                      },
                      "countries": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "AF",
                            "AX",
                            "AL",
                            "DZ",
                            "AS",
                            "AD",
                            "AO",
                            "AI",
                            "AQ",
                            "AG",
                            "AR",
                            "AM",
                            "AW",
                            "AU",
                            "AT",
                            "AZ",
                            "BS",
                            "BH",
                            "BD",
                            "BB",
                            "BY",
                            "BE",
                            "BZ",
                            "BJ",
                            "BM",
                            "BT",
                            "BO",
                            "BQ",
                            "BA",
                            "BW",
                            "BV",
                            "BR",
                            "IO",
                            "BN",
                            "BG",
                            "BF",
                            "BI",
                            "KH",
                            "CM",
                            "CA",
                            "CV",
                            "KY",
                            "CF",
                            "TD",
                            "CL",
                            "CN",
                            "CX",
                            "CC",
                            "CO",
                            "KM",
                            "CG",
                            "CD",
                            "CK",
                            "CR",
                            "CI",
                            "HR",
                            "CU",
                            "CW",
                            "CY",
                            "CZ",
                            "DK",
                            "DJ",
                            "DM",
                            "DO",
                            "EC",
                            "EG",
                            "SV",
                            "GQ",
                            "ER",
                            "EE",
                            "ET",
                            "FK",
                            "FO",
                            "FJ",
                            "FI",
                            "FR",
                            "GF",
                            "PF",
                            "TF",
                            "GA",
                            "GM",
                            "GE",
                            "DE",
                            "GH",
                            "GI",
                            "GR",
                            "GL",
                            "GD",
                            "GP",
                            "GU",
                            "GT",
                            "GG",
                            "GN",
                            "GW",
                            "GY",
                            "HT",
                            "HM",
                            "VA",
                            "HN",
                            "HK",
                            "HU",
                            "IS",
                            "IN",
                            "ID",
                            "IR",
                            "IQ",
                            "IE",
                            "IM",
                            "IL",
                            "IT",
                            "JM",
                            "JP",
                            "JE",
                            "JO",
                            "KZ",
                            "KE",
                            "KI",
                            "KP",
                            "KR",
                            "XK",
                            "KW",
                            "KG",
                            "LA",
                            "LV",
                            "LB",
                            "LS",
                            "LR",
                            "LY",
                            "LI",
                            "LT",
                            "LU",
                            "MO",
                            "MK",
                            "MG",
                            "MW",
                            "MY",
                            "MV",
                            "ML",
                            "MT",
                            "MH",
                            "MQ",
                            "MR",
                            "MU",
                            "YT",
                            "MX",
                            "FM",
                            "MD",
                            "MC",
                            "MN",
                            "ME",
                            "MS",
                            "MA",
                            "MZ",
                            "MM",
                            "NA",
                            "NR",
                            "NP",
                            "NL",
                            "NC",
                            "NZ",
                            "NI",
                            "NE",
                            "NG",
                            "NU",
                            "NF",
                            "MP",
                            "NO",
                            "OM",
                            "PK",
                            "PW",
                            "PS",
                            "PA",
                            "PG",
                            "PY",
                            "PE",
                            "PH",
                            "PN",
                            "PL",
                            "PT",
                            "PR",
                            "QA",
                            "RE",
                            "RO",
                            "RU",
                            "RW",
                            "BL",
                            "SH",
                            "KN",
                            "LC",
                            "MF",
                            "PM",
                            "VC",
                            "WS",
                            "SM",
                            "ST",
                            "SA",
                            "SN",
                            "RS",
                            "SC",
                            "SL",
                            "SG",
                            "SX",
                            "SK",
                            "SI",
                            "SB",
                            "SO",
                            "ZA",
                            "GS",
                            "SS",
                            "ES",
                            "LK",
                            "SD",
                            "SR",
                            "SJ",
                            "SZ",
                            "SE",
                            "CH",
                            "SY",
                            "TW",
                            "TJ",
                            "TZ",
                            "TH",
                            "TL",
                            "TG",
                            "TK",
                            "TO",
                            "TT",
                            "TN",
                            "TR",
                            "TM",
                            "TC",
                            "TV",
                            "UG",
                            "UA",
                            "AE",
                            "GB",
                            "US",
                            "UM",
                            "UY",
                            "UZ",
                            "VU",
                            "VE",
                            "VN",
                            "VG",
                            "VI",
                            "WF",
                            "EH",
                            "YE",
                            "ZM",
                            "ZW"
                          ]
                        },
                        "description": "List of ISO 3166-1 alpha-2 country codes. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "partnerRestriction": {
                    "type": "object",
                    "description": "Allow/deny charge points owned by specific partners, or exclude all roaming charge points.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny",
                          "exclude_roaming"
                        ],
                        "description": "- **none**: No partner restriction.\n- **allow**: Only partners in the list are allowed.\n- **deny**: Partners in the list are denied.\n- **exclude_roaming**: Roaming charge points cannot be used. Partner list is ignored.\n"
                      },
                      "partnerIds": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        },
                        "description": "List of partner IDs. Empty when type is none or exclude_roaming."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "locationRestriction": {
                    "type": "object",
                    "description": "Allow/deny specific locations.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No location restriction.\n- **allow**: Only locations in the list are allowed.\n- **deny**: Locations in the list are denied.\n"
                      },
                      "locationIds": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        },
                        "description": "List of location IDs. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "locationTagRestriction": {
                    "type": "object",
                    "description": "Allow/deny locations by tag name.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No location tag restriction.\n- **allow**: Only locations with these tags are allowed.\n- **deny**: Locations with these tags are denied.\n"
                      },
                      "locationTagNames": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "List of location tag names. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "userGroupRestriction": {
                    "type": "object",
                    "description": "Allow/deny specific user groups.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "- **none**: No user group restriction.\n- **allow**: Only users in these groups are allowed.\n- **deny**: Users in these groups are denied.\n"
                      },
                      "userGroupIds": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        },
                        "description": "List of user group IDs. Empty when type is none."
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "minSessionEnergyWh": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Minimum session energy in watt-hours required for the coupon to be applicable."
                  },
                  "maxSessionEnergyWh": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Maximum session energy in watt-hours for the coupon to be applicable."
                  }
                }
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "energyCouponSessionConsumptions": {
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "Energy consumed from an energy coupon during a charging session",
                  "required": [
                    "sessionId",
                    "couponId",
                    "consumedEnergyWh"
                  ],
                  "properties": {
                    "sessionId": {
                      "type": "integer",
                      "description": "The ID of the charging session"
                    },
                    "couponId": {
                      "type": "integer",
                      "description": "The ID of the energy coupon"
                    },
                    "consumedEnergyWh": {
                      "type": "integer",
                      "description": "Energy consumed from this coupon during the session, in watt-hours"
                    }
                  }
                },
                "description": "Energy consumption records per charging session. Only included when `?include[]=energyCouponSessionConsumptions` is specified."
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "energyCouponSessionConsumptionRecords": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Energy consumed from an energy coupon during a charging session",
              "required": [
                "sessionId",
                "couponId",
                "consumedEnergyWh"
              ],
              "properties": {
                "sessionId": {
                  "type": "integer",
                  "description": "The ID of the charging session"
                },
                "couponId": {
                  "type": "integer",
                  "description": "The ID of the energy coupon"
                },
                "consumedEnergyWh": {
                  "type": "integer",
                  "description": "Energy consumed from this coupon during the session, in watt-hours"
                }
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "evseDowntimePeriodsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "evseId": {
                  "type": "integer",
                  "readOnly": true
                },
                "chargePointId": {
                  "type": "integer",
                  "description": "ID of the charge point to which the EVSE belongs for which the downtime period is recorded."
                },
                "startedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date. The time at which the EVSE changed its status to meet the requirements for entering a downtime period."
                },
                "endedAt": {
                  "type": "string",
                  "format": "date-time",
                  "nullable": true,
                  "description": "ISO 8601 formatted date. The time at which the EVSE changed its status to meet the requirements for exiting the downtime period."
                },
                "statusLog": {
                  "type": "object",
                  "description": "The StatusLog entry that triggered this downtime period. Null when no trigger StatusLog exists (legacy records or manual entries).",
                  "required": [
                    "id",
                    "timestamp",
                    "status"
                  ],
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "StatusLog record identifier"
                    },
                    "timestamp": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO 8601 timestamp when the status change was recorded",
                      "example": "2024-01-01T12:00:00Z"
                    },
                    "status": {
                      "type": "string",
                      "description": "The hardware or network status value"
                    },
                    "errorCode": {
                      "type": "string",
                      "description": "OCPP error code or \"NoError\"",
                      "example": "NoError"
                    },
                    "info": {
                      "type": "string",
                      "description": "Additional information from the charge point",
                      "example": "Connector successfully locked"
                    },
                    "vendorId": {
                      "type": "string",
                      "description": "Vendor identifier",
                      "example": "ABB"
                    },
                    "vendorErrorCode": {
                      "type": "string",
                      "description": "Vendor-specific error code",
                      "example": "E001"
                    },
                    "errorCodeDescription": {
                      "type": "string",
                      "description": "Human-readable description from vendor catalog",
                      "example": "Communication timeout with vehicle"
                    },
                    "errorCodeCustomerAction": {
                      "type": "string",
                      "description": "Recommended action from vendor catalog",
                      "example": "Please ensure the charging cable is properly connected"
                    }
                  }
                },
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "locationId": {
                  "type": "integer",
                  "nullable": true,
                  "readOnly": true,
                  "description": "Id of associated location."
                },
                "entryMode": {
                  "type": "string",
                  "enum": [
                    "manual",
                    "automatic"
                  ],
                  "readOnly": true,
                  "description": "* `manual` - created by an admin\n* `automatic` - created automatically by the system.\n"
                },
                "noticeId": {
                  "type": "integer",
                  "description": "Id of the predefined notices from Downtime Period Notice Resource"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "downtime",
                    "exempt"
                  ],
                  "readOnly": true
                },
                "statuses": {
                  "type": "object",
                  "properties": {
                    "system": {
                      "type": "string",
                      "enum": [
                        "enabled",
                        "disabled",
                        "out of order",
                        "demo"
                      ],
                      "description": "Shows the system status of the Charge Point.\n  * `enabled` - the charge point is fully operative.\n  * `disabled` - the charge point would not be shown on the map if it is a commercial public or commercial private with the relevant option for visibility nor could be claimed or found by ID if it is personal (home). </br>\n  * `demo` - acts as a simulator so different setups could be tested.\n  * `out of order` - the charge point is visible and shared with users, but a charging session\n"
                    },
                    "network": {
                      "type": "string",
                      "enum": [
                        "never connected",
                        "available",
                        "temporarily unavailable",
                        "long-term unavailable"
                      ],
                      "description": "Connection status of the charge point:\n  * `never connected` - the charge point has not yet connected to the CPMS\n  * `available` - connected to the CPMS\n  * `temporarily unavailable` - disconnected a short while ago\n  * `long-term unavailable` - disconnected, and some time has passed, so we dont expect the connection will be restores\n"
                    },
                    "hardware": {
                      "type": "string",
                      "nullable": true,
                      "description": "EVSE hardware status:\n- **available**: EVSE is available for use\n- **preparing**: EVSE is preparing to charge (e.g., cable plugged in, awaiting authorization)\n- **charging**: EVSE is actively charging a vehicle\n- **suspendedEV**: Charging is suspended by the EV (vehicle-side pause)\n- **suspendedEVSE**: Charging is suspended by the EVSE (charger-side pause)\n- **finishing**: Charging session is finishing\n- **reserved**: EVSE is reserved\n- **unavailable**: EVSE is not available for use\n- **faulted**: EVSE is in a faulted state\n- **occupied**: EVSE is occupied\n",
                      "enum": [
                        "available",
                        "preparing",
                        "charging",
                        "suspendedEV",
                        "suspendedEVSE",
                        "finishing",
                        "reserved",
                        "unavailable",
                        "faulted",
                        "occupied"
                      ],
                      "example": "suspendedEV"
                    }
                  },
                  "readOnly": true,
                  "required": [
                    "system",
                    "network",
                    "hardware"
                  ],
                  "description": "A snapshot of the statuses of the charge point at the time of creation of the downtime period."
                }
              },
              "required": [
                "id",
                "evseId",
                "chargePointId",
                "locationId",
                "entryMode",
                "type",
                "statuses",
                "startedAt",
                "endedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "evseDowntimePeriodCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "evseId": {
                "type": "integer",
                "readOnly": true
              },
              "chargePointId": {
                "type": "integer",
                "description": "ID of the charge point to which the EVSE belongs for which the downtime period is recorded."
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date. The time at which the EVSE changed its status to meet the requirements for entering a downtime period."
              },
              "endedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "description": "ISO 8601 formatted date. The time at which the EVSE changed its status to meet the requirements for exiting the downtime period."
              },
              "statusLog": {
                "type": "object",
                "description": "The StatusLog entry that triggered this downtime period. Null when no trigger StatusLog exists (legacy records or manual entries).",
                "required": [
                  "id",
                  "timestamp",
                  "status"
                ],
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "StatusLog record identifier"
                  },
                  "timestamp": {
                    "type": "string",
                    "format": "date-time",
                    "description": "ISO 8601 timestamp when the status change was recorded",
                    "example": "2024-01-01T12:00:00Z"
                  },
                  "status": {
                    "type": "string",
                    "description": "The hardware or network status value"
                  },
                  "errorCode": {
                    "type": "string",
                    "description": "OCPP error code or \"NoError\"",
                    "example": "NoError"
                  },
                  "info": {
                    "type": "string",
                    "description": "Additional information from the charge point",
                    "example": "Connector successfully locked"
                  },
                  "vendorId": {
                    "type": "string",
                    "description": "Vendor identifier",
                    "example": "ABB"
                  },
                  "vendorErrorCode": {
                    "type": "string",
                    "description": "Vendor-specific error code",
                    "example": "E001"
                  },
                  "errorCodeDescription": {
                    "type": "string",
                    "description": "Human-readable description from vendor catalog",
                    "example": "Communication timeout with vehicle"
                  },
                  "errorCodeCustomerAction": {
                    "type": "string",
                    "description": "Recommended action from vendor catalog",
                    "example": "Please ensure the charging cable is properly connected"
                  }
                }
              },
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "locationId": {
                "type": "integer",
                "nullable": true,
                "readOnly": true,
                "description": "Id of associated location."
              },
              "entryMode": {
                "type": "string",
                "enum": [
                  "manual",
                  "automatic"
                ],
                "readOnly": true,
                "description": "* `manual` - created by an admin\n* `automatic` - created automatically by the system.\n"
              },
              "noticeId": {
                "type": "integer",
                "description": "Id of the predefined notices from Downtime Period Notice Resource"
              },
              "type": {
                "type": "string",
                "enum": [
                  "downtime",
                  "exempt"
                ],
                "readOnly": true
              },
              "statuses": {
                "type": "object",
                "properties": {
                  "system": {
                    "type": "string",
                    "enum": [
                      "enabled",
                      "disabled",
                      "out of order",
                      "demo"
                    ],
                    "description": "Shows the system status of the Charge Point.\n  * `enabled` - the charge point is fully operative.\n  * `disabled` - the charge point would not be shown on the map if it is a commercial public or commercial private with the relevant option for visibility nor could be claimed or found by ID if it is personal (home). </br>\n  * `demo` - acts as a simulator so different setups could be tested.\n  * `out of order` - the charge point is visible and shared with users, but a charging session\n"
                  },
                  "network": {
                    "type": "string",
                    "enum": [
                      "never connected",
                      "available",
                      "temporarily unavailable",
                      "long-term unavailable"
                    ],
                    "description": "Connection status of the charge point:\n  * `never connected` - the charge point has not yet connected to the CPMS\n  * `available` - connected to the CPMS\n  * `temporarily unavailable` - disconnected a short while ago\n  * `long-term unavailable` - disconnected, and some time has passed, so we dont expect the connection will be restores\n"
                  },
                  "hardware": {
                    "type": "string",
                    "nullable": true,
                    "description": "EVSE hardware status:\n- **available**: EVSE is available for use\n- **preparing**: EVSE is preparing to charge (e.g., cable plugged in, awaiting authorization)\n- **charging**: EVSE is actively charging a vehicle\n- **suspendedEV**: Charging is suspended by the EV (vehicle-side pause)\n- **suspendedEVSE**: Charging is suspended by the EVSE (charger-side pause)\n- **finishing**: Charging session is finishing\n- **reserved**: EVSE is reserved\n- **unavailable**: EVSE is not available for use\n- **faulted**: EVSE is in a faulted state\n- **occupied**: EVSE is occupied\n",
                    "enum": [
                      "available",
                      "preparing",
                      "charging",
                      "suspendedEV",
                      "suspendedEVSE",
                      "finishing",
                      "reserved",
                      "unavailable",
                      "faulted",
                      "occupied"
                    ],
                    "example": "suspendedEV"
                  }
                },
                "readOnly": true,
                "required": [
                  "system",
                  "network",
                  "hardware"
                ],
                "description": "A snapshot of the statuses of the charge point at the time of creation of the downtime period."
              }
            },
            "required": [
              "id",
              "evseId",
              "chargePointId",
              "locationId",
              "entryMode",
              "type",
              "statuses",
              "startedAt",
              "endedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "evseDowntimePeriodRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "evseId": {
                "type": "integer",
                "readOnly": true
              },
              "chargePointId": {
                "type": "integer",
                "description": "ID of the charge point to which the EVSE belongs for which the downtime period is recorded."
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date. The time at which the EVSE changed its status to meet the requirements for entering a downtime period."
              },
              "endedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "description": "ISO 8601 formatted date. The time at which the EVSE changed its status to meet the requirements for exiting the downtime period."
              },
              "statusLog": {
                "type": "object",
                "description": "The StatusLog entry that triggered this downtime period. Null when no trigger StatusLog exists (legacy records or manual entries).",
                "required": [
                  "id",
                  "timestamp",
                  "status"
                ],
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "StatusLog record identifier"
                  },
                  "timestamp": {
                    "type": "string",
                    "format": "date-time",
                    "description": "ISO 8601 timestamp when the status change was recorded",
                    "example": "2024-01-01T12:00:00Z"
                  },
                  "status": {
                    "type": "string",
                    "description": "The hardware or network status value"
                  },
                  "errorCode": {
                    "type": "string",
                    "description": "OCPP error code or \"NoError\"",
                    "example": "NoError"
                  },
                  "info": {
                    "type": "string",
                    "description": "Additional information from the charge point",
                    "example": "Connector successfully locked"
                  },
                  "vendorId": {
                    "type": "string",
                    "description": "Vendor identifier",
                    "example": "ABB"
                  },
                  "vendorErrorCode": {
                    "type": "string",
                    "description": "Vendor-specific error code",
                    "example": "E001"
                  },
                  "errorCodeDescription": {
                    "type": "string",
                    "description": "Human-readable description from vendor catalog",
                    "example": "Communication timeout with vehicle"
                  },
                  "errorCodeCustomerAction": {
                    "type": "string",
                    "description": "Recommended action from vendor catalog",
                    "example": "Please ensure the charging cable is properly connected"
                  }
                }
              },
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "locationId": {
                "type": "integer",
                "nullable": true,
                "readOnly": true,
                "description": "Id of associated location."
              },
              "entryMode": {
                "type": "string",
                "enum": [
                  "manual",
                  "automatic"
                ],
                "readOnly": true,
                "description": "* `manual` - created by an admin\n* `automatic` - created automatically by the system.\n"
              },
              "noticeId": {
                "type": "integer",
                "description": "Id of the predefined notices from Downtime Period Notice Resource"
              },
              "type": {
                "type": "string",
                "enum": [
                  "downtime",
                  "exempt"
                ],
                "readOnly": true
              },
              "statuses": {
                "type": "object",
                "properties": {
                  "system": {
                    "type": "string",
                    "enum": [
                      "enabled",
                      "disabled",
                      "out of order",
                      "demo"
                    ],
                    "description": "Shows the system status of the Charge Point.\n  * `enabled` - the charge point is fully operative.\n  * `disabled` - the charge point would not be shown on the map if it is a commercial public or commercial private with the relevant option for visibility nor could be claimed or found by ID if it is personal (home). </br>\n  * `demo` - acts as a simulator so different setups could be tested.\n  * `out of order` - the charge point is visible and shared with users, but a charging session\n"
                  },
                  "network": {
                    "type": "string",
                    "enum": [
                      "never connected",
                      "available",
                      "temporarily unavailable",
                      "long-term unavailable"
                    ],
                    "description": "Connection status of the charge point:\n  * `never connected` - the charge point has not yet connected to the CPMS\n  * `available` - connected to the CPMS\n  * `temporarily unavailable` - disconnected a short while ago\n  * `long-term unavailable` - disconnected, and some time has passed, so we dont expect the connection will be restores\n"
                  },
                  "hardware": {
                    "type": "string",
                    "nullable": true,
                    "description": "EVSE hardware status:\n- **available**: EVSE is available for use\n- **preparing**: EVSE is preparing to charge (e.g., cable plugged in, awaiting authorization)\n- **charging**: EVSE is actively charging a vehicle\n- **suspendedEV**: Charging is suspended by the EV (vehicle-side pause)\n- **suspendedEVSE**: Charging is suspended by the EVSE (charger-side pause)\n- **finishing**: Charging session is finishing\n- **reserved**: EVSE is reserved\n- **unavailable**: EVSE is not available for use\n- **faulted**: EVSE is in a faulted state\n- **occupied**: EVSE is occupied\n",
                    "enum": [
                      "available",
                      "preparing",
                      "charging",
                      "suspendedEV",
                      "suspendedEVSE",
                      "finishing",
                      "reserved",
                      "unavailable",
                      "faulted",
                      "occupied"
                    ],
                    "example": "suspendedEV"
                  }
                },
                "readOnly": true,
                "required": [
                  "system",
                  "network",
                  "hardware"
                ],
                "description": "A snapshot of the statuses of the charge point at the time of creation of the downtime period."
              }
            },
            "required": [
              "id",
              "evseId",
              "chargePointId",
              "locationId",
              "entryMode",
              "type",
              "statuses",
              "startedAt",
              "endedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "evseDowntimePeriodDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "evseDowntimePeriodUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "evseId": {
                "type": "integer",
                "readOnly": true
              },
              "chargePointId": {
                "type": "integer",
                "description": "ID of the charge point to which the EVSE belongs for which the downtime period is recorded."
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date. The time at which the EVSE changed its status to meet the requirements for entering a downtime period."
              },
              "endedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "description": "ISO 8601 formatted date. The time at which the EVSE changed its status to meet the requirements for exiting the downtime period."
              },
              "statusLog": {
                "type": "object",
                "description": "The StatusLog entry that triggered this downtime period. Null when no trigger StatusLog exists (legacy records or manual entries).",
                "required": [
                  "id",
                  "timestamp",
                  "status"
                ],
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "StatusLog record identifier"
                  },
                  "timestamp": {
                    "type": "string",
                    "format": "date-time",
                    "description": "ISO 8601 timestamp when the status change was recorded",
                    "example": "2024-01-01T12:00:00Z"
                  },
                  "status": {
                    "type": "string",
                    "description": "The hardware or network status value"
                  },
                  "errorCode": {
                    "type": "string",
                    "description": "OCPP error code or \"NoError\"",
                    "example": "NoError"
                  },
                  "info": {
                    "type": "string",
                    "description": "Additional information from the charge point",
                    "example": "Connector successfully locked"
                  },
                  "vendorId": {
                    "type": "string",
                    "description": "Vendor identifier",
                    "example": "ABB"
                  },
                  "vendorErrorCode": {
                    "type": "string",
                    "description": "Vendor-specific error code",
                    "example": "E001"
                  },
                  "errorCodeDescription": {
                    "type": "string",
                    "description": "Human-readable description from vendor catalog",
                    "example": "Communication timeout with vehicle"
                  },
                  "errorCodeCustomerAction": {
                    "type": "string",
                    "description": "Recommended action from vendor catalog",
                    "example": "Please ensure the charging cable is properly connected"
                  }
                }
              },
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "locationId": {
                "type": "integer",
                "nullable": true,
                "readOnly": true,
                "description": "Id of associated location."
              },
              "entryMode": {
                "type": "string",
                "enum": [
                  "manual",
                  "automatic"
                ],
                "readOnly": true,
                "description": "* `manual` - created by an admin\n* `automatic` - created automatically by the system.\n"
              },
              "noticeId": {
                "type": "integer",
                "description": "Id of the predefined notices from Downtime Period Notice Resource"
              },
              "type": {
                "type": "string",
                "enum": [
                  "downtime",
                  "exempt"
                ],
                "readOnly": true
              },
              "statuses": {
                "type": "object",
                "properties": {
                  "system": {
                    "type": "string",
                    "enum": [
                      "enabled",
                      "disabled",
                      "out of order",
                      "demo"
                    ],
                    "description": "Shows the system status of the Charge Point.\n  * `enabled` - the charge point is fully operative.\n  * `disabled` - the charge point would not be shown on the map if it is a commercial public or commercial private with the relevant option for visibility nor could be claimed or found by ID if it is personal (home). </br>\n  * `demo` - acts as a simulator so different setups could be tested.\n  * `out of order` - the charge point is visible and shared with users, but a charging session\n"
                  },
                  "network": {
                    "type": "string",
                    "enum": [
                      "never connected",
                      "available",
                      "temporarily unavailable",
                      "long-term unavailable"
                    ],
                    "description": "Connection status of the charge point:\n  * `never connected` - the charge point has not yet connected to the CPMS\n  * `available` - connected to the CPMS\n  * `temporarily unavailable` - disconnected a short while ago\n  * `long-term unavailable` - disconnected, and some time has passed, so we dont expect the connection will be restores\n"
                  },
                  "hardware": {
                    "type": "string",
                    "nullable": true,
                    "description": "EVSE hardware status:\n- **available**: EVSE is available for use\n- **preparing**: EVSE is preparing to charge (e.g., cable plugged in, awaiting authorization)\n- **charging**: EVSE is actively charging a vehicle\n- **suspendedEV**: Charging is suspended by the EV (vehicle-side pause)\n- **suspendedEVSE**: Charging is suspended by the EVSE (charger-side pause)\n- **finishing**: Charging session is finishing\n- **reserved**: EVSE is reserved\n- **unavailable**: EVSE is not available for use\n- **faulted**: EVSE is in a faulted state\n- **occupied**: EVSE is occupied\n",
                    "enum": [
                      "available",
                      "preparing",
                      "charging",
                      "suspendedEV",
                      "suspendedEVSE",
                      "finishing",
                      "reserved",
                      "unavailable",
                      "faulted",
                      "occupied"
                    ],
                    "example": "suspendedEV"
                  }
                },
                "readOnly": true,
                "required": [
                  "system",
                  "network",
                  "hardware"
                ],
                "description": "A snapshot of the statuses of the charge point at the time of creation of the downtime period."
              }
            },
            "required": [
              "id",
              "evseId",
              "chargePointId",
              "locationId",
              "entryMode",
              "type",
              "statuses",
              "startedAt",
              "endedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "evseDowntimePeriodStatusLog": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "The StatusLog entry that triggered this downtime period. Null when no trigger StatusLog exists (legacy records or manual entries).",
            "required": [
              "id",
              "timestamp",
              "status"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "StatusLog record identifier"
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 timestamp when the status change was recorded",
                "example": "2024-01-01T12:00:00Z"
              },
              "status": {
                "type": "string",
                "description": "The hardware or network status value"
              },
              "errorCode": {
                "type": "string",
                "description": "OCPP error code or \"NoError\"",
                "example": "NoError"
              },
              "info": {
                "type": "string",
                "description": "Additional information from the charge point",
                "example": "Connector successfully locked"
              },
              "vendorId": {
                "type": "string",
                "description": "Vendor identifier",
                "example": "ABB"
              },
              "vendorErrorCode": {
                "type": "string",
                "description": "Vendor-specific error code",
                "example": "E001"
              },
              "errorCodeDescription": {
                "type": "string",
                "description": "Human-readable description from vendor catalog",
                "example": "Communication timeout with vehicle"
              },
              "errorCodeCustomerAction": {
                "type": "string",
                "description": "Recommended action from vendor catalog",
                "example": "Please ensure the charging cable is properly connected"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "evsesListingDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "chargePointId": {
                  "type": "integer",
                  "readOnly": true
                },
                "chargingProfile": {
                  "type": "object",
                  "nullable": true,
                  "readOnly": true,
                  "allOf": [
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer"
                        },
                        "minChargingRate": {
                          "type": "number",
                          "nullable": true
                        },
                        "schedulePeriods": {
                          "type": "array",
                          "nullable": true,
                          "items": {
                            "type": "object",
                            "properties": {
                              "startPeriod": {
                                "type": "integer"
                              },
                              "limit": {
                                "type": "number",
                                "multipleOf": 0.1
                              },
                              "numberPhases": {
                                "type": "integer"
                              }
                            }
                          }
                        },
                        "scheduleStart": {
                          "type": "string",
                          "format": "datetime",
                          "nullable": true
                        },
                        "chargingRateUnit": {
                          "type": "string",
                          "enum": [
                            "A",
                            "W"
                          ]
                        },
                        "stackLevel": {
                          "type": "integer"
                        },
                        "chargingProfileKind": {
                          "type": "string",
                          "enum": [
                            "Absolute",
                            "Recurring",
                            "Relative"
                          ]
                        },
                        "recurrencyKind": {
                          "type": "string",
                          "nullable": true,
                          "enum": [
                            "daily",
                            "weekly"
                          ]
                        },
                        "chargingCompleteAt": {
                          "type": "string",
                          "format": "datetime",
                          "nullable": true
                        },
                        "purpose": {
                          "type": "string",
                          "enum": [
                            "ChargePointMaxProfile",
                            "TxDefaultProfile",
                            "TxProfile"
                          ]
                        },
                        "validTo": {
                          "type": "string",
                          "format": "datetime",
                          "nullable": true
                        },
                        "validFrom": {
                          "type": "string",
                          "format": "datetime",
                          "nullable": true
                        },
                        "duration": {
                          "type": "integer",
                          "nullable": true
                        }
                      }
                    }
                  ]
                },
                "roaming": {
                  "type": "object",
                  "nullable": true,
                  "readOnly": true,
                  "properties": {
                    "evseId": {
                      "type": "string",
                      "description": "The EVSE Id that we receive through roaming.",
                      "nullable": true
                    },
                    "status": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "available",
                        "blocked",
                        "charging",
                        "inoperative",
                        "outoforder",
                        "planned",
                        "removed",
                        "reserved",
                        "unknown"
                      ],
                      "description": "* `available` - The EVSE/Connector is able to start a new charging session. * `blocked` - The EVSE/Connector is not accessible because of a physical barrier, i.e. a car. * `charging` - The EVSE/Connector is in use. * `inoperative` - The EVSE/Connector is not yet active or it is no longer available (deleted). * `outoforder` - The EVSE/Connector is currently out of order. * `planned` - The EVSE/Connector is planned, will be operating soon. * `removed` - The EVSE/Connector/charge point is discontinued/removed. * `reserved` - The EVSE/Connector is reserved for a particular EV driver and is unavailable for other drivers. * `unknown` -  No status information available. (Also used when offline)\n"
                    },
                    "tariffIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "The tariffs IDS that we reveived from roaming (as were specified by the CPO).",
                      "nullable": true
                    }
                  }
                },
                "connectors": {
                  "nullable": true,
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer"
                      },
                      "type": {
                        "allOf": [
                          {
                            "type": "string",
                            "enum": [
                              "type1",
                              "type2",
                              "type3",
                              "chademo",
                              "ccs1",
                              "ccs2",
                              "catarc",
                              "schuko",
                              "nacs",
                              "cee16",
                              "cee32",
                              "j1772",
                              "inductive",
                              "nema-5-20",
                              "type-e-french",
                              "type-g-british",
                              "type-j-swiss",
                              "avcon",
                              "chaoji",
                              "nema-6-30",
                              "nema-6-50",
                              "mcs",
                              "unknown"
                            ],
                            "description": "Type of connector available on the EVSE:\n- **type1**: Type 1 connector (SAE J1772 AC)\n- **type2**: Type 2 connector (IEC 62196-2 AC)\n- **type3**: Type 3 connector (IEC 62196-2 AC)\n- **chademo**: CHAdeMO DC fast charging\n- **ccs1**: Combined Charging System 1 (CCS1/Combo 1)\n- **ccs2**: Combined Charging System 2 (CCS2/Combo 2)\n- **catarc**: CATARC connector (Chinese standard)\n- **schuko**: Standard European household socket\n- **nacs**: North American Charging Standard (Tesla)\n- **cee16**: CEE 16A industrial connector\n- **cee32**: CEE 32A industrial connector\n- **j1772**: SAE J1772 connector\n- **inductive**: Inductive/wireless charging\n- **nema-5-20**: Domestic M NEMA 5-20 Socket\n- **type-e-french**: French Type E socket\n- **type-g-british**: British Type G socket\n- **type-j-swiss**: Swiss Type J socket\n- **avcon**: AVCON connector (Australian standard)\n- **chaoji**: ChaoJi (CHAdeMO 3.0)\n- **nema-6-30**: NEMA 6-30\n- **nema-6-50**: NEMA 6-50\n- **mcs**: Megawatt Charging System (MCS)\n- **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows.\n"
                          },
                          {
                            "type": "string",
                            "nullable": true
                          }
                        ]
                      },
                      "format": {
                        "type": "string",
                        "enum": [
                          "socket",
                          "cable"
                        ],
                        "nullable": true
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "active",
                          "disabled"
                        ],
                        "nullable": true
                      },
                      "ocpiMaxVoltage": {
                        "type": "integer"
                      },
                      "ocpiMaxAmperage": {
                        "type": "integer"
                      },
                      "ocpiMaxElectricPower": {
                        "type": "integer"
                      }
                    }
                  }
                },
                "physicalReference": {
                  "type": "string",
                  "description": "Unique identifier of the EVSE. QR code or EVSE ID for Roaming.\n"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "ac",
                    "dc"
                  ]
                },
                "networkId": {
                  "type": "string",
                  "description": "The identifier of the EVSE within the station. Protocol specific. For OCPP use consecutive numbers starting from 1\n"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "active",
                    "disabled",
                    "out of order"
                  ]
                },
                "tariffGroupId": {
                  "type": "integer",
                  "description": "The ID of the tariff group attached to the EVSE. If the EVSE is not roaming and tariffGroupId is not specified, the default (free) tariff will be assigned. For roaming EVSEs the Tariff Group can only be updated if the option for manual management of EVSEs is enabled for the roaming CPO.",
                  "nullable": true
                },
                "allowsReservation": {
                  "type": "boolean",
                  "description": "Indicates the evse capability of accepting reservations.\n"
                },
                "maxPowerKw": {
                  "type": "number",
                  "nullable": true,
                  "description": "The max power displayed for the EVSE in the app. This value is NOT enforced, it is just to be displayed in the app.\n"
                },
                "maxVoltage": {
                  "allOf": [
                    {
                      "type": "string",
                      "enum": [
                        "230",
                        "380",
                        "400",
                        "480",
                        "120",
                        "208",
                        "240",
                        "110-130",
                        "220-240",
                        "277"
                      ]
                    },
                    {
                      "description": "The maxVoltage of a CP can fluctuate. Hence, when creating a CP in the system the maxVoltage is given as a range. For OCPI purposes it maps as follows:\n * `220-240` = 230\n * `110-130` = 120\n * `400` = 400\n * `380` = 380\n"
                    }
                  ]
                },
                "maxAmperage": {
                  "type": "number",
                  "nullable": true
                },
                "phases": {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    "single_phase",
                    "three_phase"
                  ]
                },
                "phaseRotation": {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    "rst",
                    "rts",
                    "srt",
                    "str",
                    "trs",
                    "tsr"
                  ]
                },
                "midMeterCertificationEndYear": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The mid meter certification end year."
                },
                "externalId": {
                  "type": "string",
                  "nullable": true
                },
                "notes": {
                  "type": "array",
                  "readOnly": true,
                  "items": {
                    "type": "object",
                    "required": [
                      "id",
                      "summary",
                      "pinned",
                      "createdAt",
                      "updatedAt"
                    ],
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Unique identifier for the note",
                        "example": 123
                      },
                      "summary": {
                        "type": "string",
                        "maxLength": 255,
                        "description": "Short summary or title of the note",
                        "example": "Important maintenance note"
                      },
                      "details": {
                        "type": "string",
                        "maxLength": 2000,
                        "description": "Detailed content of the note. Omitted when empty.",
                        "example": "This charge point requires monthly inspection due to high usage."
                      },
                      "pinned": {
                        "type": "boolean",
                        "description": "Whether the note is pinned (appears first in listings)",
                        "example": true
                      },
                      "createdByAdminId": {
                        "type": "integer",
                        "description": "ID of the admin who created the note. Omitted when unavailable.",
                        "example": 1
                      },
                      "updatedByAdminId": {
                        "type": "integer",
                        "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                        "example": 2
                      },
                      "createdAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO-8601 timestamp when the note was created",
                        "example": "2025-12-16T10:00:00Z"
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO-8601 timestamp when the note was last updated",
                        "example": "2025-12-16T12:00:00Z"
                      }
                    }
                  },
                  "description": "If `include[]=notes` is provided with the request, the notes attached to this EVSE will be provided here. Notes are returned with pinned notes first, then ordered by creation date descending."
                },
                "hardwareStatus": {
                  "readOnly": true,
                  "type": "string",
                  "nullable": true,
                  "description": "EVSE hardware status:\n- **available**: EVSE is available for use\n- **preparing**: EVSE is preparing to charge (e.g., cable plugged in, awaiting authorization)\n- **charging**: EVSE is actively charging a vehicle\n- **suspendedEV**: Charging is suspended by the EV (vehicle-side pause)\n- **suspendedEVSE**: Charging is suspended by the EVSE (charger-side pause)\n- **finishing**: Charging session is finishing\n- **reserved**: EVSE is reserved\n- **unavailable**: EVSE is not available for use\n- **faulted**: EVSE is in a faulted state\n- **occupied**: EVSE is occupied\n",
                  "enum": [
                    "available",
                    "preparing",
                    "charging",
                    "suspendedEV",
                    "suspendedEVSE",
                    "finishing",
                    "reserved",
                    "unavailable",
                    "faulted",
                    "occupied"
                  ],
                  "example": "suspendedEV"
                }
              },
              "required": [
                "physicalReference",
                "type",
                "maxVoltage",
                "phases",
                "networkId",
                "status",
                "allowsReservation"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "evseReadDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "chargePointId": {
                "type": "integer",
                "readOnly": true
              },
              "chargingProfile": {
                "type": "object",
                "nullable": true,
                "readOnly": true,
                "allOf": [
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer"
                      },
                      "minChargingRate": {
                        "type": "number",
                        "nullable": true
                      },
                      "schedulePeriods": {
                        "type": "array",
                        "nullable": true,
                        "items": {
                          "type": "object",
                          "properties": {
                            "startPeriod": {
                              "type": "integer"
                            },
                            "limit": {
                              "type": "number",
                              "multipleOf": 0.1
                            },
                            "numberPhases": {
                              "type": "integer"
                            }
                          }
                        }
                      },
                      "scheduleStart": {
                        "type": "string",
                        "format": "datetime",
                        "nullable": true
                      },
                      "chargingRateUnit": {
                        "type": "string",
                        "enum": [
                          "A",
                          "W"
                        ]
                      },
                      "stackLevel": {
                        "type": "integer"
                      },
                      "chargingProfileKind": {
                        "type": "string",
                        "enum": [
                          "Absolute",
                          "Recurring",
                          "Relative"
                        ]
                      },
                      "recurrencyKind": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "daily",
                          "weekly"
                        ]
                      },
                      "chargingCompleteAt": {
                        "type": "string",
                        "format": "datetime",
                        "nullable": true
                      },
                      "purpose": {
                        "type": "string",
                        "enum": [
                          "ChargePointMaxProfile",
                          "TxDefaultProfile",
                          "TxProfile"
                        ]
                      },
                      "validTo": {
                        "type": "string",
                        "format": "datetime",
                        "nullable": true
                      },
                      "validFrom": {
                        "type": "string",
                        "format": "datetime",
                        "nullable": true
                      },
                      "duration": {
                        "type": "integer",
                        "nullable": true
                      }
                    }
                  }
                ]
              },
              "roaming": {
                "type": "object",
                "nullable": true,
                "readOnly": true,
                "properties": {
                  "evseId": {
                    "type": "string",
                    "description": "The EVSE Id that we receive through roaming.",
                    "nullable": true
                  },
                  "status": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "available",
                      "blocked",
                      "charging",
                      "inoperative",
                      "outoforder",
                      "planned",
                      "removed",
                      "reserved",
                      "unknown"
                    ],
                    "description": "* `available` - The EVSE/Connector is able to start a new charging session. * `blocked` - The EVSE/Connector is not accessible because of a physical barrier, i.e. a car. * `charging` - The EVSE/Connector is in use. * `inoperative` - The EVSE/Connector is not yet active or it is no longer available (deleted). * `outoforder` - The EVSE/Connector is currently out of order. * `planned` - The EVSE/Connector is planned, will be operating soon. * `removed` - The EVSE/Connector/charge point is discontinued/removed. * `reserved` - The EVSE/Connector is reserved for a particular EV driver and is unavailable for other drivers. * `unknown` -  No status information available. (Also used when offline)\n"
                  },
                  "tariffIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The tariffs IDS that we reveived from roaming (as were specified by the CPO).",
                    "nullable": true
                  }
                }
              },
              "connectors": {
                "nullable": true,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "type": {
                      "allOf": [
                        {
                          "type": "string",
                          "enum": [
                            "type1",
                            "type2",
                            "type3",
                            "chademo",
                            "ccs1",
                            "ccs2",
                            "catarc",
                            "schuko",
                            "nacs",
                            "cee16",
                            "cee32",
                            "j1772",
                            "inductive",
                            "nema-5-20",
                            "type-e-french",
                            "type-g-british",
                            "type-j-swiss",
                            "avcon",
                            "chaoji",
                            "nema-6-30",
                            "nema-6-50",
                            "mcs",
                            "unknown"
                          ],
                          "description": "Type of connector available on the EVSE:\n- **type1**: Type 1 connector (SAE J1772 AC)\n- **type2**: Type 2 connector (IEC 62196-2 AC)\n- **type3**: Type 3 connector (IEC 62196-2 AC)\n- **chademo**: CHAdeMO DC fast charging\n- **ccs1**: Combined Charging System 1 (CCS1/Combo 1)\n- **ccs2**: Combined Charging System 2 (CCS2/Combo 2)\n- **catarc**: CATARC connector (Chinese standard)\n- **schuko**: Standard European household socket\n- **nacs**: North American Charging Standard (Tesla)\n- **cee16**: CEE 16A industrial connector\n- **cee32**: CEE 32A industrial connector\n- **j1772**: SAE J1772 connector\n- **inductive**: Inductive/wireless charging\n- **nema-5-20**: Domestic M NEMA 5-20 Socket\n- **type-e-french**: French Type E socket\n- **type-g-british**: British Type G socket\n- **type-j-swiss**: Swiss Type J socket\n- **avcon**: AVCON connector (Australian standard)\n- **chaoji**: ChaoJi (CHAdeMO 3.0)\n- **nema-6-30**: NEMA 6-30\n- **nema-6-50**: NEMA 6-50\n- **mcs**: Megawatt Charging System (MCS)\n- **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows.\n"
                        },
                        {
                          "type": "string",
                          "nullable": true
                        }
                      ]
                    },
                    "format": {
                      "type": "string",
                      "enum": [
                        "socket",
                        "cable"
                      ],
                      "nullable": true
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "active",
                        "disabled"
                      ],
                      "nullable": true
                    },
                    "ocpiMaxVoltage": {
                      "type": "integer"
                    },
                    "ocpiMaxAmperage": {
                      "type": "integer"
                    },
                    "ocpiMaxElectricPower": {
                      "type": "integer"
                    }
                  }
                }
              },
              "physicalReference": {
                "type": "string",
                "description": "Unique identifier of the EVSE. QR code or EVSE ID for Roaming.\n"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ac",
                  "dc"
                ]
              },
              "networkId": {
                "type": "string",
                "description": "The identifier of the EVSE within the station. Protocol specific. For OCPP use consecutive numbers starting from 1\n"
              },
              "status": {
                "type": "string",
                "enum": [
                  "active",
                  "disabled",
                  "out of order"
                ]
              },
              "tariffGroupId": {
                "type": "integer",
                "description": "The ID of the tariff group attached to the EVSE. If the EVSE is not roaming and tariffGroupId is not specified, the default (free) tariff will be assigned. For roaming EVSEs the Tariff Group can only be updated if the option for manual management of EVSEs is enabled for the roaming CPO.",
                "nullable": true
              },
              "allowsReservation": {
                "type": "boolean",
                "description": "Indicates the evse capability of accepting reservations.\n"
              },
              "maxPowerKw": {
                "type": "number",
                "nullable": true,
                "description": "The max power displayed for the EVSE in the app. This value is NOT enforced, it is just to be displayed in the app.\n"
              },
              "maxVoltage": {
                "allOf": [
                  {
                    "type": "string",
                    "enum": [
                      "230",
                      "380",
                      "400",
                      "480",
                      "120",
                      "208",
                      "240",
                      "110-130",
                      "220-240",
                      "277"
                    ]
                  },
                  {
                    "description": "The maxVoltage of a CP can fluctuate. Hence, when creating a CP in the system the maxVoltage is given as a range. For OCPI purposes it maps as follows:\n * `220-240` = 230\n * `110-130` = 120\n * `400` = 400\n * `380` = 380\n"
                  }
                ]
              },
              "maxAmperage": {
                "type": "number",
                "nullable": true
              },
              "phases": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "single_phase",
                  "three_phase"
                ]
              },
              "phaseRotation": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "rst",
                  "rts",
                  "srt",
                  "str",
                  "trs",
                  "tsr"
                ]
              },
              "midMeterCertificationEndYear": {
                "type": "integer",
                "nullable": true,
                "description": "The mid meter certification end year."
              },
              "externalId": {
                "type": "string",
                "nullable": true
              },
              "notes": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "summary",
                    "pinned",
                    "createdAt",
                    "updatedAt"
                  ],
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Unique identifier for the note",
                      "example": 123
                    },
                    "summary": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "Short summary or title of the note",
                      "example": "Important maintenance note"
                    },
                    "details": {
                      "type": "string",
                      "maxLength": 2000,
                      "description": "Detailed content of the note. Omitted when empty.",
                      "example": "This charge point requires monthly inspection due to high usage."
                    },
                    "pinned": {
                      "type": "boolean",
                      "description": "Whether the note is pinned (appears first in listings)",
                      "example": true
                    },
                    "createdByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who created the note. Omitted when unavailable.",
                      "example": 1
                    },
                    "updatedByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                      "example": 2
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was created",
                      "example": "2025-12-16T10:00:00Z"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was last updated",
                      "example": "2025-12-16T12:00:00Z"
                    }
                  }
                },
                "description": "If `include[]=notes` is provided with the request, the notes attached to this EVSE will be provided here. Notes are returned with pinned notes first, then ordered by creation date descending."
              },
              "hardwareStatus": {
                "readOnly": true,
                "type": "string",
                "nullable": true,
                "description": "EVSE hardware status:\n- **available**: EVSE is available for use\n- **preparing**: EVSE is preparing to charge (e.g., cable plugged in, awaiting authorization)\n- **charging**: EVSE is actively charging a vehicle\n- **suspendedEV**: Charging is suspended by the EV (vehicle-side pause)\n- **suspendedEVSE**: Charging is suspended by the EVSE (charger-side pause)\n- **finishing**: Charging session is finishing\n- **reserved**: EVSE is reserved\n- **unavailable**: EVSE is not available for use\n- **faulted**: EVSE is in a faulted state\n- **occupied**: EVSE is occupied\n",
                "enum": [
                  "available",
                  "preparing",
                  "charging",
                  "suspendedEV",
                  "suspendedEVSE",
                  "finishing",
                  "reserved",
                  "unavailable",
                  "faulted",
                  "occupied"
                ],
                "example": "suspendedEV"
              }
            },
            "required": [
              "physicalReference",
              "type",
              "maxVoltage",
              "phases",
              "networkId",
              "status",
              "allowsReservation"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "evseUpdateDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "chargePointId": {
                "type": "integer",
                "readOnly": true
              },
              "chargingProfile": {
                "type": "object",
                "nullable": true,
                "readOnly": true,
                "allOf": [
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer"
                      },
                      "minChargingRate": {
                        "type": "number",
                        "nullable": true
                      },
                      "schedulePeriods": {
                        "type": "array",
                        "nullable": true,
                        "items": {
                          "type": "object",
                          "properties": {
                            "startPeriod": {
                              "type": "integer"
                            },
                            "limit": {
                              "type": "number",
                              "multipleOf": 0.1
                            },
                            "numberPhases": {
                              "type": "integer"
                            }
                          }
                        }
                      },
                      "scheduleStart": {
                        "type": "string",
                        "format": "datetime",
                        "nullable": true
                      },
                      "chargingRateUnit": {
                        "type": "string",
                        "enum": [
                          "A",
                          "W"
                        ]
                      },
                      "stackLevel": {
                        "type": "integer"
                      },
                      "chargingProfileKind": {
                        "type": "string",
                        "enum": [
                          "Absolute",
                          "Recurring",
                          "Relative"
                        ]
                      },
                      "recurrencyKind": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "daily",
                          "weekly"
                        ]
                      },
                      "chargingCompleteAt": {
                        "type": "string",
                        "format": "datetime",
                        "nullable": true
                      },
                      "purpose": {
                        "type": "string",
                        "enum": [
                          "ChargePointMaxProfile",
                          "TxDefaultProfile",
                          "TxProfile"
                        ]
                      },
                      "validTo": {
                        "type": "string",
                        "format": "datetime",
                        "nullable": true
                      },
                      "validFrom": {
                        "type": "string",
                        "format": "datetime",
                        "nullable": true
                      },
                      "duration": {
                        "type": "integer",
                        "nullable": true
                      }
                    }
                  }
                ]
              },
              "roaming": {
                "type": "object",
                "nullable": true,
                "readOnly": true,
                "properties": {
                  "evseId": {
                    "type": "string",
                    "description": "The EVSE Id that we receive through roaming.",
                    "nullable": true
                  },
                  "status": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "available",
                      "blocked",
                      "charging",
                      "inoperative",
                      "outoforder",
                      "planned",
                      "removed",
                      "reserved",
                      "unknown"
                    ],
                    "description": "* `available` - The EVSE/Connector is able to start a new charging session. * `blocked` - The EVSE/Connector is not accessible because of a physical barrier, i.e. a car. * `charging` - The EVSE/Connector is in use. * `inoperative` - The EVSE/Connector is not yet active or it is no longer available (deleted). * `outoforder` - The EVSE/Connector is currently out of order. * `planned` - The EVSE/Connector is planned, will be operating soon. * `removed` - The EVSE/Connector/charge point is discontinued/removed. * `reserved` - The EVSE/Connector is reserved for a particular EV driver and is unavailable for other drivers. * `unknown` -  No status information available. (Also used when offline)\n"
                  },
                  "tariffIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The tariffs IDS that we reveived from roaming (as were specified by the CPO).",
                    "nullable": true
                  }
                }
              },
              "connectors": {
                "nullable": true,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "type": {
                      "allOf": [
                        {
                          "type": "string",
                          "enum": [
                            "type1",
                            "type2",
                            "type3",
                            "chademo",
                            "ccs1",
                            "ccs2",
                            "catarc",
                            "schuko",
                            "nacs",
                            "cee16",
                            "cee32",
                            "j1772",
                            "inductive",
                            "nema-5-20",
                            "type-e-french",
                            "type-g-british",
                            "type-j-swiss",
                            "avcon",
                            "chaoji",
                            "nema-6-30",
                            "nema-6-50",
                            "mcs",
                            "unknown"
                          ],
                          "description": "Type of connector available on the EVSE:\n- **type1**: Type 1 connector (SAE J1772 AC)\n- **type2**: Type 2 connector (IEC 62196-2 AC)\n- **type3**: Type 3 connector (IEC 62196-2 AC)\n- **chademo**: CHAdeMO DC fast charging\n- **ccs1**: Combined Charging System 1 (CCS1/Combo 1)\n- **ccs2**: Combined Charging System 2 (CCS2/Combo 2)\n- **catarc**: CATARC connector (Chinese standard)\n- **schuko**: Standard European household socket\n- **nacs**: North American Charging Standard (Tesla)\n- **cee16**: CEE 16A industrial connector\n- **cee32**: CEE 32A industrial connector\n- **j1772**: SAE J1772 connector\n- **inductive**: Inductive/wireless charging\n- **nema-5-20**: Domestic M NEMA 5-20 Socket\n- **type-e-french**: French Type E socket\n- **type-g-british**: British Type G socket\n- **type-j-swiss**: Swiss Type J socket\n- **avcon**: AVCON connector (Australian standard)\n- **chaoji**: ChaoJi (CHAdeMO 3.0)\n- **nema-6-30**: NEMA 6-30\n- **nema-6-50**: NEMA 6-50\n- **mcs**: Megawatt Charging System (MCS)\n- **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows.\n"
                        },
                        {
                          "type": "string",
                          "nullable": true
                        }
                      ]
                    },
                    "format": {
                      "type": "string",
                      "enum": [
                        "socket",
                        "cable"
                      ],
                      "nullable": true
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "active",
                        "disabled"
                      ],
                      "nullable": true
                    },
                    "ocpiMaxVoltage": {
                      "type": "integer"
                    },
                    "ocpiMaxAmperage": {
                      "type": "integer"
                    },
                    "ocpiMaxElectricPower": {
                      "type": "integer"
                    }
                  }
                }
              },
              "physicalReference": {
                "type": "string",
                "description": "Unique identifier of the EVSE. QR code or EVSE ID for Roaming.\n"
              },
              "type": {
                "type": "string",
                "enum": [
                  "ac",
                  "dc"
                ]
              },
              "networkId": {
                "type": "string",
                "description": "The identifier of the EVSE within the station. Protocol specific. For OCPP use consecutive numbers starting from 1\n"
              },
              "status": {
                "type": "string",
                "enum": [
                  "active",
                  "disabled",
                  "out of order"
                ]
              },
              "tariffGroupId": {
                "type": "integer",
                "description": "The ID of the tariff group attached to the EVSE. If the EVSE is not roaming and tariffGroupId is not specified, the default (free) tariff will be assigned. For roaming EVSEs the Tariff Group can only be updated if the option for manual management of EVSEs is enabled for the roaming CPO.",
                "nullable": true
              },
              "allowsReservation": {
                "type": "boolean",
                "description": "Indicates the evse capability of accepting reservations.\n"
              },
              "maxPowerKw": {
                "type": "number",
                "nullable": true,
                "description": "The max power displayed for the EVSE in the app. This value is NOT enforced, it is just to be displayed in the app.\n"
              },
              "maxVoltage": {
                "allOf": [
                  {
                    "type": "string",
                    "enum": [
                      "230",
                      "380",
                      "400",
                      "480",
                      "120",
                      "208",
                      "240",
                      "110-130",
                      "220-240",
                      "277"
                    ]
                  },
                  {
                    "description": "The maxVoltage of a CP can fluctuate. Hence, when creating a CP in the system the maxVoltage is given as a range. For OCPI purposes it maps as follows:\n * `220-240` = 230\n * `110-130` = 120\n * `400` = 400\n * `380` = 380\n"
                  }
                ]
              },
              "maxAmperage": {
                "type": "number",
                "nullable": true
              },
              "phases": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "single_phase",
                  "three_phase"
                ]
              },
              "phaseRotation": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "rst",
                  "rts",
                  "srt",
                  "str",
                  "trs",
                  "tsr"
                ]
              },
              "midMeterCertificationEndYear": {
                "type": "integer",
                "nullable": true,
                "description": "The mid meter certification end year."
              },
              "externalId": {
                "type": "string",
                "nullable": true
              },
              "notes": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "summary",
                    "pinned",
                    "createdAt",
                    "updatedAt"
                  ],
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Unique identifier for the note",
                      "example": 123
                    },
                    "summary": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "Short summary or title of the note",
                      "example": "Important maintenance note"
                    },
                    "details": {
                      "type": "string",
                      "maxLength": 2000,
                      "description": "Detailed content of the note. Omitted when empty.",
                      "example": "This charge point requires monthly inspection due to high usage."
                    },
                    "pinned": {
                      "type": "boolean",
                      "description": "Whether the note is pinned (appears first in listings)",
                      "example": true
                    },
                    "createdByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who created the note. Omitted when unavailable.",
                      "example": 1
                    },
                    "updatedByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                      "example": 2
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was created",
                      "example": "2025-12-16T10:00:00Z"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was last updated",
                      "example": "2025-12-16T12:00:00Z"
                    }
                  }
                },
                "description": "If `include[]=notes` is provided with the request, the notes attached to this EVSE will be provided here. Notes are returned with pinned notes first, then ordered by creation date descending."
              },
              "hardwareStatus": {
                "readOnly": true,
                "type": "string",
                "nullable": true,
                "description": "EVSE hardware status:\n- **available**: EVSE is available for use\n- **preparing**: EVSE is preparing to charge (e.g., cable plugged in, awaiting authorization)\n- **charging**: EVSE is actively charging a vehicle\n- **suspendedEV**: Charging is suspended by the EV (vehicle-side pause)\n- **suspendedEVSE**: Charging is suspended by the EVSE (charger-side pause)\n- **finishing**: Charging session is finishing\n- **reserved**: EVSE is reserved\n- **unavailable**: EVSE is not available for use\n- **faulted**: EVSE is in a faulted state\n- **occupied**: EVSE is occupied\n",
                "enum": [
                  "available",
                  "preparing",
                  "charging",
                  "suspendedEV",
                  "suspendedEVSE",
                  "finishing",
                  "reserved",
                  "unavailable",
                  "faulted",
                  "occupied"
                ],
                "example": "suspendedEV"
              }
            },
            "required": [
              "physicalReference",
              "type",
              "maxVoltage",
              "phases",
              "networkId",
              "status",
              "allowsReservation"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "listEvseHardwareStatusLogs": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "status",
                "timestamp",
                "errorCode"
              ],
              "properties": {
                "status": {
                  "type": "string",
                  "description": "Hardware status at the time of this log entry"
                },
                "timestamp": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 timestamp when the entry was recorded",
                  "example": "2024-01-01T12:00:00Z"
                },
                "errorCode": {
                  "type": "string",
                  "description": "The type of error or \"NoError\"",
                  "example": "NoError"
                },
                "vendorId": {
                  "type": "string",
                  "description": "The ID of the vendor",
                  "example": "ABB"
                },
                "info": {
                  "type": "string",
                  "description": "Additional information about the status",
                  "example": "Connector successfully locked"
                },
                "vendorErrorCode": {
                  "type": "string",
                  "description": "Vendor-specific error code",
                  "example": "E001"
                },
                "errorCodeDescription": {
                  "type": "string",
                  "description": "Detailed description of the vendor error code",
                  "example": "Communication timeout with vehicle"
                },
                "errorCodeCustomerAction": {
                  "type": "string",
                  "description": "Recommended action for the customer",
                  "example": "Please ensure the charging cable is properly connected"
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getEvseLatestHardwareStatusLog": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "status",
              "timestamp",
              "errorCode"
            ],
            "properties": {
              "status": {
                "type": "string",
                "description": "Hardware status at the time of this log entry"
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 timestamp when the entry was recorded",
                "example": "2024-01-01T12:00:00Z"
              },
              "errorCode": {
                "type": "string",
                "description": "The type of error or \"NoError\"",
                "example": "NoError"
              },
              "vendorId": {
                "type": "string",
                "description": "The ID of the vendor",
                "example": "ABB"
              },
              "info": {
                "type": "string",
                "description": "Additional information about the status",
                "example": "Connector successfully locked"
              },
              "vendorErrorCode": {
                "type": "string",
                "description": "Vendor-specific error code",
                "example": "E001"
              },
              "errorCodeDescription": {
                "type": "string",
                "description": "Detailed description of the vendor error code",
                "example": "Communication timeout with vehicle"
              },
              "errorCodeCustomerAction": {
                "type": "string",
                "description": "Recommended action for the customer",
                "example": "Please ensure the charging cable is properly connected"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "evseNotesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "summary",
                "pinned",
                "createdAt",
                "updatedAt"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Unique identifier for the note",
                  "example": 123
                },
                "summary": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "Short summary or title of the note",
                  "example": "Important maintenance note"
                },
                "details": {
                  "type": "string",
                  "maxLength": 2000,
                  "description": "Detailed content of the note. Omitted when empty.",
                  "example": "This charge point requires monthly inspection due to high usage."
                },
                "pinned": {
                  "type": "boolean",
                  "description": "Whether the note is pinned (appears first in listings)",
                  "example": true
                },
                "createdByAdminId": {
                  "type": "integer",
                  "description": "ID of the admin who created the note. Omitted when unavailable.",
                  "example": 1
                },
                "updatedByAdminId": {
                  "type": "integer",
                  "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                  "example": 2
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO-8601 timestamp when the note was created",
                  "example": "2025-12-16T10:00:00Z"
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO-8601 timestamp when the note was last updated",
                  "example": "2025-12-16T12:00:00Z"
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "evseNoteCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "pinned",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier for the note",
                "example": 123
              },
              "summary": {
                "type": "string",
                "maxLength": 255,
                "description": "Short summary or title of the note",
                "example": "Important maintenance note"
              },
              "details": {
                "type": "string",
                "maxLength": 2000,
                "description": "Detailed content of the note. Omitted when empty.",
                "example": "This charge point requires monthly inspection due to high usage."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the note is pinned (appears first in listings)",
                "example": true
              },
              "createdByAdminId": {
                "type": "integer",
                "description": "ID of the admin who created the note. Omitted when unavailable.",
                "example": 1
              },
              "updatedByAdminId": {
                "type": "integer",
                "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                "example": 2
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was created",
                "example": "2025-12-16T10:00:00Z"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was last updated",
                "example": "2025-12-16T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "evseNoteShow": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "pinned",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier for the note",
                "example": 123
              },
              "summary": {
                "type": "string",
                "maxLength": 255,
                "description": "Short summary or title of the note",
                "example": "Important maintenance note"
              },
              "details": {
                "type": "string",
                "maxLength": 2000,
                "description": "Detailed content of the note. Omitted when empty.",
                "example": "This charge point requires monthly inspection due to high usage."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the note is pinned (appears first in listings)",
                "example": true
              },
              "createdByAdminId": {
                "type": "integer",
                "description": "ID of the admin who created the note. Omitted when unavailable.",
                "example": 1
              },
              "updatedByAdminId": {
                "type": "integer",
                "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                "example": 2
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was created",
                "example": "2025-12-16T10:00:00Z"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was last updated",
                "example": "2025-12-16T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "evseNoteDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "evseNoteUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "pinned",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier for the note",
                "example": 123
              },
              "summary": {
                "type": "string",
                "maxLength": 255,
                "description": "Short summary or title of the note",
                "example": "Important maintenance note"
              },
              "details": {
                "type": "string",
                "maxLength": 2000,
                "description": "Detailed content of the note. Omitted when empty.",
                "example": "This charge point requires monthly inspection due to high usage."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the note is pinned (appears first in listings)",
                "example": true
              },
              "createdByAdminId": {
                "type": "integer",
                "description": "ID of the admin who created the note. Omitted when unavailable.",
                "example": 1
              },
              "updatedByAdminId": {
                "type": "integer",
                "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                "example": 2
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was created",
                "example": "2025-12-16T10:00:00Z"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was last updated",
                "example": "2025-12-16T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "evsesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "chargePointId": {
                  "type": "integer",
                  "description": "The ID of the charge point."
                },
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The ID of the operator this resource belongs to. Null for roaming EVSEs.",
                  "example": 1
                },
                "physicalReference": {
                  "type": "string",
                  "description": "The identifier that is presented to the users, so they can identify the EVSE at the location."
                },
                "emi3Id": {
                  "type": "string",
                  "readOnly": true,
                  "example": "BE*FOO*E1234",
                  "description": "The full EVSE identifier in EMI3 format (e.g., `BE*FOO*E1234`).\nFor local EVSEs, this is constructed as `{CountryCode}*{PartyId}*E{PhysicalReference}`,\nwhere `CountryCode` and `PartyId` come from the operator's roaming configuration\nand `PhysicalReference` is the EVSE's PhysicalReference.\nFor roaming EVSEs, this is the identifier as received from the roaming CPO (same value as `roaming.evseId`).\nOmitted from the response when the operator does not have a roaming party ID and country code configured.\n"
                },
                "label": {
                  "type": "string",
                  "description": "The EVSE label will be exposed and visualized in the mobile application"
                },
                "currentType": {
                  "type": "string",
                  "enum": [
                    "ac",
                    "dc"
                  ],
                  "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
                },
                "networkId": {
                  "type": "string",
                  "description": "The OCPP evse identifier (should be consecutive numbers starting from 1)"
                },
                "status": {
                  "type": "string",
                  "description": "For roaming EVSEs the status can only be updated if the option for manual management of EVSEs is enabled for the roaming CPO.",
                  "enum": [
                    "enabled",
                    "disabled",
                    "out of order"
                  ]
                },
                "midMeterCertificationEndYear": {
                  "type": "integer",
                  "description": "The mid meter certification end year."
                },
                "tariffGroupId": {
                  "type": "integer",
                  "description": "The ID of the tariff group attached to the EVSE. If the EVSE is not roaming and tariffGroupId is not specified, the default (free) tariff will be assigned. For roaming EVSEs the Tariff Group can only be updated if the option for manual management of EVSEs is enabled for the roaming CPO."
                },
                "allowsReservation": {
                  "type": "boolean",
                  "description": "Manages whether reservations are allowed on this EVSE. Requires the Reservations to be activated for the system in order to enable for the EVSE."
                },
                "bookingEnabled": {
                  "type": "boolean",
                  "description": "Indicates if the EVSE can be booked."
                },
                "monitoringEnabled": {
                  "type": "boolean",
                  "description": "When disabled, this EVSE will not be listed or counted in the Faults & connectivity loss widget or lens. The charge point will still appear for charge point-level faults (network loss, hardware faulted). Defaults to true."
                },
                "powerOptions": {
                  "type": "object",
                  "properties": {
                    "maxOutputVoltage": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 1000,
                      "description": "Maximum output voltage for DC charging.\n"
                    },
                    "maxPower": {
                      "type": "integer",
                      "description": "Maximum power of the EVSE in W (Watts).",
                      "nullable": true
                    },
                    "maxVoltage": {
                      "type": "string",
                      "nullable": true,
                      "description": "The maximum intake (input) voltage of the EVSE. For the ac current type the output voltage is the same as this intake voltage, while for the dc current type the output voltage can differ and is exposed separately in maxOutputVoltage. The maxVoltage of a charge point can fluctuate. Hence, when creating a charge point in the system, the maxVoltage is given as a range. For OCPI purposes it maps as follows: 220-240 = 230 110-130 = 120 400 = 400 380 = 380\n",
                      "enum": [
                        "230",
                        "380",
                        "400",
                        "480",
                        "120",
                        "208",
                        "240",
                        "110-130",
                        "220-240",
                        "277"
                      ]
                    },
                    "maxAmperage": {
                      "type": "number",
                      "nullable": true
                    },
                    "phases": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "single_phase",
                        "three_phase",
                        "split_phase"
                      ]
                    },
                    "phaseRotation": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "RST",
                        "RTS",
                        "SRT",
                        "STR",
                        "TRS",
                        "TSR"
                      ],
                      "description": "`R` stands for `L1`, </br>\n`S` - for `L2` </br>\n`T` - for `L3` </br>\nSo for example `RST` = `L1`, `L2`, `L3`, while `RTS` = `L1`, `L3`, `L2`, etc. </br>\nWe are deriving the connected phase from this property for single phase if connectedPhase is not provided. Please don't rely on this property anymore as this functionality will be turned of in near future. Pass the correct connectedPhase instead. If you pass both properties (connectedPhase and phaseRotation) only connectedPhase will be taken into consideration for determining the phase.\n"
                    },
                    "connectedPhase": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "L1",
                        "L2",
                        "L3",
                        "L1_L2",
                        "L1_L3",
                        "L2_L3"
                      ],
                      "description": "Specifies the active line conductors used in the circuit.\n- `L1_L2` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L2_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L2` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L3` - Valid when `phases` = `single_phase` in electrical configuration `star`\n"
                    }
                  }
                },
                "externalId": {
                  "type": "string"
                },
                "capabilityOverrides": {
                  "type": "object",
                  "description": "Manual overrides for individual EVSE capabilities. Each property controls whether the capability is auto-detected, force enabled, or force disabled. Returned only when at least one capability override is set on the EVSE. Within the object, only capabilities with an active override are present; unset capabilities are omitted (treated as auto).",
                  "properties": {
                    "rfidReader": {
                      "type": "string",
                      "enum": [
                        "auto",
                        "force_enable",
                        "force_disable"
                      ],
                      "description": "Override value for an EVSE capability:\n- **auto**: Use automated detection logic (default)\n- **force_enable**: Always include this capability\n- **force_disable**: Never include this capability\n"
                    },
                    "creditCardPayable": {
                      "$ref": "#/paths/~1public-api~1resources~1evses~1v2.1/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "contactlessCardSupport": {
                      "$ref": "#/paths/~1public-api~1resources~1evses~1v2.1/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "debitCardPayable": {
                      "$ref": "#/paths/~1public-api~1resources~1evses~1v2.1/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "chipCardSupport": {
                      "$ref": "#/paths/~1public-api~1resources~1evses~1v2.1/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "pedTerminal": {
                      "$ref": "#/paths/~1public-api~1resources~1evses~1v2.1/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "remoteStartStop": {
                      "$ref": "#/paths/~1public-api~1resources~1evses~1v2.1/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "unlockCapable": {
                      "$ref": "#/paths/~1public-api~1resources~1evses~1v2.1/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "reservable": {
                      "$ref": "#/paths/~1public-api~1resources~1evses~1v2.1/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "chargingProfileCapable": {
                      "$ref": "#/paths/~1public-api~1resources~1evses~1v2.1/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "chargingPreferencesCapable": {
                      "$ref": "#/paths/~1public-api~1resources~1evses~1v2.1/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "startSessionConnectorRequired": {
                      "$ref": "#/paths/~1public-api~1resources~1evses~1v2.1/post/responses/201/content/application~1json/schema/properties/data"
                    },
                    "tokenGroupCapable": {
                      "$ref": "#/paths/~1public-api~1resources~1evses~1v2.1/post/responses/201/content/application~1json/schema/properties/data"
                    }
                  }
                },
                "roamingOperatorId": {
                  "description": "For roaming EVSE's, the ID of the roaming operator is provided.",
                  "type": "integer"
                },
                "roaming": {
                  "type": "object",
                  "properties": {
                    "evseId": {
                      "type": "string",
                      "description": "The EVSE identifier that is received through roaming. For example \"DE*ABC*E1234\".",
                      "nullable": true
                    },
                    "tariffIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "The tariff IDs that we receive from roaming (as specified by the CPO)."
                    },
                    "capabilities": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "The evse capabilities defined by the CPO."
                    },
                    "physicalReference": {
                      "type": "string",
                      "nullable": true,
                      "description": "A number/string printed on the outside of the EVSE for visual."
                    },
                    "status": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "available",
                        "blocked",
                        "charging",
                        "inoperative",
                        "outoforder",
                        "planned",
                        "removed",
                        "reserved",
                        "unknown"
                      ],
                      "description": "* `available` - The EVSE/Connector is able to start a new charging session. * `blocked` - The EVSE/Connector is not accessible because of a physical barrier, i.e. a car. * `charging` - The EVSE/Connector is in use. * `inoperative` - The EVSE/Connector is not yet active or it is no longer available (deleted). * `outoforder` - The EVSE/Connector is currently out of order. * `planned` - The EVSE/Connector is planned, will be operating soon. * `removed` - The EVSE/Connector/charge point is discontinued/removed. * `reserved` - The EVSE/Connector is reserved for a particular EV driver and is unavailable for other drivers. * `unknown` -  No status information available. (Also used when offline)\n"
                    }
                  },
                  "required": [
                    "evseId",
                    "tariffIds",
                    "capabilities",
                    "physicalReference",
                    "status"
                  ]
                },
                "hardwareStatus": {
                  "type": "string",
                  "enum": [
                    "available",
                    "preparing",
                    "charging",
                    "suspendedEV",
                    "suspendedEVSE",
                    "finishing",
                    "reserved",
                    "unavailable",
                    "faulted",
                    "occupied"
                  ],
                  "nullable": true,
                  "description": "Status reported by the charge point's evse:\n\n`available` - When a connector becomes available for a new user (Operative)\n\n`preparing` - When a connector becomes no longer available for a new user but there is no ongoing transaction (yet). Typically a connector is in preparing state when a user presents a tag, inserts a cable or a vehicle occupies the parking bay (Operative)\n\n`charging` - When the contactor of a connector closes, allowing the vehicle to charge (operative)\n\n`suspendedEVSE` - When the vehicle is connected to the evse but the evse is not offering energy to the EV, e.g. due to a smart charging restriction, local supply power constraints. (operative)\n\n`suspendedEV` - When the vehicle is connected to the evse and the evse is offering energy but the vehicle is not taking any energy. For example the driver has unlocked the car, and the car has paused charging. (operative)\n\n`finishing` - When a transaction has stopped at a connector, but the connector is not yet available for a new user, e.g. the cable has not been removed or the vehicle has not left the parking bay (operative)\n\n`reserved` - When a evse becomes reserved as a result of a *reserve now* command (operative)\n\n`unavailable` - When a evse becomes unavailable as the result of a *change availability* command or an event upon which the charge point transitions to unavailable at its discretion. Upon receipt of a change availability command, the status MAY change immediately or the change MAY be scheduled. When scheduled, the status notification shall be sent when the availability change becomes effective (inoperative)\n\n`faulted` - When a charge point or connector has reported an error and is not available for energy delivery (inoperative).\n\n`occupied` - If OCPP 2.0.1 is used, the EVSE hardware status is occupied when in session.\n\nWhen hardware status is null, that means that the charge point has not connected yet or has not reported a hardware status for this evse in the past.\n"
                },
                "lastHardwareStatusUpdateAt": {
                  "description": "ISO 8601 formatted date",
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                },
                "chargingProfile": {
                  "type": "object",
                  "nullable": true,
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "minChargingRate": {
                      "type": "number",
                      "nullable": true
                    },
                    "schedulePeriods": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "startPeriod": {
                            "type": "integer"
                          },
                          "limit": {
                            "type": "number",
                            "description": "A number with not more than one decimal (decimal places <= 1)"
                          },
                          "numberPhases": {
                            "type": "integer"
                          }
                        },
                        "required": [
                          "startPeriod",
                          "limit"
                        ]
                      }
                    },
                    "scheduleStart": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true
                    },
                    "chargingRateUnit": {
                      "type": "string",
                      "enum": [
                        "A",
                        "W"
                      ]
                    },
                    "stackLevel": {
                      "type": "integer"
                    },
                    "chargingProfileKind": {
                      "type": "string",
                      "enum": [
                        "Absolute",
                        "Recurring",
                        "Relative"
                      ]
                    },
                    "recurrencyKind": {
                      "type": "string",
                      "enum": [
                        "Daily",
                        "Weekly"
                      ],
                      "nullable": true
                    },
                    "chargingCompleteAt": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true
                    },
                    "purpose": {
                      "type": "string",
                      "enum": [
                        "ChargePointMaxProfile",
                        "TxDefaultProfile",
                        "TxProfile"
                      ]
                    },
                    "validTo": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true
                    },
                    "validFrom": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true
                    },
                    "duration": {
                      "type": "integer",
                      "nullable": true
                    }
                  },
                  "required": [
                    "id",
                    "minChargingRate",
                    "schedulePeriods",
                    "scheduleStart",
                    "chargingRateUnit",
                    "stackLevel",
                    "chargingProfileKind",
                    "recurrencyKind",
                    "chargingCompleteAt",
                    "purpose",
                    "validTo",
                    "validFrom",
                    "duration"
                  ]
                },
                "connectors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "readOnly": true
                      },
                      "networkId": {
                        "type": "string",
                        "readOnly": true,
                        "description": "The OCPP connector identifier within the EVSE."
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "type1",
                          "type2",
                          "type3",
                          "chademo",
                          "ccs1",
                          "ccs2",
                          "schuko",
                          "nacs",
                          "cee16",
                          "cee32",
                          "j1772",
                          "inductive",
                          "nema-5-20",
                          "type-e-french",
                          "type-g-british",
                          "type-j-swiss",
                          "avcon",
                          "gb-t-ac",
                          "gb-t-dc",
                          "chaoji",
                          "nema-6-30",
                          "nema-6-50",
                          "mcs",
                          "unknown"
                        ],
                        "description": "Type of connector available on the EVSE:\n- **type1**: Type 1 connector (SAE J1772 AC)\n- **type2**: Type 2 connector (IEC 62196-2 AC)\n- **type3**: Type 3 connector (IEC 62196-2 AC)\n- **chademo**: CHAdeMO DC fast charging\n- **ccs1**: Combined Charging System 1 (CCS1/Combo 1)\n- **ccs2**: Combined Charging System 2 (CCS2/Combo 2)\n- **schuko**: Standard European household socket\n- **nacs**: North American Charging Standard (Tesla)\n- **cee16**: CEE 16A industrial connector\n- **cee32**: CEE 32A industrial connector\n- **j1772**: SAE J1772 connector\n- **inductive**: Inductive/wireless charging\n- **nema-5-20**: Domestic M NEMA 5-20 Socket\n- **type-e-french**: French Type E socket\n- **type-g-british**: British Type G socket\n- **type-j-swiss**: Swiss Type J socket\n- **avcon**: AVCON connector (Australian standard)\n- **gb-t-ac**: GB/T AC connector (Chinese standard)\n- **gb-t-dc**: GB/T DC connector (Chinese standard)\n- **chaoji**: ChaoJi (CHAdeMO 3.0)\n- **nema-6-30**: NEMA 6-30\n- **nema-6-50**: NEMA 6-50\n- **mcs**: Megawatt Charging System (MCS)\n- **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows.\n"
                      },
                      "format": {
                        "type": "string",
                        "enum": [
                          "socket",
                          "cable"
                        ]
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "enabled",
                          "disabled"
                        ]
                      },
                      "ocpiMaxVoltage": {
                        "type": "integer",
                        "description": "Maximum voltage of the connector in volts, as received from a roaming partner via OCPI. Only present for roaming connectors."
                      },
                      "ocpiMaxAmperage": {
                        "type": "integer",
                        "description": "Maximum amperage of the connector in amps, as received from a roaming partner via OCPI. Only present for roaming connectors."
                      },
                      "ocpiMaxElectricPower": {
                        "type": "integer",
                        "description": "Maximum electric power of the connector in watts, as received from a roaming partner via OCPI. Only present for roaming connectors."
                      },
                      "externalId": {
                        "description": "An optional external identifier for integration purposes",
                        "type": "string",
                        "maxLength": 255
                      }
                    },
                    "required": [
                      "id",
                      "networkId",
                      "type"
                    ]
                  }
                },
                "externalAppData": {
                  "description": "Used to hold any external application data related to the EVSE.",
                  "type": "object",
                  "nullable": true,
                  "additionalProperties": true
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "chargePointId",
                "id",
                "operatorId",
                "physicalReference",
                "currentType",
                "networkId",
                "status",
                "hardwareStatus",
                "roamingOperatorId",
                "createdAt",
                "lastUpdatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "evseCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "chargePointId": {
                "type": "integer",
                "description": "The ID of the charge point."
              },
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the operator this resource belongs to. Null for roaming EVSEs.",
                "example": 1
              },
              "physicalReference": {
                "type": "string",
                "description": "The identifier that is presented to the users, so they can identify the EVSE at the location."
              },
              "emi3Id": {
                "type": "string",
                "readOnly": true,
                "example": "BE*FOO*E1234",
                "description": "The full EVSE identifier in EMI3 format (e.g., `BE*FOO*E1234`).\nFor local EVSEs, this is constructed as `{CountryCode}*{PartyId}*E{PhysicalReference}`,\nwhere `CountryCode` and `PartyId` come from the operator's roaming configuration\nand `PhysicalReference` is the EVSE's PhysicalReference.\nFor roaming EVSEs, this is the identifier as received from the roaming CPO (same value as `roaming.evseId`).\nOmitted from the response when the operator does not have a roaming party ID and country code configured.\n"
              },
              "label": {
                "type": "string",
                "description": "The EVSE label will be exposed and visualized in the mobile application"
              },
              "currentType": {
                "type": "string",
                "enum": [
                  "ac",
                  "dc"
                ],
                "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
              },
              "networkId": {
                "type": "string",
                "description": "The OCPP evse identifier (should be consecutive numbers starting from 1)"
              },
              "status": {
                "type": "string",
                "description": "For roaming EVSEs the status can only be updated if the option for manual management of EVSEs is enabled for the roaming CPO.",
                "enum": [
                  "enabled",
                  "disabled",
                  "out of order"
                ]
              },
              "midMeterCertificationEndYear": {
                "type": "integer",
                "description": "The mid meter certification end year."
              },
              "tariffGroupId": {
                "type": "integer",
                "description": "The ID of the tariff group attached to the EVSE. If the EVSE is not roaming and tariffGroupId is not specified, the default (free) tariff will be assigned. For roaming EVSEs the Tariff Group can only be updated if the option for manual management of EVSEs is enabled for the roaming CPO."
              },
              "allowsReservation": {
                "type": "boolean",
                "description": "Manages whether reservations are allowed on this EVSE. Requires the Reservations to be activated for the system in order to enable for the EVSE."
              },
              "bookingEnabled": {
                "type": "boolean",
                "description": "Indicates if the EVSE can be booked."
              },
              "monitoringEnabled": {
                "type": "boolean",
                "description": "When disabled, this EVSE will not be listed or counted in the Faults & connectivity loss widget or lens. The charge point will still appear for charge point-level faults (network loss, hardware faulted). Defaults to true."
              },
              "powerOptions": {
                "type": "object",
                "properties": {
                  "maxOutputVoltage": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000,
                    "description": "Maximum output voltage for DC charging.\n"
                  },
                  "maxPower": {
                    "type": "integer",
                    "description": "Maximum power of the EVSE in W (Watts).",
                    "nullable": true
                  },
                  "maxVoltage": {
                    "type": "string",
                    "nullable": true,
                    "description": "The maximum intake (input) voltage of the EVSE. For the ac current type the output voltage is the same as this intake voltage, while for the dc current type the output voltage can differ and is exposed separately in maxOutputVoltage. The maxVoltage of a charge point can fluctuate. Hence, when creating a charge point in the system, the maxVoltage is given as a range. For OCPI purposes it maps as follows: 220-240 = 230 110-130 = 120 400 = 400 380 = 380\n",
                    "enum": [
                      "230",
                      "380",
                      "400",
                      "480",
                      "120",
                      "208",
                      "240",
                      "110-130",
                      "220-240",
                      "277"
                    ]
                  },
                  "maxAmperage": {
                    "type": "number",
                    "nullable": true
                  },
                  "phases": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "single_phase",
                      "three_phase",
                      "split_phase"
                    ]
                  },
                  "phaseRotation": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "RST",
                      "RTS",
                      "SRT",
                      "STR",
                      "TRS",
                      "TSR"
                    ],
                    "description": "`R` stands for `L1`, </br>\n`S` - for `L2` </br>\n`T` - for `L3` </br>\nSo for example `RST` = `L1`, `L2`, `L3`, while `RTS` = `L1`, `L3`, `L2`, etc. </br>\nWe are deriving the connected phase from this property for single phase if connectedPhase is not provided. Please don't rely on this property anymore as this functionality will be turned of in near future. Pass the correct connectedPhase instead. If you pass both properties (connectedPhase and phaseRotation) only connectedPhase will be taken into consideration for determining the phase.\n"
                  },
                  "connectedPhase": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "L1",
                      "L2",
                      "L3",
                      "L1_L2",
                      "L1_L3",
                      "L2_L3"
                    ],
                    "description": "Specifies the active line conductors used in the circuit.\n- `L1_L2` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L2_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L2` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L3` - Valid when `phases` = `single_phase` in electrical configuration `star`\n"
                  }
                }
              },
              "externalId": {
                "type": "string"
              },
              "capabilityOverrides": {
                "type": "object",
                "description": "Manual overrides for individual EVSE capabilities. Each property controls whether the capability is auto-detected, force enabled, or force disabled. Returned only when at least one capability override is set on the EVSE. Within the object, only capabilities with an active override are present; unset capabilities are omitted (treated as auto).",
                "properties": {
                  "rfidReader": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "force_enable",
                      "force_disable"
                    ],
                    "description": "Override value for an EVSE capability:\n- **auto**: Use automated detection logic (default)\n- **force_enable**: Always include this capability\n- **force_disable**: Never include this capability\n"
                  },
                  "creditCardPayable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "contactlessCardSupport": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "debitCardPayable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "chipCardSupport": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "pedTerminal": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "remoteStartStop": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "unlockCapable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "reservable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "chargingProfileCapable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "chargingPreferencesCapable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "startSessionConnectorRequired": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "tokenGroupCapable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  }
                }
              },
              "roamingOperatorId": {
                "description": "For roaming EVSE's, the ID of the roaming operator is provided.",
                "type": "integer"
              },
              "roaming": {
                "type": "object",
                "properties": {
                  "evseId": {
                    "type": "string",
                    "description": "The EVSE identifier that is received through roaming. For example \"DE*ABC*E1234\".",
                    "nullable": true
                  },
                  "tariffIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The tariff IDs that we receive from roaming (as specified by the CPO)."
                  },
                  "capabilities": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The evse capabilities defined by the CPO."
                  },
                  "physicalReference": {
                    "type": "string",
                    "nullable": true,
                    "description": "A number/string printed on the outside of the EVSE for visual."
                  },
                  "status": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "available",
                      "blocked",
                      "charging",
                      "inoperative",
                      "outoforder",
                      "planned",
                      "removed",
                      "reserved",
                      "unknown"
                    ],
                    "description": "* `available` - The EVSE/Connector is able to start a new charging session. * `blocked` - The EVSE/Connector is not accessible because of a physical barrier, i.e. a car. * `charging` - The EVSE/Connector is in use. * `inoperative` - The EVSE/Connector is not yet active or it is no longer available (deleted). * `outoforder` - The EVSE/Connector is currently out of order. * `planned` - The EVSE/Connector is planned, will be operating soon. * `removed` - The EVSE/Connector/charge point is discontinued/removed. * `reserved` - The EVSE/Connector is reserved for a particular EV driver and is unavailable for other drivers. * `unknown` -  No status information available. (Also used when offline)\n"
                  }
                },
                "required": [
                  "evseId",
                  "tariffIds",
                  "capabilities",
                  "physicalReference",
                  "status"
                ]
              },
              "hardwareStatus": {
                "type": "string",
                "enum": [
                  "available",
                  "preparing",
                  "charging",
                  "suspendedEV",
                  "suspendedEVSE",
                  "finishing",
                  "reserved",
                  "unavailable",
                  "faulted",
                  "occupied"
                ],
                "nullable": true,
                "description": "Status reported by the charge point's evse:\n\n`available` - When a connector becomes available for a new user (Operative)\n\n`preparing` - When a connector becomes no longer available for a new user but there is no ongoing transaction (yet). Typically a connector is in preparing state when a user presents a tag, inserts a cable or a vehicle occupies the parking bay (Operative)\n\n`charging` - When the contactor of a connector closes, allowing the vehicle to charge (operative)\n\n`suspendedEVSE` - When the vehicle is connected to the evse but the evse is not offering energy to the EV, e.g. due to a smart charging restriction, local supply power constraints. (operative)\n\n`suspendedEV` - When the vehicle is connected to the evse and the evse is offering energy but the vehicle is not taking any energy. For example the driver has unlocked the car, and the car has paused charging. (operative)\n\n`finishing` - When a transaction has stopped at a connector, but the connector is not yet available for a new user, e.g. the cable has not been removed or the vehicle has not left the parking bay (operative)\n\n`reserved` - When a evse becomes reserved as a result of a *reserve now* command (operative)\n\n`unavailable` - When a evse becomes unavailable as the result of a *change availability* command or an event upon which the charge point transitions to unavailable at its discretion. Upon receipt of a change availability command, the status MAY change immediately or the change MAY be scheduled. When scheduled, the status notification shall be sent when the availability change becomes effective (inoperative)\n\n`faulted` - When a charge point or connector has reported an error and is not available for energy delivery (inoperative).\n\n`occupied` - If OCPP 2.0.1 is used, the EVSE hardware status is occupied when in session.\n\nWhen hardware status is null, that means that the charge point has not connected yet or has not reported a hardware status for this evse in the past.\n"
              },
              "lastHardwareStatusUpdateAt": {
                "description": "ISO 8601 formatted date",
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "chargingProfile": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "minChargingRate": {
                    "type": "number",
                    "nullable": true
                  },
                  "schedulePeriods": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "startPeriod": {
                          "type": "integer"
                        },
                        "limit": {
                          "type": "number",
                          "description": "A number with not more than one decimal (decimal places <= 1)"
                        },
                        "numberPhases": {
                          "type": "integer"
                        }
                      },
                      "required": [
                        "startPeriod",
                        "limit"
                      ]
                    }
                  },
                  "scheduleStart": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "chargingRateUnit": {
                    "type": "string",
                    "enum": [
                      "A",
                      "W"
                    ]
                  },
                  "stackLevel": {
                    "type": "integer"
                  },
                  "chargingProfileKind": {
                    "type": "string",
                    "enum": [
                      "Absolute",
                      "Recurring",
                      "Relative"
                    ]
                  },
                  "recurrencyKind": {
                    "type": "string",
                    "enum": [
                      "Daily",
                      "Weekly"
                    ],
                    "nullable": true
                  },
                  "chargingCompleteAt": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "purpose": {
                    "type": "string",
                    "enum": [
                      "ChargePointMaxProfile",
                      "TxDefaultProfile",
                      "TxProfile"
                    ]
                  },
                  "validTo": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "validFrom": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "duration": {
                    "type": "integer",
                    "nullable": true
                  }
                },
                "required": [
                  "id",
                  "minChargingRate",
                  "schedulePeriods",
                  "scheduleStart",
                  "chargingRateUnit",
                  "stackLevel",
                  "chargingProfileKind",
                  "recurrencyKind",
                  "chargingCompleteAt",
                  "purpose",
                  "validTo",
                  "validFrom",
                  "duration"
                ]
              },
              "connectors": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "networkId": {
                      "type": "string",
                      "readOnly": true,
                      "description": "The OCPP connector identifier within the EVSE."
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "type1",
                        "type2",
                        "type3",
                        "chademo",
                        "ccs1",
                        "ccs2",
                        "schuko",
                        "nacs",
                        "cee16",
                        "cee32",
                        "j1772",
                        "inductive",
                        "nema-5-20",
                        "type-e-french",
                        "type-g-british",
                        "type-j-swiss",
                        "avcon",
                        "gb-t-ac",
                        "gb-t-dc",
                        "chaoji",
                        "nema-6-30",
                        "nema-6-50",
                        "mcs",
                        "unknown"
                      ],
                      "description": "Type of connector available on the EVSE:\n- **type1**: Type 1 connector (SAE J1772 AC)\n- **type2**: Type 2 connector (IEC 62196-2 AC)\n- **type3**: Type 3 connector (IEC 62196-2 AC)\n- **chademo**: CHAdeMO DC fast charging\n- **ccs1**: Combined Charging System 1 (CCS1/Combo 1)\n- **ccs2**: Combined Charging System 2 (CCS2/Combo 2)\n- **schuko**: Standard European household socket\n- **nacs**: North American Charging Standard (Tesla)\n- **cee16**: CEE 16A industrial connector\n- **cee32**: CEE 32A industrial connector\n- **j1772**: SAE J1772 connector\n- **inductive**: Inductive/wireless charging\n- **nema-5-20**: Domestic M NEMA 5-20 Socket\n- **type-e-french**: French Type E socket\n- **type-g-british**: British Type G socket\n- **type-j-swiss**: Swiss Type J socket\n- **avcon**: AVCON connector (Australian standard)\n- **gb-t-ac**: GB/T AC connector (Chinese standard)\n- **gb-t-dc**: GB/T DC connector (Chinese standard)\n- **chaoji**: ChaoJi (CHAdeMO 3.0)\n- **nema-6-30**: NEMA 6-30\n- **nema-6-50**: NEMA 6-50\n- **mcs**: Megawatt Charging System (MCS)\n- **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows.\n"
                    },
                    "format": {
                      "type": "string",
                      "enum": [
                        "socket",
                        "cable"
                      ]
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "enabled",
                        "disabled"
                      ]
                    },
                    "ocpiMaxVoltage": {
                      "type": "integer",
                      "description": "Maximum voltage of the connector in volts, as received from a roaming partner via OCPI. Only present for roaming connectors."
                    },
                    "ocpiMaxAmperage": {
                      "type": "integer",
                      "description": "Maximum amperage of the connector in amps, as received from a roaming partner via OCPI. Only present for roaming connectors."
                    },
                    "ocpiMaxElectricPower": {
                      "type": "integer",
                      "description": "Maximum electric power of the connector in watts, as received from a roaming partner via OCPI. Only present for roaming connectors."
                    },
                    "externalId": {
                      "description": "An optional external identifier for integration purposes",
                      "type": "string",
                      "maxLength": 255
                    }
                  },
                  "required": [
                    "id",
                    "networkId",
                    "type"
                  ]
                }
              },
              "externalAppData": {
                "description": "Used to hold any external application data related to the EVSE.",
                "type": "object",
                "nullable": true,
                "additionalProperties": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "chargePointId",
              "id",
              "operatorId",
              "physicalReference",
              "currentType",
              "networkId",
              "status",
              "hardwareStatus",
              "roamingOperatorId",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "evseRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "chargePointId": {
                "type": "integer",
                "description": "The ID of the charge point."
              },
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the operator this resource belongs to. Null for roaming EVSEs.",
                "example": 1
              },
              "physicalReference": {
                "type": "string",
                "description": "The identifier that is presented to the users, so they can identify the EVSE at the location."
              },
              "emi3Id": {
                "type": "string",
                "readOnly": true,
                "example": "BE*FOO*E1234",
                "description": "The full EVSE identifier in EMI3 format (e.g., `BE*FOO*E1234`).\nFor local EVSEs, this is constructed as `{CountryCode}*{PartyId}*E{PhysicalReference}`,\nwhere `CountryCode` and `PartyId` come from the operator's roaming configuration\nand `PhysicalReference` is the EVSE's PhysicalReference.\nFor roaming EVSEs, this is the identifier as received from the roaming CPO (same value as `roaming.evseId`).\nOmitted from the response when the operator does not have a roaming party ID and country code configured.\n"
              },
              "label": {
                "type": "string",
                "description": "The EVSE label will be exposed and visualized in the mobile application"
              },
              "currentType": {
                "type": "string",
                "enum": [
                  "ac",
                  "dc"
                ],
                "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
              },
              "networkId": {
                "type": "string",
                "description": "The OCPP evse identifier (should be consecutive numbers starting from 1)"
              },
              "status": {
                "type": "string",
                "description": "For roaming EVSEs the status can only be updated if the option for manual management of EVSEs is enabled for the roaming CPO.",
                "enum": [
                  "enabled",
                  "disabled",
                  "out of order"
                ]
              },
              "midMeterCertificationEndYear": {
                "type": "integer",
                "description": "The mid meter certification end year."
              },
              "tariffGroupId": {
                "type": "integer",
                "description": "The ID of the tariff group attached to the EVSE. If the EVSE is not roaming and tariffGroupId is not specified, the default (free) tariff will be assigned. For roaming EVSEs the Tariff Group can only be updated if the option for manual management of EVSEs is enabled for the roaming CPO."
              },
              "allowsReservation": {
                "type": "boolean",
                "description": "Manages whether reservations are allowed on this EVSE. Requires the Reservations to be activated for the system in order to enable for the EVSE."
              },
              "bookingEnabled": {
                "type": "boolean",
                "description": "Indicates if the EVSE can be booked."
              },
              "monitoringEnabled": {
                "type": "boolean",
                "description": "When disabled, this EVSE will not be listed or counted in the Faults & connectivity loss widget or lens. The charge point will still appear for charge point-level faults (network loss, hardware faulted). Defaults to true."
              },
              "powerOptions": {
                "type": "object",
                "properties": {
                  "maxOutputVoltage": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000,
                    "description": "Maximum output voltage for DC charging.\n"
                  },
                  "maxPower": {
                    "type": "integer",
                    "description": "Maximum power of the EVSE in W (Watts).",
                    "nullable": true
                  },
                  "maxVoltage": {
                    "type": "string",
                    "nullable": true,
                    "description": "The maximum intake (input) voltage of the EVSE. For the ac current type the output voltage is the same as this intake voltage, while for the dc current type the output voltage can differ and is exposed separately in maxOutputVoltage. The maxVoltage of a charge point can fluctuate. Hence, when creating a charge point in the system, the maxVoltage is given as a range. For OCPI purposes it maps as follows: 220-240 = 230 110-130 = 120 400 = 400 380 = 380\n",
                    "enum": [
                      "230",
                      "380",
                      "400",
                      "480",
                      "120",
                      "208",
                      "240",
                      "110-130",
                      "220-240",
                      "277"
                    ]
                  },
                  "maxAmperage": {
                    "type": "number",
                    "nullable": true
                  },
                  "phases": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "single_phase",
                      "three_phase",
                      "split_phase"
                    ]
                  },
                  "phaseRotation": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "RST",
                      "RTS",
                      "SRT",
                      "STR",
                      "TRS",
                      "TSR"
                    ],
                    "description": "`R` stands for `L1`, </br>\n`S` - for `L2` </br>\n`T` - for `L3` </br>\nSo for example `RST` = `L1`, `L2`, `L3`, while `RTS` = `L1`, `L3`, `L2`, etc. </br>\nWe are deriving the connected phase from this property for single phase if connectedPhase is not provided. Please don't rely on this property anymore as this functionality will be turned of in near future. Pass the correct connectedPhase instead. If you pass both properties (connectedPhase and phaseRotation) only connectedPhase will be taken into consideration for determining the phase.\n"
                  },
                  "connectedPhase": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "L1",
                      "L2",
                      "L3",
                      "L1_L2",
                      "L1_L3",
                      "L2_L3"
                    ],
                    "description": "Specifies the active line conductors used in the circuit.\n- `L1_L2` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L2_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L2` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L3` - Valid when `phases` = `single_phase` in electrical configuration `star`\n"
                  }
                }
              },
              "externalId": {
                "type": "string"
              },
              "capabilityOverrides": {
                "type": "object",
                "description": "Manual overrides for individual EVSE capabilities. Each property controls whether the capability is auto-detected, force enabled, or force disabled. Returned only when at least one capability override is set on the EVSE. Within the object, only capabilities with an active override are present; unset capabilities are omitted (treated as auto).",
                "properties": {
                  "rfidReader": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "force_enable",
                      "force_disable"
                    ],
                    "description": "Override value for an EVSE capability:\n- **auto**: Use automated detection logic (default)\n- **force_enable**: Always include this capability\n- **force_disable**: Never include this capability\n"
                  },
                  "creditCardPayable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "contactlessCardSupport": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "debitCardPayable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "chipCardSupport": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "pedTerminal": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "remoteStartStop": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "unlockCapable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "reservable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "chargingProfileCapable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "chargingPreferencesCapable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "startSessionConnectorRequired": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "tokenGroupCapable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  }
                }
              },
              "roamingOperatorId": {
                "description": "For roaming EVSE's, the ID of the roaming operator is provided.",
                "type": "integer"
              },
              "roaming": {
                "type": "object",
                "properties": {
                  "evseId": {
                    "type": "string",
                    "description": "The EVSE identifier that is received through roaming. For example \"DE*ABC*E1234\".",
                    "nullable": true
                  },
                  "tariffIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The tariff IDs that we receive from roaming (as specified by the CPO)."
                  },
                  "capabilities": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The evse capabilities defined by the CPO."
                  },
                  "physicalReference": {
                    "type": "string",
                    "nullable": true,
                    "description": "A number/string printed on the outside of the EVSE for visual."
                  },
                  "status": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "available",
                      "blocked",
                      "charging",
                      "inoperative",
                      "outoforder",
                      "planned",
                      "removed",
                      "reserved",
                      "unknown"
                    ],
                    "description": "* `available` - The EVSE/Connector is able to start a new charging session. * `blocked` - The EVSE/Connector is not accessible because of a physical barrier, i.e. a car. * `charging` - The EVSE/Connector is in use. * `inoperative` - The EVSE/Connector is not yet active or it is no longer available (deleted). * `outoforder` - The EVSE/Connector is currently out of order. * `planned` - The EVSE/Connector is planned, will be operating soon. * `removed` - The EVSE/Connector/charge point is discontinued/removed. * `reserved` - The EVSE/Connector is reserved for a particular EV driver and is unavailable for other drivers. * `unknown` -  No status information available. (Also used when offline)\n"
                  }
                },
                "required": [
                  "evseId",
                  "tariffIds",
                  "capabilities",
                  "physicalReference",
                  "status"
                ]
              },
              "hardwareStatus": {
                "type": "string",
                "enum": [
                  "available",
                  "preparing",
                  "charging",
                  "suspendedEV",
                  "suspendedEVSE",
                  "finishing",
                  "reserved",
                  "unavailable",
                  "faulted",
                  "occupied"
                ],
                "nullable": true,
                "description": "Status reported by the charge point's evse:\n\n`available` - When a connector becomes available for a new user (Operative)\n\n`preparing` - When a connector becomes no longer available for a new user but there is no ongoing transaction (yet). Typically a connector is in preparing state when a user presents a tag, inserts a cable or a vehicle occupies the parking bay (Operative)\n\n`charging` - When the contactor of a connector closes, allowing the vehicle to charge (operative)\n\n`suspendedEVSE` - When the vehicle is connected to the evse but the evse is not offering energy to the EV, e.g. due to a smart charging restriction, local supply power constraints. (operative)\n\n`suspendedEV` - When the vehicle is connected to the evse and the evse is offering energy but the vehicle is not taking any energy. For example the driver has unlocked the car, and the car has paused charging. (operative)\n\n`finishing` - When a transaction has stopped at a connector, but the connector is not yet available for a new user, e.g. the cable has not been removed or the vehicle has not left the parking bay (operative)\n\n`reserved` - When a evse becomes reserved as a result of a *reserve now* command (operative)\n\n`unavailable` - When a evse becomes unavailable as the result of a *change availability* command or an event upon which the charge point transitions to unavailable at its discretion. Upon receipt of a change availability command, the status MAY change immediately or the change MAY be scheduled. When scheduled, the status notification shall be sent when the availability change becomes effective (inoperative)\n\n`faulted` - When a charge point or connector has reported an error and is not available for energy delivery (inoperative).\n\n`occupied` - If OCPP 2.0.1 is used, the EVSE hardware status is occupied when in session.\n\nWhen hardware status is null, that means that the charge point has not connected yet or has not reported a hardware status for this evse in the past.\n"
              },
              "lastHardwareStatusUpdateAt": {
                "description": "ISO 8601 formatted date",
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "chargingProfile": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "minChargingRate": {
                    "type": "number",
                    "nullable": true
                  },
                  "schedulePeriods": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "startPeriod": {
                          "type": "integer"
                        },
                        "limit": {
                          "type": "number",
                          "description": "A number with not more than one decimal (decimal places <= 1)"
                        },
                        "numberPhases": {
                          "type": "integer"
                        }
                      },
                      "required": [
                        "startPeriod",
                        "limit"
                      ]
                    }
                  },
                  "scheduleStart": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "chargingRateUnit": {
                    "type": "string",
                    "enum": [
                      "A",
                      "W"
                    ]
                  },
                  "stackLevel": {
                    "type": "integer"
                  },
                  "chargingProfileKind": {
                    "type": "string",
                    "enum": [
                      "Absolute",
                      "Recurring",
                      "Relative"
                    ]
                  },
                  "recurrencyKind": {
                    "type": "string",
                    "enum": [
                      "Daily",
                      "Weekly"
                    ],
                    "nullable": true
                  },
                  "chargingCompleteAt": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "purpose": {
                    "type": "string",
                    "enum": [
                      "ChargePointMaxProfile",
                      "TxDefaultProfile",
                      "TxProfile"
                    ]
                  },
                  "validTo": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "validFrom": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "duration": {
                    "type": "integer",
                    "nullable": true
                  }
                },
                "required": [
                  "id",
                  "minChargingRate",
                  "schedulePeriods",
                  "scheduleStart",
                  "chargingRateUnit",
                  "stackLevel",
                  "chargingProfileKind",
                  "recurrencyKind",
                  "chargingCompleteAt",
                  "purpose",
                  "validTo",
                  "validFrom",
                  "duration"
                ]
              },
              "connectors": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "networkId": {
                      "type": "string",
                      "readOnly": true,
                      "description": "The OCPP connector identifier within the EVSE."
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "type1",
                        "type2",
                        "type3",
                        "chademo",
                        "ccs1",
                        "ccs2",
                        "schuko",
                        "nacs",
                        "cee16",
                        "cee32",
                        "j1772",
                        "inductive",
                        "nema-5-20",
                        "type-e-french",
                        "type-g-british",
                        "type-j-swiss",
                        "avcon",
                        "gb-t-ac",
                        "gb-t-dc",
                        "chaoji",
                        "nema-6-30",
                        "nema-6-50",
                        "mcs",
                        "unknown"
                      ],
                      "description": "Type of connector available on the EVSE:\n- **type1**: Type 1 connector (SAE J1772 AC)\n- **type2**: Type 2 connector (IEC 62196-2 AC)\n- **type3**: Type 3 connector (IEC 62196-2 AC)\n- **chademo**: CHAdeMO DC fast charging\n- **ccs1**: Combined Charging System 1 (CCS1/Combo 1)\n- **ccs2**: Combined Charging System 2 (CCS2/Combo 2)\n- **schuko**: Standard European household socket\n- **nacs**: North American Charging Standard (Tesla)\n- **cee16**: CEE 16A industrial connector\n- **cee32**: CEE 32A industrial connector\n- **j1772**: SAE J1772 connector\n- **inductive**: Inductive/wireless charging\n- **nema-5-20**: Domestic M NEMA 5-20 Socket\n- **type-e-french**: French Type E socket\n- **type-g-british**: British Type G socket\n- **type-j-swiss**: Swiss Type J socket\n- **avcon**: AVCON connector (Australian standard)\n- **gb-t-ac**: GB/T AC connector (Chinese standard)\n- **gb-t-dc**: GB/T DC connector (Chinese standard)\n- **chaoji**: ChaoJi (CHAdeMO 3.0)\n- **nema-6-30**: NEMA 6-30\n- **nema-6-50**: NEMA 6-50\n- **mcs**: Megawatt Charging System (MCS)\n- **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows.\n"
                    },
                    "format": {
                      "type": "string",
                      "enum": [
                        "socket",
                        "cable"
                      ]
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "enabled",
                        "disabled"
                      ]
                    },
                    "ocpiMaxVoltage": {
                      "type": "integer",
                      "description": "Maximum voltage of the connector in volts, as received from a roaming partner via OCPI. Only present for roaming connectors."
                    },
                    "ocpiMaxAmperage": {
                      "type": "integer",
                      "description": "Maximum amperage of the connector in amps, as received from a roaming partner via OCPI. Only present for roaming connectors."
                    },
                    "ocpiMaxElectricPower": {
                      "type": "integer",
                      "description": "Maximum electric power of the connector in watts, as received from a roaming partner via OCPI. Only present for roaming connectors."
                    },
                    "externalId": {
                      "description": "An optional external identifier for integration purposes",
                      "type": "string",
                      "maxLength": 255
                    }
                  },
                  "required": [
                    "id",
                    "networkId",
                    "type"
                  ]
                }
              },
              "externalAppData": {
                "description": "Used to hold any external application data related to the EVSE.",
                "type": "object",
                "nullable": true,
                "additionalProperties": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "accessibleParkingSpaces": {
                "type": "array",
                "description": "Parking spaces accessible from this EVSE. Only included when include=accessibleParkingSpaces.",
                "items": {
                  "type": "object",
                  "description": "Represents how an EVSE is linked to a parking space, including its physical position and whether it's the primary EVSE for that space.",
                  "properties": {
                    "parkingSpaceId": {
                      "type": "integer",
                      "description": "The ID of the associated parking space."
                    },
                    "evseId": {
                      "type": "integer",
                      "description": "The ID of the associated EVSE."
                    },
                    "position": {
                      "description": "Physical position of the EVSE relative to the parking space:\n- **front**: EVSE at front of parking space\n- **rear**: EVSE at rear of parking space\n- **left**: EVSE on left side of parking space\n- **right**: EVSE on right side of parking space\n- **frontLeft**: EVSE at front-left corner\n- **frontRight**: EVSE at front-right corner\n- **rearLeft**: EVSE at rear-left corner\n- **rearRight**: EVSE at rear-right corner\n",
                      "type": "string",
                      "enum": [
                        "front",
                        "rear",
                        "left",
                        "right",
                        "frontLeft",
                        "frontRight",
                        "rearLeft",
                        "rearRight"
                      ]
                    },
                    "isPrimary": {
                      "type": "boolean",
                      "description": "Indicates if this is the primary EVSE for the parking space. Only one EVSE can be marked as primary per parking space."
                    }
                  },
                  "required": [
                    "parkingSpaceId",
                    "evseId",
                    "position",
                    "isPrimary"
                  ]
                }
              }
            },
            "required": [
              "chargePointId",
              "id",
              "operatorId",
              "physicalReference",
              "currentType",
              "networkId",
              "status",
              "hardwareStatus",
              "roamingOperatorId",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "evseDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "evseUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "chargePointId": {
                "type": "integer",
                "description": "The ID of the charge point."
              },
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the operator this resource belongs to. Null for roaming EVSEs.",
                "example": 1
              },
              "physicalReference": {
                "type": "string",
                "description": "The identifier that is presented to the users, so they can identify the EVSE at the location."
              },
              "emi3Id": {
                "type": "string",
                "readOnly": true,
                "example": "BE*FOO*E1234",
                "description": "The full EVSE identifier in EMI3 format (e.g., `BE*FOO*E1234`).\nFor local EVSEs, this is constructed as `{CountryCode}*{PartyId}*E{PhysicalReference}`,\nwhere `CountryCode` and `PartyId` come from the operator's roaming configuration\nand `PhysicalReference` is the EVSE's PhysicalReference.\nFor roaming EVSEs, this is the identifier as received from the roaming CPO (same value as `roaming.evseId`).\nOmitted from the response when the operator does not have a roaming party ID and country code configured.\n"
              },
              "label": {
                "type": "string",
                "description": "The EVSE label will be exposed and visualized in the mobile application"
              },
              "currentType": {
                "type": "string",
                "enum": [
                  "ac",
                  "dc"
                ],
                "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
              },
              "networkId": {
                "type": "string",
                "description": "The OCPP evse identifier (should be consecutive numbers starting from 1)"
              },
              "status": {
                "type": "string",
                "description": "For roaming EVSEs the status can only be updated if the option for manual management of EVSEs is enabled for the roaming CPO.",
                "enum": [
                  "enabled",
                  "disabled",
                  "out of order"
                ]
              },
              "midMeterCertificationEndYear": {
                "type": "integer",
                "description": "The mid meter certification end year."
              },
              "tariffGroupId": {
                "type": "integer",
                "description": "The ID of the tariff group attached to the EVSE. If the EVSE is not roaming and tariffGroupId is not specified, the default (free) tariff will be assigned. For roaming EVSEs the Tariff Group can only be updated if the option for manual management of EVSEs is enabled for the roaming CPO."
              },
              "allowsReservation": {
                "type": "boolean",
                "description": "Manages whether reservations are allowed on this EVSE. Requires the Reservations to be activated for the system in order to enable for the EVSE."
              },
              "bookingEnabled": {
                "type": "boolean",
                "description": "Indicates if the EVSE can be booked."
              },
              "monitoringEnabled": {
                "type": "boolean",
                "description": "When disabled, this EVSE will not be listed or counted in the Faults & connectivity loss widget or lens. The charge point will still appear for charge point-level faults (network loss, hardware faulted). Defaults to true."
              },
              "powerOptions": {
                "type": "object",
                "properties": {
                  "maxOutputVoltage": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000,
                    "description": "Maximum output voltage for DC charging.\n"
                  },
                  "maxPower": {
                    "type": "integer",
                    "description": "Maximum power of the EVSE in W (Watts).",
                    "nullable": true
                  },
                  "maxVoltage": {
                    "type": "string",
                    "nullable": true,
                    "description": "The maximum intake (input) voltage of the EVSE. For the ac current type the output voltage is the same as this intake voltage, while for the dc current type the output voltage can differ and is exposed separately in maxOutputVoltage. The maxVoltage of a charge point can fluctuate. Hence, when creating a charge point in the system, the maxVoltage is given as a range. For OCPI purposes it maps as follows: 220-240 = 230 110-130 = 120 400 = 400 380 = 380\n",
                    "enum": [
                      "230",
                      "380",
                      "400",
                      "480",
                      "120",
                      "208",
                      "240",
                      "110-130",
                      "220-240",
                      "277"
                    ]
                  },
                  "maxAmperage": {
                    "type": "number",
                    "nullable": true
                  },
                  "phases": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "single_phase",
                      "three_phase",
                      "split_phase"
                    ]
                  },
                  "phaseRotation": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "RST",
                      "RTS",
                      "SRT",
                      "STR",
                      "TRS",
                      "TSR"
                    ],
                    "description": "`R` stands for `L1`, </br>\n`S` - for `L2` </br>\n`T` - for `L3` </br>\nSo for example `RST` = `L1`, `L2`, `L3`, while `RTS` = `L1`, `L3`, `L2`, etc. </br>\nWe are deriving the connected phase from this property for single phase if connectedPhase is not provided. Please don't rely on this property anymore as this functionality will be turned of in near future. Pass the correct connectedPhase instead. If you pass both properties (connectedPhase and phaseRotation) only connectedPhase will be taken into consideration for determining the phase.\n"
                  },
                  "connectedPhase": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "L1",
                      "L2",
                      "L3",
                      "L1_L2",
                      "L1_L3",
                      "L2_L3"
                    ],
                    "description": "Specifies the active line conductors used in the circuit.\n- `L1_L2` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L2_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L2` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L3` - Valid when `phases` = `single_phase` in electrical configuration `star`\n"
                  }
                }
              },
              "externalId": {
                "type": "string"
              },
              "capabilityOverrides": {
                "type": "object",
                "description": "Manual overrides for individual EVSE capabilities. Each property controls whether the capability is auto-detected, force enabled, or force disabled. Returned only when at least one capability override is set on the EVSE. Within the object, only capabilities with an active override are present; unset capabilities are omitted (treated as auto).",
                "properties": {
                  "rfidReader": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "force_enable",
                      "force_disable"
                    ],
                    "description": "Override value for an EVSE capability:\n- **auto**: Use automated detection logic (default)\n- **force_enable**: Always include this capability\n- **force_disable**: Never include this capability\n"
                  },
                  "creditCardPayable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "contactlessCardSupport": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "debitCardPayable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "chipCardSupport": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "pedTerminal": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "remoteStartStop": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "unlockCapable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "reservable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "chargingProfileCapable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "chargingPreferencesCapable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "startSessionConnectorRequired": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  },
                  "tokenGroupCapable": {
                    "$ref": "#/paths/~1public-api~1resources~1charge-points~1v2.0~1%7BchargePoint%7D~1evses/post/responses/201/content/application~1json/schema/properties/data"
                  }
                }
              },
              "roamingOperatorId": {
                "description": "For roaming EVSE's, the ID of the roaming operator is provided.",
                "type": "integer"
              },
              "roaming": {
                "type": "object",
                "properties": {
                  "evseId": {
                    "type": "string",
                    "description": "The EVSE identifier that is received through roaming. For example \"DE*ABC*E1234\".",
                    "nullable": true
                  },
                  "tariffIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The tariff IDs that we receive from roaming (as specified by the CPO)."
                  },
                  "capabilities": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The evse capabilities defined by the CPO."
                  },
                  "physicalReference": {
                    "type": "string",
                    "nullable": true,
                    "description": "A number/string printed on the outside of the EVSE for visual."
                  },
                  "status": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "available",
                      "blocked",
                      "charging",
                      "inoperative",
                      "outoforder",
                      "planned",
                      "removed",
                      "reserved",
                      "unknown"
                    ],
                    "description": "* `available` - The EVSE/Connector is able to start a new charging session. * `blocked` - The EVSE/Connector is not accessible because of a physical barrier, i.e. a car. * `charging` - The EVSE/Connector is in use. * `inoperative` - The EVSE/Connector is not yet active or it is no longer available (deleted). * `outoforder` - The EVSE/Connector is currently out of order. * `planned` - The EVSE/Connector is planned, will be operating soon. * `removed` - The EVSE/Connector/charge point is discontinued/removed. * `reserved` - The EVSE/Connector is reserved for a particular EV driver and is unavailable for other drivers. * `unknown` -  No status information available. (Also used when offline)\n"
                  }
                },
                "required": [
                  "evseId",
                  "tariffIds",
                  "capabilities",
                  "physicalReference",
                  "status"
                ]
              },
              "hardwareStatus": {
                "type": "string",
                "enum": [
                  "available",
                  "preparing",
                  "charging",
                  "suspendedEV",
                  "suspendedEVSE",
                  "finishing",
                  "reserved",
                  "unavailable",
                  "faulted",
                  "occupied"
                ],
                "nullable": true,
                "description": "Status reported by the charge point's evse:\n\n`available` - When a connector becomes available for a new user (Operative)\n\n`preparing` - When a connector becomes no longer available for a new user but there is no ongoing transaction (yet). Typically a connector is in preparing state when a user presents a tag, inserts a cable or a vehicle occupies the parking bay (Operative)\n\n`charging` - When the contactor of a connector closes, allowing the vehicle to charge (operative)\n\n`suspendedEVSE` - When the vehicle is connected to the evse but the evse is not offering energy to the EV, e.g. due to a smart charging restriction, local supply power constraints. (operative)\n\n`suspendedEV` - When the vehicle is connected to the evse and the evse is offering energy but the vehicle is not taking any energy. For example the driver has unlocked the car, and the car has paused charging. (operative)\n\n`finishing` - When a transaction has stopped at a connector, but the connector is not yet available for a new user, e.g. the cable has not been removed or the vehicle has not left the parking bay (operative)\n\n`reserved` - When a evse becomes reserved as a result of a *reserve now* command (operative)\n\n`unavailable` - When a evse becomes unavailable as the result of a *change availability* command or an event upon which the charge point transitions to unavailable at its discretion. Upon receipt of a change availability command, the status MAY change immediately or the change MAY be scheduled. When scheduled, the status notification shall be sent when the availability change becomes effective (inoperative)\n\n`faulted` - When a charge point or connector has reported an error and is not available for energy delivery (inoperative).\n\n`occupied` - If OCPP 2.0.1 is used, the EVSE hardware status is occupied when in session.\n\nWhen hardware status is null, that means that the charge point has not connected yet or has not reported a hardware status for this evse in the past.\n"
              },
              "lastHardwareStatusUpdateAt": {
                "description": "ISO 8601 formatted date",
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "chargingProfile": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "minChargingRate": {
                    "type": "number",
                    "nullable": true
                  },
                  "schedulePeriods": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "startPeriod": {
                          "type": "integer"
                        },
                        "limit": {
                          "type": "number",
                          "description": "A number with not more than one decimal (decimal places <= 1)"
                        },
                        "numberPhases": {
                          "type": "integer"
                        }
                      },
                      "required": [
                        "startPeriod",
                        "limit"
                      ]
                    }
                  },
                  "scheduleStart": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "chargingRateUnit": {
                    "type": "string",
                    "enum": [
                      "A",
                      "W"
                    ]
                  },
                  "stackLevel": {
                    "type": "integer"
                  },
                  "chargingProfileKind": {
                    "type": "string",
                    "enum": [
                      "Absolute",
                      "Recurring",
                      "Relative"
                    ]
                  },
                  "recurrencyKind": {
                    "type": "string",
                    "enum": [
                      "Daily",
                      "Weekly"
                    ],
                    "nullable": true
                  },
                  "chargingCompleteAt": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "purpose": {
                    "type": "string",
                    "enum": [
                      "ChargePointMaxProfile",
                      "TxDefaultProfile",
                      "TxProfile"
                    ]
                  },
                  "validTo": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "validFrom": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "duration": {
                    "type": "integer",
                    "nullable": true
                  }
                },
                "required": [
                  "id",
                  "minChargingRate",
                  "schedulePeriods",
                  "scheduleStart",
                  "chargingRateUnit",
                  "stackLevel",
                  "chargingProfileKind",
                  "recurrencyKind",
                  "chargingCompleteAt",
                  "purpose",
                  "validTo",
                  "validFrom",
                  "duration"
                ]
              },
              "connectors": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "networkId": {
                      "type": "string",
                      "readOnly": true,
                      "description": "The OCPP connector identifier within the EVSE."
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "type1",
                        "type2",
                        "type3",
                        "chademo",
                        "ccs1",
                        "ccs2",
                        "schuko",
                        "nacs",
                        "cee16",
                        "cee32",
                        "j1772",
                        "inductive",
                        "nema-5-20",
                        "type-e-french",
                        "type-g-british",
                        "type-j-swiss",
                        "avcon",
                        "gb-t-ac",
                        "gb-t-dc",
                        "chaoji",
                        "nema-6-30",
                        "nema-6-50",
                        "mcs",
                        "unknown"
                      ],
                      "description": "Type of connector available on the EVSE:\n- **type1**: Type 1 connector (SAE J1772 AC)\n- **type2**: Type 2 connector (IEC 62196-2 AC)\n- **type3**: Type 3 connector (IEC 62196-2 AC)\n- **chademo**: CHAdeMO DC fast charging\n- **ccs1**: Combined Charging System 1 (CCS1/Combo 1)\n- **ccs2**: Combined Charging System 2 (CCS2/Combo 2)\n- **schuko**: Standard European household socket\n- **nacs**: North American Charging Standard (Tesla)\n- **cee16**: CEE 16A industrial connector\n- **cee32**: CEE 32A industrial connector\n- **j1772**: SAE J1772 connector\n- **inductive**: Inductive/wireless charging\n- **nema-5-20**: Domestic M NEMA 5-20 Socket\n- **type-e-french**: French Type E socket\n- **type-g-british**: British Type G socket\n- **type-j-swiss**: Swiss Type J socket\n- **avcon**: AVCON connector (Australian standard)\n- **gb-t-ac**: GB/T AC connector (Chinese standard)\n- **gb-t-dc**: GB/T DC connector (Chinese standard)\n- **chaoji**: ChaoJi (CHAdeMO 3.0)\n- **nema-6-30**: NEMA 6-30\n- **nema-6-50**: NEMA 6-50\n- **mcs**: Megawatt Charging System (MCS)\n- **unknown**: Connector standard supplied by a 2.3.0+ OCPI roaming peer that is not part of the platform's recognised set. The original peer-supplied value is preserved internally and emitted on outbound OCPI flows.\n"
                    },
                    "format": {
                      "type": "string",
                      "enum": [
                        "socket",
                        "cable"
                      ]
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "enabled",
                        "disabled"
                      ]
                    },
                    "ocpiMaxVoltage": {
                      "type": "integer",
                      "description": "Maximum voltage of the connector in volts, as received from a roaming partner via OCPI. Only present for roaming connectors."
                    },
                    "ocpiMaxAmperage": {
                      "type": "integer",
                      "description": "Maximum amperage of the connector in amps, as received from a roaming partner via OCPI. Only present for roaming connectors."
                    },
                    "ocpiMaxElectricPower": {
                      "type": "integer",
                      "description": "Maximum electric power of the connector in watts, as received from a roaming partner via OCPI. Only present for roaming connectors."
                    },
                    "externalId": {
                      "description": "An optional external identifier for integration purposes",
                      "type": "string",
                      "maxLength": 255
                    }
                  },
                  "required": [
                    "id",
                    "networkId",
                    "type"
                  ]
                }
              },
              "externalAppData": {
                "description": "Used to hold any external application data related to the EVSE.",
                "type": "object",
                "nullable": true,
                "additionalProperties": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "accessibleParkingSpaces": {
                "type": "array",
                "description": "Parking spaces accessible from this EVSE. Only included when include=accessibleParkingSpaces.",
                "items": {
                  "type": "object",
                  "description": "Represents how an EVSE is linked to a parking space, including its physical position and whether it's the primary EVSE for that space.",
                  "properties": {
                    "parkingSpaceId": {
                      "type": "integer",
                      "description": "The ID of the associated parking space."
                    },
                    "evseId": {
                      "type": "integer",
                      "description": "The ID of the associated EVSE."
                    },
                    "position": {
                      "description": "Physical position of the EVSE relative to the parking space:\n- **front**: EVSE at front of parking space\n- **rear**: EVSE at rear of parking space\n- **left**: EVSE on left side of parking space\n- **right**: EVSE on right side of parking space\n- **frontLeft**: EVSE at front-left corner\n- **frontRight**: EVSE at front-right corner\n- **rearLeft**: EVSE at rear-left corner\n- **rearRight**: EVSE at rear-right corner\n",
                      "type": "string",
                      "enum": [
                        "front",
                        "rear",
                        "left",
                        "right",
                        "frontLeft",
                        "frontRight",
                        "rearLeft",
                        "rearRight"
                      ]
                    },
                    "isPrimary": {
                      "type": "boolean",
                      "description": "Indicates if this is the primary EVSE for the parking space. Only one EVSE can be marked as primary per parking space."
                    }
                  },
                  "required": [
                    "parkingSpaceId",
                    "evseId",
                    "position",
                    "isPrimary"
                  ]
                }
              }
            },
            "required": [
              "chargePointId",
              "id",
              "operatorId",
              "physicalReference",
              "currentType",
              "networkId",
              "status",
              "hardwareStatus",
              "roamingOperatorId",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "faqsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "question": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "answer": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "operatorId",
                "question",
                "answer",
                "lastUpdatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "faqCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "question": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "answer": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "question",
              "answer",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "faqRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "question": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "answer": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "question",
              "answer",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "faqDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "faqUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "question": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "answer": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "question",
              "answer",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "firmwareVersionsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "Unique identifier of the firmware version"
                },
                "firmwareVersion": {
                  "type": "string",
                  "description": "Version string of the firmware"
                },
                "details": {
                  "type": "string",
                  "description": "Additional details about the firmware version"
                },
                "chargePointVendorId": {
                  "type": "integer",
                  "description": "ID of the charge point vendor associated with this firmware version"
                },
                "fileUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "Temporary URL to download the firmware file. Valid for 24 hours."
                },
                "signingCertificate": {
                  "type": "string",
                  "description": "The certificate used to sign the firmware"
                },
                "signature": {
                  "type": "string",
                  "description": "The digital signature of the firmware"
                },
                "models": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "IDs of charge point models compatible with this firmware version. Only included when requested with include[]=models.",
                  "readOnly": true
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "firmwareVersion",
                "chargePointVendorId",
                "createdAt",
                "updatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "firmwareVersionRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "Unique identifier of the firmware version"
              },
              "firmwareVersion": {
                "type": "string",
                "description": "Version string of the firmware"
              },
              "details": {
                "type": "string",
                "description": "Additional details about the firmware version"
              },
              "chargePointVendorId": {
                "type": "integer",
                "description": "ID of the charge point vendor associated with this firmware version"
              },
              "fileUrl": {
                "type": "string",
                "format": "uri",
                "description": "Temporary URL to download the firmware file. Valid for 24 hours."
              },
              "signingCertificate": {
                "type": "string",
                "description": "The certificate used to sign the firmware"
              },
              "signature": {
                "type": "string",
                "description": "The digital signature of the firmware"
              },
              "models": {
                "type": "array",
                "items": {
                  "type": "integer"
                },
                "description": "IDs of charge point models compatible with this firmware version. Only included when requested with include[]=models.",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "firmwareVersion",
              "chargePointVendorId",
              "createdAt",
              "updatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "firmwareVersionAttachedModels": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "IDs of charge point models compatible with this firmware version"
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "listFlexibilityActivationRequests": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "number",
                  "description": "Unique ID of the Flexibility Activation Request",
                  "readOnly": true
                },
                "timestamp": {
                  "type": "string",
                  "format": "date-time",
                  "description": "Timestamp of the request creation",
                  "readOnly": true
                },
                "assetId": {
                  "type": "number",
                  "description": "ID of the Flexibility Asset related to the request",
                  "readOnly": true
                },
                "periods": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "startTime": {
                        "type": "string",
                        "format": "date-time"
                      },
                      "endTime": {
                        "type": "string",
                        "format": "date-time"
                      },
                      "energy": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The target energy (Wh) that the system should achieve during the specified time period. Only one is required: maxPower or energy.\n",
                        "nullable": true
                      },
                      "maxPower": {
                        "type": "integer",
                        "format": "int64",
                        "description": "The target power (W) that the system should achieve during the specified time period. Only one is required: maxPower or energy.\n",
                        "nullable": true
                      }
                    }
                  }
                }
              },
              "required": [
                "id",
                "assetId",
                "timestamp",
                "periods"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getFlexibilityActivationRequest": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "number",
                "description": "Unique ID of the Flexibility Activation Request",
                "readOnly": true
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp of the request creation",
                "readOnly": true
              },
              "assetId": {
                "type": "number",
                "description": "ID of the Flexibility Asset related to the request",
                "readOnly": true
              },
              "periods": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "startTime": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "endTime": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "energy": {
                      "type": "integer",
                      "format": "int64",
                      "description": "The target energy (Wh) that the system should achieve during the specified time period. Only one is required: maxPower or energy.\n",
                      "nullable": true
                    },
                    "maxPower": {
                      "type": "integer",
                      "format": "int64",
                      "description": "The target power (W) that the system should achieve during the specified time period. Only one is required: maxPower or energy.\n",
                      "nullable": true
                    }
                  }
                }
              }
            },
            "required": [
              "id",
              "assetId",
              "timestamp",
              "periods"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "listFlexibilityAssets": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "required": [
                "id",
                "operatorId"
              ],
              "type": "object",
              "properties": {
                "id": {
                  "type": "number",
                  "description": "Unique ID of the Flexibility Asset.",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "dlmCircuitId": {
                  "type": "number",
                  "description": "ID of the DLM circuit."
                },
                "description": {
                  "type": "string",
                  "description": "Short description of the flexibility asset.",
                  "nullable": true
                },
                "downwardRegulationLimit": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Downward regulation limit in Watts.",
                  "readOnly": true
                },
                "upwardRegulationLimit": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Upward regulation limit in Watts.",
                  "readOnly": true
                },
                "integrationId": {
                  "type": "number",
                  "description": "Flexibility integration."
                },
                "integrationParameters": {
                  "type": "object",
                  "description": "Flexibility integration parameters.",
                  "additionalProperties": true
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "enabled",
                    "disabled"
                  ]
                },
                "endsAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date. If an end date is set the asset will be automatically disabled at that time. Historical time series and forecasts are not generated after the end date."
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "createFlexibilityAsset": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "number",
                "description": "Unique ID of the Flexibility Asset.",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "dlmCircuitId": {
                "type": "number",
                "description": "ID of the DLM circuit."
              },
              "description": {
                "type": "string",
                "description": "Short description of the flexibility asset.",
                "nullable": true
              },
              "downwardRegulationLimit": {
                "type": "integer",
                "format": "int64",
                "description": "Downward regulation limit in Watts.",
                "readOnly": true
              },
              "upwardRegulationLimit": {
                "type": "integer",
                "format": "int64",
                "description": "Upward regulation limit in Watts.",
                "readOnly": true
              },
              "integrationId": {
                "type": "number",
                "description": "Flexibility integration."
              },
              "integrationParameters": {
                "type": "object",
                "description": "Flexibility integration parameters.",
                "additionalProperties": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "endsAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date. If an end date is set the asset will be automatically disabled at that time. Historical time series and forecasts are not generated after the end date."
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getFlexibilityAsset": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "number",
                "description": "Unique ID of the Flexibility Asset.",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "dlmCircuitId": {
                "type": "number",
                "description": "ID of the DLM circuit."
              },
              "description": {
                "type": "string",
                "description": "Short description of the flexibility asset.",
                "nullable": true
              },
              "downwardRegulationLimit": {
                "type": "integer",
                "format": "int64",
                "description": "Downward regulation limit in Watts.",
                "readOnly": true
              },
              "upwardRegulationLimit": {
                "type": "integer",
                "format": "int64",
                "description": "Upward regulation limit in Watts.",
                "readOnly": true
              },
              "integrationId": {
                "type": "number",
                "description": "Flexibility integration."
              },
              "integrationParameters": {
                "type": "object",
                "description": "Flexibility integration parameters.",
                "additionalProperties": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "endsAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date. If an end date is set the asset will be automatically disabled at that time. Historical time series and forecasts are not generated after the end date."
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "deleteFlexibilityAsset": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "updateFlexibilityAsset": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "number",
                "description": "Unique ID of the Flexibility Asset.",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "dlmCircuitId": {
                "type": "number",
                "description": "ID of the DLM circuit."
              },
              "description": {
                "type": "string",
                "description": "Short description of the flexibility asset.",
                "nullable": true
              },
              "downwardRegulationLimit": {
                "type": "integer",
                "format": "int64",
                "description": "Downward regulation limit in Watts.",
                "readOnly": true
              },
              "upwardRegulationLimit": {
                "type": "integer",
                "format": "int64",
                "description": "Upward regulation limit in Watts.",
                "readOnly": true
              },
              "integrationId": {
                "type": "number",
                "description": "Flexibility integration."
              },
              "integrationParameters": {
                "type": "object",
                "description": "Flexibility integration parameters.",
                "additionalProperties": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "endsAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date. If an end date is set the asset will be automatically disabled at that time. Historical time series and forecasts are not generated after the end date."
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getHistoricalTimeSeries": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "assetId": {
                  "type": "integer",
                  "description": "ID of the Flexibility Asset"
                },
                "startTime": {
                  "type": "string",
                  "format": "date-time"
                },
                "endTime": {
                  "type": "string",
                  "format": "date-time"
                },
                "energy": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Energy output during the period in Wh."
                }
              },
              "required": [
                "assetId",
                "startTime",
                "endTime",
                "energy"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getTimeSeriesForecast": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "assetId": {
                  "type": "integer",
                  "description": "ID of the Flexibility Asset"
                },
                "startTime": {
                  "type": "string",
                  "format": "date-time"
                },
                "endTime": {
                  "type": "string",
                  "format": "date-time"
                },
                "energy": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Predicted energy output during the period in Wh."
                },
                "downwardRegulationPotential": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Potential decrease in energy output in Wh."
                },
                "upwardRegulationPotential": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Potential increase in energy output in Wh."
                }
              },
              "required": [
                "assetId",
                "startTime",
                "endTime",
                "energy",
                "downwardRegulationPotential",
                "upwardRegulationPotential"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "idTagsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "idTagUid": {
                  "type": "string",
                  "description": "Token used for authorization",
                  "example": 123456
                },
                "idLabel": {
                  "type": "string",
                  "description": "Visual or other label that could be associated with the ID Tag. For ID tags that are shared with roaming partners, this value is sent as the OCPI visual_number. Values longer than 64 characters are not shared.",
                  "nullable": true
                },
                "userLabel": {
                  "type": "string",
                  "readOnly": true,
                  "description": "User-defined alias for the ID tag"
                },
                "expireAt": {
                  "type": "string",
                  "format": "date-time",
                  "nullable": true
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "enabled",
                    "disabled",
                    "suspended"
                  ],
                  "description": "The status of the ID tag. Use it to disable or suspend a tag\n* `enabled` The tag is enabled and is accepted as authentication method\n* `disabled` The tag is disabled by the admin user and is not acceptable as authorization method\n* `suspended` The tag is suspended by the owner of the tag and is not acceptable as authorization method\n"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "rfid",
                    "mac_address",
                    "emaid"
                  ]
                },
                "rfidStandard": {
                  "description": "RFID card standard.",
                  "type": "string",
                  "enum": [
                    "iso14443",
                    "iso15693"
                  ]
                },
                "vehicleType": {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    null,
                    "company_car",
                    "private_car"
                  ],
                  "description": "Marks how the ID tag is used. The value only applies when the ID tag has no associated vehicle; an ID tag associated with a vehicle takes the vehicle's usage type instead and this value has no effect.\n\n* `private_car` - suppresses company reimbursement for the home charging sessions of the ID tag.\n* `company_car` - does not suppress company reimbursement. It never makes a session eligible for reimbursement on its own; eligibility is still decided by the existing checks.\n* `null` - contributes no signal. The existing reimbursement classification decides the outcome unchanged.\n\nThe reimbursement effect applies only where the home charging reimbursement feature is enabled; elsewhere the value is stored and returned but changes no reimbursement outcome.\n"
                },
                "isHomeChargingOnly": {
                  "type": "boolean",
                  "description": "Restricts the ID tag to the holder's own home charge points, including charge points shared with the holder. The tag is not authorized anywhere else.\n\nApplicable to tags of type `rfid` only. Supplying this property on a create or update request for a tag of any other type is rejected with `422`.\n\n* **Read** - returned for RFID tags; omitted for all other tag types.\n* **Create** - optional. Defaults to `false` when omitted.\n* **Update** - optional. An omitted value preserves the current setting; send `false` to lift the restriction. There is no null value - `false` is the clear value.\n",
                  "example": false
                },
                "paymentMethodId": {
                  "type": "string",
                  "nullable": true,
                  "deprecated": true,
                  "description": "Use `defaultPaymentOption` instead.\n\nThe payment method that will be associated with the ID Tag.\n* For **credit/debit cards** the `paymentMethodId` should be provided\n* For **Corporate billing** - `corporate:{id}`\n* For **Subscription** - use `\"subscription\"` to use the user's active subscription\n* For **Auto selection** - use `\"auto\"` (recommended) or `null` (deprecated)\n* The \"last used\" concept has been replaced with \"auto\" selection which cycles through available payment methods.\n"
                },
                "defaultPaymentOption": {
                  "type": "string",
                  "description": "The default payment option for this ID tag. Accepted values:\n* `auto` - Automated fallback sequence\n* A payment card ID - Specific registered payment card\n* `corporate:{id}` - Corporate billing account (replace {id} with the corporate billing ID)\n* `subscription` - User's active post-paid subscription\n\nAt charging time, if the chosen payment option doesn't apply to the session (e.g., corporate billing not eligible for the charge point, subscription not applicable), the platform falls back to the user's other available payment methods.\n",
                  "example": "auto"
                },
                "userId": {
                  "type": "integer",
                  "description": "Associate the ID tag with a user account. If the user is not presented, the tag will not be authorized! It makes sense to prepare the tags in advance, in case there is another process/entity is going to later assign them!",
                  "nullable": true
                },
                "externalId": {
                  "type": "string",
                  "nullable": true
                },
                "partnerId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The administrator accounts of the selected Partner will be able to edit and delete the specified ID tag"
                },
                "vehicleId": {
                  "type": "integer",
                  "description": "The ID of the vehicle associated with this ID tag."
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "operatorId",
                "defaultPaymentOption"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "idTagCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "idTagUid": {
                "type": "string",
                "description": "Token used for authorization",
                "example": 123456
              },
              "idLabel": {
                "type": "string",
                "description": "Visual or other label that could be associated with the ID Tag. For ID tags that are shared with roaming partners, this value is sent as the OCPI visual_number. Values longer than 64 characters are not shared.",
                "nullable": true
              },
              "userLabel": {
                "type": "string",
                "readOnly": true,
                "description": "User-defined alias for the ID tag"
              },
              "expireAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled",
                  "suspended"
                ],
                "description": "The status of the ID tag. Use it to disable or suspend a tag\n* `enabled` The tag is enabled and is accepted as authentication method\n* `disabled` The tag is disabled by the admin user and is not acceptable as authorization method\n* `suspended` The tag is suspended by the owner of the tag and is not acceptable as authorization method\n"
              },
              "type": {
                "type": "string",
                "enum": [
                  "rfid",
                  "mac_address",
                  "emaid"
                ]
              },
              "rfidStandard": {
                "description": "RFID card standard.",
                "type": "string",
                "enum": [
                  "iso14443",
                  "iso15693"
                ]
              },
              "vehicleType": {
                "type": "string",
                "nullable": true,
                "enum": [
                  null,
                  "company_car",
                  "private_car"
                ],
                "description": "Marks how the ID tag is used. The value only applies when the ID tag has no associated vehicle; an ID tag associated with a vehicle takes the vehicle's usage type instead and this value has no effect.\n\n* `private_car` - suppresses company reimbursement for the home charging sessions of the ID tag.\n* `company_car` - does not suppress company reimbursement. It never makes a session eligible for reimbursement on its own; eligibility is still decided by the existing checks.\n* `null` - contributes no signal. The existing reimbursement classification decides the outcome unchanged.\n\nThe reimbursement effect applies only where the home charging reimbursement feature is enabled; elsewhere the value is stored and returned but changes no reimbursement outcome.\n"
              },
              "isHomeChargingOnly": {
                "type": "boolean",
                "description": "Restricts the ID tag to the holder's own home charge points, including charge points shared with the holder. The tag is not authorized anywhere else.\n\nApplicable to tags of type `rfid` only. Supplying this property on a create or update request for a tag of any other type is rejected with `422`.\n\n* **Read** - returned for RFID tags; omitted for all other tag types.\n* **Create** - optional. Defaults to `false` when omitted.\n* **Update** - optional. An omitted value preserves the current setting; send `false` to lift the restriction. There is no null value - `false` is the clear value.\n",
                "example": false
              },
              "paymentMethodId": {
                "type": "string",
                "nullable": true,
                "deprecated": true,
                "description": "Use `defaultPaymentOption` instead.\n\nThe payment method that will be associated with the ID Tag.\n* For **credit/debit cards** the `paymentMethodId` should be provided\n* For **Corporate billing** - `corporate:{id}`\n* For **Subscription** - use `\"subscription\"` to use the user's active subscription\n* For **Auto selection** - use `\"auto\"` (recommended) or `null` (deprecated)\n* The \"last used\" concept has been replaced with \"auto\" selection which cycles through available payment methods.\n"
              },
              "defaultPaymentOption": {
                "type": "string",
                "description": "The default payment option for this ID tag. Accepted values:\n* `auto` - Automated fallback sequence\n* A payment card ID - Specific registered payment card\n* `corporate:{id}` - Corporate billing account (replace {id} with the corporate billing ID)\n* `subscription` - User's active post-paid subscription\n\nAt charging time, if the chosen payment option doesn't apply to the session (e.g., corporate billing not eligible for the charge point, subscription not applicable), the platform falls back to the user's other available payment methods.\n",
                "example": "auto"
              },
              "userId": {
                "type": "integer",
                "description": "Associate the ID tag with a user account. If the user is not presented, the tag will not be authorized! It makes sense to prepare the tags in advance, in case there is another process/entity is going to later assign them!",
                "nullable": true
              },
              "externalId": {
                "type": "string",
                "nullable": true
              },
              "partnerId": {
                "type": "integer",
                "nullable": true,
                "description": "The administrator accounts of the selected Partner will be able to edit and delete the specified ID tag"
              },
              "vehicleId": {
                "type": "integer",
                "description": "The ID of the vehicle associated with this ID tag."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "defaultPaymentOption"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "idTagRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "idTagUid": {
                "type": "string",
                "description": "Token used for authorization",
                "example": 123456
              },
              "idLabel": {
                "type": "string",
                "description": "Visual or other label that could be associated with the ID Tag. For ID tags that are shared with roaming partners, this value is sent as the OCPI visual_number. Values longer than 64 characters are not shared.",
                "nullable": true
              },
              "userLabel": {
                "type": "string",
                "readOnly": true,
                "description": "User-defined alias for the ID tag"
              },
              "expireAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled",
                  "suspended"
                ],
                "description": "The status of the ID tag. Use it to disable or suspend a tag\n* `enabled` The tag is enabled and is accepted as authentication method\n* `disabled` The tag is disabled by the admin user and is not acceptable as authorization method\n* `suspended` The tag is suspended by the owner of the tag and is not acceptable as authorization method\n"
              },
              "type": {
                "type": "string",
                "enum": [
                  "rfid",
                  "mac_address",
                  "emaid"
                ]
              },
              "rfidStandard": {
                "description": "RFID card standard.",
                "type": "string",
                "enum": [
                  "iso14443",
                  "iso15693"
                ]
              },
              "vehicleType": {
                "type": "string",
                "nullable": true,
                "enum": [
                  null,
                  "company_car",
                  "private_car"
                ],
                "description": "Marks how the ID tag is used. The value only applies when the ID tag has no associated vehicle; an ID tag associated with a vehicle takes the vehicle's usage type instead and this value has no effect.\n\n* `private_car` - suppresses company reimbursement for the home charging sessions of the ID tag.\n* `company_car` - does not suppress company reimbursement. It never makes a session eligible for reimbursement on its own; eligibility is still decided by the existing checks.\n* `null` - contributes no signal. The existing reimbursement classification decides the outcome unchanged.\n\nThe reimbursement effect applies only where the home charging reimbursement feature is enabled; elsewhere the value is stored and returned but changes no reimbursement outcome.\n"
              },
              "isHomeChargingOnly": {
                "type": "boolean",
                "description": "Restricts the ID tag to the holder's own home charge points, including charge points shared with the holder. The tag is not authorized anywhere else.\n\nApplicable to tags of type `rfid` only. Supplying this property on a create or update request for a tag of any other type is rejected with `422`.\n\n* **Read** - returned for RFID tags; omitted for all other tag types.\n* **Create** - optional. Defaults to `false` when omitted.\n* **Update** - optional. An omitted value preserves the current setting; send `false` to lift the restriction. There is no null value - `false` is the clear value.\n",
                "example": false
              },
              "paymentMethodId": {
                "type": "string",
                "nullable": true,
                "deprecated": true,
                "description": "Use `defaultPaymentOption` instead.\n\nThe payment method that will be associated with the ID Tag.\n* For **credit/debit cards** the `paymentMethodId` should be provided\n* For **Corporate billing** - `corporate:{id}`\n* For **Subscription** - use `\"subscription\"` to use the user's active subscription\n* For **Auto selection** - use `\"auto\"` (recommended) or `null` (deprecated)\n* The \"last used\" concept has been replaced with \"auto\" selection which cycles through available payment methods.\n"
              },
              "defaultPaymentOption": {
                "type": "string",
                "description": "The default payment option for this ID tag. Accepted values:\n* `auto` - Automated fallback sequence\n* A payment card ID - Specific registered payment card\n* `corporate:{id}` - Corporate billing account (replace {id} with the corporate billing ID)\n* `subscription` - User's active post-paid subscription\n\nAt charging time, if the chosen payment option doesn't apply to the session (e.g., corporate billing not eligible for the charge point, subscription not applicable), the platform falls back to the user's other available payment methods.\n",
                "example": "auto"
              },
              "userId": {
                "type": "integer",
                "description": "Associate the ID tag with a user account. If the user is not presented, the tag will not be authorized! It makes sense to prepare the tags in advance, in case there is another process/entity is going to later assign them!",
                "nullable": true
              },
              "externalId": {
                "type": "string",
                "nullable": true
              },
              "partnerId": {
                "type": "integer",
                "nullable": true,
                "description": "The administrator accounts of the selected Partner will be able to edit and delete the specified ID tag"
              },
              "vehicleId": {
                "type": "integer",
                "description": "The ID of the vehicle associated with this ID tag."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "defaultPaymentOption"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "idTagDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "idTagUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "idTagUid": {
                "type": "string",
                "description": "Token used for authorization",
                "example": 123456
              },
              "idLabel": {
                "type": "string",
                "description": "Visual or other label that could be associated with the ID Tag. For ID tags that are shared with roaming partners, this value is sent as the OCPI visual_number. Values longer than 64 characters are not shared.",
                "nullable": true
              },
              "userLabel": {
                "type": "string",
                "readOnly": true,
                "description": "User-defined alias for the ID tag"
              },
              "expireAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled",
                  "suspended"
                ],
                "description": "The status of the ID tag. Use it to disable or suspend a tag\n* `enabled` The tag is enabled and is accepted as authentication method\n* `disabled` The tag is disabled by the admin user and is not acceptable as authorization method\n* `suspended` The tag is suspended by the owner of the tag and is not acceptable as authorization method\n"
              },
              "type": {
                "type": "string",
                "enum": [
                  "rfid",
                  "mac_address",
                  "emaid"
                ]
              },
              "rfidStandard": {
                "description": "RFID card standard.",
                "type": "string",
                "enum": [
                  "iso14443",
                  "iso15693"
                ]
              },
              "vehicleType": {
                "type": "string",
                "nullable": true,
                "enum": [
                  null,
                  "company_car",
                  "private_car"
                ],
                "description": "Marks how the ID tag is used. The value only applies when the ID tag has no associated vehicle; an ID tag associated with a vehicle takes the vehicle's usage type instead and this value has no effect.\n\n* `private_car` - suppresses company reimbursement for the home charging sessions of the ID tag.\n* `company_car` - does not suppress company reimbursement. It never makes a session eligible for reimbursement on its own; eligibility is still decided by the existing checks.\n* `null` - contributes no signal. The existing reimbursement classification decides the outcome unchanged.\n\nThe reimbursement effect applies only where the home charging reimbursement feature is enabled; elsewhere the value is stored and returned but changes no reimbursement outcome.\n"
              },
              "isHomeChargingOnly": {
                "type": "boolean",
                "description": "Restricts the ID tag to the holder's own home charge points, including charge points shared with the holder. The tag is not authorized anywhere else.\n\nApplicable to tags of type `rfid` only. Supplying this property on a create or update request for a tag of any other type is rejected with `422`.\n\n* **Read** - returned for RFID tags; omitted for all other tag types.\n* **Create** - optional. Defaults to `false` when omitted.\n* **Update** - optional. An omitted value preserves the current setting; send `false` to lift the restriction. There is no null value - `false` is the clear value.\n",
                "example": false
              },
              "paymentMethodId": {
                "type": "string",
                "nullable": true,
                "deprecated": true,
                "description": "Use `defaultPaymentOption` instead.\n\nThe payment method that will be associated with the ID Tag.\n* For **credit/debit cards** the `paymentMethodId` should be provided\n* For **Corporate billing** - `corporate:{id}`\n* For **Subscription** - use `\"subscription\"` to use the user's active subscription\n* For **Auto selection** - use `\"auto\"` (recommended) or `null` (deprecated)\n* The \"last used\" concept has been replaced with \"auto\" selection which cycles through available payment methods.\n"
              },
              "defaultPaymentOption": {
                "type": "string",
                "description": "The default payment option for this ID tag. Accepted values:\n* `auto` - Automated fallback sequence\n* A payment card ID - Specific registered payment card\n* `corporate:{id}` - Corporate billing account (replace {id} with the corporate billing ID)\n* `subscription` - User's active post-paid subscription\n\nAt charging time, if the chosen payment option doesn't apply to the session (e.g., corporate billing not eligible for the charge point, subscription not applicable), the platform falls back to the user's other available payment methods.\n",
                "example": "auto"
              },
              "userId": {
                "type": "integer",
                "description": "Associate the ID tag with a user account. If the user is not presented, the tag will not be authorized! It makes sense to prepare the tags in advance, in case there is another process/entity is going to later assign them!",
                "nullable": true
              },
              "externalId": {
                "type": "string",
                "nullable": true
              },
              "partnerId": {
                "type": "integer",
                "nullable": true,
                "description": "The administrator accounts of the selected Partner will be able to edit and delete the specified ID tag"
              },
              "vehicleId": {
                "type": "integer",
                "description": "The ID of the vehicle associated with this ID tag."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "defaultPaymentOption"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "idTagNotesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "summary",
                "pinned",
                "createdAt",
                "updatedAt"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Unique identifier for the note",
                  "example": 123
                },
                "summary": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "Short summary or title of the note",
                  "example": "Important maintenance note"
                },
                "details": {
                  "type": "string",
                  "maxLength": 2000,
                  "description": "Detailed content of the note. Omitted when empty.",
                  "example": "This charge point requires monthly inspection due to high usage."
                },
                "pinned": {
                  "type": "boolean",
                  "description": "Whether the note is pinned (appears first in listings)",
                  "example": true
                },
                "createdByAdminId": {
                  "type": "integer",
                  "description": "ID of the admin who created the note. Omitted when unavailable.",
                  "example": 1
                },
                "updatedByAdminId": {
                  "type": "integer",
                  "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                  "example": 2
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO-8601 timestamp when the note was created",
                  "example": "2025-12-16T10:00:00Z"
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO-8601 timestamp when the note was last updated",
                  "example": "2025-12-16T12:00:00Z"
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "idTagNoteCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "pinned",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier for the note",
                "example": 123
              },
              "summary": {
                "type": "string",
                "maxLength": 255,
                "description": "Short summary or title of the note",
                "example": "Important maintenance note"
              },
              "details": {
                "type": "string",
                "maxLength": 2000,
                "description": "Detailed content of the note. Omitted when empty.",
                "example": "This charge point requires monthly inspection due to high usage."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the note is pinned (appears first in listings)",
                "example": true
              },
              "createdByAdminId": {
                "type": "integer",
                "description": "ID of the admin who created the note. Omitted when unavailable.",
                "example": 1
              },
              "updatedByAdminId": {
                "type": "integer",
                "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                "example": 2
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was created",
                "example": "2025-12-16T10:00:00Z"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was last updated",
                "example": "2025-12-16T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "idTagNoteRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "pinned",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier for the note",
                "example": 123
              },
              "summary": {
                "type": "string",
                "maxLength": 255,
                "description": "Short summary or title of the note",
                "example": "Important maintenance note"
              },
              "details": {
                "type": "string",
                "maxLength": 2000,
                "description": "Detailed content of the note. Omitted when empty.",
                "example": "This charge point requires monthly inspection due to high usage."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the note is pinned (appears first in listings)",
                "example": true
              },
              "createdByAdminId": {
                "type": "integer",
                "description": "ID of the admin who created the note. Omitted when unavailable.",
                "example": 1
              },
              "updatedByAdminId": {
                "type": "integer",
                "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                "example": 2
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was created",
                "example": "2025-12-16T10:00:00Z"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was last updated",
                "example": "2025-12-16T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "idTagNoteDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "idTagNoteUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "pinned",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier for the note",
                "example": 123
              },
              "summary": {
                "type": "string",
                "maxLength": 255,
                "description": "Short summary or title of the note",
                "example": "Important maintenance note"
              },
              "details": {
                "type": "string",
                "maxLength": 2000,
                "description": "Detailed content of the note. Omitted when empty.",
                "example": "This charge point requires monthly inspection due to high usage."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the note is pinned (appears first in listings)",
                "example": true
              },
              "createdByAdminId": {
                "type": "integer",
                "description": "ID of the admin who created the note. Omitted when unavailable.",
                "example": 1
              },
              "updatedByAdminId": {
                "type": "integer",
                "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                "example": 2
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was created",
                "example": "2025-12-16T10:00:00Z"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was last updated",
                "example": "2025-12-16T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getInstallationAndMaintenanceCompaniesList": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The system ID"
                },
                "operatorId": {
                  "type": "integer",
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "businessName": {
                  "type": "string",
                  "description": "The internal name/identifier"
                },
                "integrationId": {
                  "type": "integer",
                  "deprecated": true,
                  "description": "**This property is deprecated. New integrations should use the Installer app's automatic managed-company assignment instead of setting this property manually.**\n\nThe Installer app integration ID\n"
                },
                "externalId": {
                  "type": "string",
                  "description": "External system identifier"
                },
                "companyName": {
                  "type": "string",
                  "description": "Legal/display name"
                },
                "countryCode": {
                  "type": "string",
                  "description": "ISO 3166-1 alpha-2 country code"
                },
                "city": {
                  "type": "string",
                  "description": "City name"
                },
                "region": {
                  "type": "string",
                  "description": "Region name"
                },
                "address": {
                  "type": "string",
                  "description": "Street address"
                },
                "postCode": {
                  "type": "string",
                  "description": "Postal code"
                },
                "contactPerson": {
                  "type": "string",
                  "description": "Contact person name"
                },
                "email": {
                  "type": "string",
                  "description": "Contact email"
                },
                "phone": {
                  "type": "string",
                  "description": "Contact phone"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "chargePointIds": {
                  "description": "List of charge point IDs associated with the installation and maintenance company",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "The charge point system ID"
                      }
                    },
                    "required": [
                      "id"
                    ]
                  }
                }
              },
              "required": [
                "id",
                "operatorId",
                "businessName",
                "createdAt",
                "lastUpdatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "createInstallationAndMaintenanceCompany": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The system ID"
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "businessName": {
                "type": "string",
                "description": "The internal name/identifier"
              },
              "integrationId": {
                "type": "integer",
                "deprecated": true,
                "description": "**This property is deprecated. New integrations should use the Installer app's automatic managed-company assignment instead of setting this property manually.**\n\nThe Installer app integration ID\n"
              },
              "externalId": {
                "type": "string",
                "description": "External system identifier"
              },
              "companyName": {
                "type": "string",
                "description": "Legal/display name"
              },
              "countryCode": {
                "type": "string",
                "description": "ISO 3166-1 alpha-2 country code"
              },
              "city": {
                "type": "string",
                "description": "City name"
              },
              "region": {
                "type": "string",
                "description": "Region name"
              },
              "address": {
                "type": "string",
                "description": "Street address"
              },
              "postCode": {
                "type": "string",
                "description": "Postal code"
              },
              "contactPerson": {
                "type": "string",
                "description": "Contact person name"
              },
              "email": {
                "type": "string",
                "description": "Contact email"
              },
              "phone": {
                "type": "string",
                "description": "Contact phone"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "chargePointIds": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "The charge point system ID"
                    }
                  },
                  "required": [
                    "id"
                  ]
                },
                "description": "List of charge point IDs associated with the installation and maintenance company"
              }
            },
            "required": [
              "id",
              "operatorId",
              "businessName",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getInstallationAndMaintenanceCompany": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The system ID"
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "businessName": {
                "type": "string",
                "description": "The internal name/identifier"
              },
              "integrationId": {
                "type": "integer",
                "deprecated": true,
                "description": "**This property is deprecated. New integrations should use the Installer app's automatic managed-company assignment instead of setting this property manually.**\n\nThe Installer app integration ID\n"
              },
              "externalId": {
                "type": "string",
                "description": "External system identifier"
              },
              "companyName": {
                "type": "string",
                "description": "Legal/display name"
              },
              "countryCode": {
                "type": "string",
                "description": "ISO 3166-1 alpha-2 country code"
              },
              "city": {
                "type": "string",
                "description": "City name"
              },
              "region": {
                "type": "string",
                "description": "Region name"
              },
              "address": {
                "type": "string",
                "description": "Street address"
              },
              "postCode": {
                "type": "string",
                "description": "Postal code"
              },
              "contactPerson": {
                "type": "string",
                "description": "Contact person name"
              },
              "email": {
                "type": "string",
                "description": "Contact email"
              },
              "phone": {
                "type": "string",
                "description": "Contact phone"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "chargePointIds": {
                "description": "List of charge point IDs associated with the installation and maintenance company",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "The charge point system ID"
                    }
                  },
                  "required": [
                    "id"
                  ]
                }
              }
            },
            "required": [
              "id",
              "operatorId",
              "businessName",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "deleteInstallationAndMaintenanceCompany": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "updateInstallationAndMaintenanceCompany": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The system ID"
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "businessName": {
                "type": "string",
                "description": "The internal name/identifier"
              },
              "integrationId": {
                "type": "integer",
                "deprecated": true,
                "description": "**This property is deprecated. New integrations should use the Installer app's automatic managed-company assignment instead of setting this property manually.**\n\nThe Installer app integration ID\n"
              },
              "externalId": {
                "type": "string",
                "description": "External system identifier"
              },
              "companyName": {
                "type": "string",
                "description": "Legal/display name"
              },
              "countryCode": {
                "type": "string",
                "description": "ISO 3166-1 alpha-2 country code"
              },
              "city": {
                "type": "string",
                "description": "City name"
              },
              "region": {
                "type": "string",
                "description": "Region name"
              },
              "address": {
                "type": "string",
                "description": "Street address"
              },
              "postCode": {
                "type": "string",
                "description": "Postal code"
              },
              "contactPerson": {
                "type": "string",
                "description": "Contact person name"
              },
              "email": {
                "type": "string",
                "description": "Contact email"
              },
              "phone": {
                "type": "string",
                "description": "Contact phone"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "chargePointIds": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "The charge point system ID"
                    }
                  },
                  "required": [
                    "id"
                  ]
                },
                "description": "List of charge point IDs associated with the installation and maintenance company"
              }
            },
            "required": [
              "id",
              "operatorId",
              "businessName",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getInstallerJobsList": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The ID of the installer job"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "new",
                    "in_progress",
                    "completed",
                    "failed"
                  ],
                  "description": "The status of the installer job"
                },
                "installationAndMaintenanceCompanyId": {
                  "type": "integer",
                  "description": "The ID of the installation and maintenance company which the installer job is assigned to"
                },
                "locationId": {
                  "type": "integer",
                  "description": "The ID of the location if such is assigned to the installer job"
                },
                "installerAdminId": {
                  "type": "integer",
                  "description": "The ID of the installer admin if such is assigned to the installer job"
                },
                "pin": {
                  "type": "string",
                  "minLength": 4,
                  "maxLength": 12,
                  "description": "The PIN of the installer job, it is used to verify access rights to execute the Installer job"
                },
                "description": {
                  "type": "string"
                },
                "outcomeDetails": {
                  "type": "string",
                  "description": "The outcome details of the installer job, provided to the `change-status` action when setting the status to \"completed\" or \"failed\""
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "status",
                "installationAndMaintenanceCompanyId",
                "description",
                "createdAt",
                "lastUpdatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "createInstallerJob": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The ID of the installer job"
              },
              "status": {
                "type": "string",
                "enum": [
                  "new",
                  "in_progress",
                  "completed",
                  "failed"
                ],
                "description": "The status of the installer job"
              },
              "installationAndMaintenanceCompanyId": {
                "type": "integer",
                "description": "The ID of the installation and maintenance company which the installer job is assigned to"
              },
              "locationId": {
                "type": "integer",
                "description": "The ID of the location if such is assigned to the installer job"
              },
              "installerAdminId": {
                "type": "integer",
                "description": "The ID of the installer admin if such is assigned to the installer job"
              },
              "pin": {
                "type": "string",
                "minLength": 4,
                "maxLength": 12,
                "description": "The PIN of the installer job, it is used to verify access rights to execute the Installer job"
              },
              "description": {
                "type": "string"
              },
              "outcomeDetails": {
                "type": "string",
                "description": "The outcome details of the installer job, provided to the `change-status` action when setting the status to \"completed\" or \"failed\""
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "status",
              "installationAndMaintenanceCompanyId",
              "description",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getInstallerJob": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The ID of the installer job"
              },
              "status": {
                "type": "string",
                "enum": [
                  "new",
                  "in_progress",
                  "completed",
                  "failed"
                ],
                "description": "The status of the installer job"
              },
              "installationAndMaintenanceCompanyId": {
                "type": "integer",
                "description": "The ID of the installation and maintenance company which the installer job is assigned to"
              },
              "locationId": {
                "type": "integer",
                "description": "The ID of the location if such is assigned to the installer job"
              },
              "installerAdminId": {
                "type": "integer",
                "description": "The ID of the installer admin if such is assigned to the installer job"
              },
              "pin": {
                "type": "string",
                "minLength": 4,
                "maxLength": 12,
                "description": "The PIN of the installer job, it is used to verify access rights to execute the Installer job"
              },
              "description": {
                "type": "string"
              },
              "outcomeDetails": {
                "type": "string",
                "description": "The outcome details of the installer job, provided to the `change-status` action when setting the status to \"completed\" or \"failed\""
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "chargePoints": {
                "description": "List of charge points assigned to the installer job",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    }
                  }
                }
              }
            },
            "required": [
              "id",
              "status",
              "installationAndMaintenanceCompanyId",
              "description",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "deleteInstallerJob": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "updateInstallerJob": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The ID of the installer job"
              },
              "status": {
                "type": "string",
                "enum": [
                  "new",
                  "in_progress",
                  "completed",
                  "failed"
                ],
                "description": "The status of the installer job"
              },
              "installationAndMaintenanceCompanyId": {
                "type": "integer",
                "description": "The ID of the installation and maintenance company which the installer job is assigned to"
              },
              "locationId": {
                "type": "integer",
                "description": "The ID of the location if such is assigned to the installer job"
              },
              "installerAdminId": {
                "type": "integer",
                "description": "The ID of the installer admin if such is assigned to the installer job"
              },
              "pin": {
                "type": "string",
                "minLength": 4,
                "maxLength": 12,
                "description": "The PIN of the installer job, it is used to verify access rights to execute the Installer job"
              },
              "description": {
                "type": "string"
              },
              "outcomeDetails": {
                "type": "string",
                "description": "The outcome details of the installer job, provided to the `change-status` action when setting the status to \"completed\" or \"failed\""
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "status",
              "installationAndMaintenanceCompanyId",
              "description",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "invoicesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "operatorId": {
                  "type": "integer",
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "partnerId": {
                  "type": "integer",
                  "description": "The ID of the partner this invoice was issued from. Omitted when the invoice is not associated with a partner."
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "invoice",
                    "pro_forma",
                    "credit_note"
                  ],
                  "description": "The type of the invoice"
                },
                "number": {
                  "type": "string",
                  "description": "The unique number presented on the invoice"
                },
                "date": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The date on which the invoice was issued"
                },
                "userId": {
                  "type": "integer",
                  "description": "The id of the user in the backend, to whom the invoice is being issued. Can be -1 in case the invoice is issued to no particular user"
                },
                "periodFrom": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The timestamp of the first transaction included in the invoice",
                  "nullable": true
                },
                "periodTo": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The timestamp of the last transaction included in the invoice",
                  "nullable": true
                },
                "totalEnergy": {
                  "type": "number",
                  "description": "The total energy accounted by the sessions that the invoice transactions correspond to"
                },
                "totalAmount": {
                  "type": "number",
                  "description": "The total amount (including tax) of the invoice"
                },
                "taxRate": {
                  "type": "integer",
                  "description": "The tax percent applied to the invoice"
                },
                "taxAmount": {
                  "type": "number",
                  "description": "The amount of tax applied to the invoice"
                },
                "service": {
                  "type": "string",
                  "description": "The service for which the invoice is being issued"
                },
                "quantity": {
                  "type": "number"
                },
                "unitPrice": {
                  "type": "number"
                },
                "subtotal": {
                  "type": "number",
                  "description": "Total price for the service"
                },
                "downloadUrl": {
                  "type": "string",
                  "description": "The invoice can be downloaded from here. The link expires in 24 hours. Omitted while a fiscalized invoice has no valid customer-facing representation."
                },
                "paymentStatus": {
                  "type": "string",
                  "enum": [
                    "paid",
                    "partially_paid",
                    "pending"
                  ]
                },
                "externalId": {
                  "type": "string",
                  "description": "Reference identifier from external accounting or ERP system."
                },
                "client": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "individual",
                        "company"
                      ]
                    },
                    "name": {
                      "type": "string"
                    },
                    "email": {
                      "oneOf": [
                        {
                          "title": "Email Address",
                          "type": "string",
                          "format": "email"
                        },
                        {
                          "title": "Empty Email",
                          "type": "string",
                          "minLength": 0,
                          "maxLength": 0
                        }
                      ]
                    },
                    "id": {
                      "type": "string",
                      "description": "The ID identifying the client (personal id or company id)"
                    },
                    "taxId": {
                      "type": "string"
                    },
                    "taxAdministrationOfficeName": {
                      "type": "string",
                      "nullable": true
                    },
                    "country": {
                      "type": "string",
                      "enum": [
                        "AF",
                        "AX",
                        "AL",
                        "DZ",
                        "AS",
                        "AD",
                        "AO",
                        "AI",
                        "AQ",
                        "AG",
                        "AR",
                        "AM",
                        "AW",
                        "AU",
                        "AT",
                        "AZ",
                        "BS",
                        "BH",
                        "BD",
                        "BB",
                        "BY",
                        "BE",
                        "BZ",
                        "BJ",
                        "BM",
                        "BT",
                        "BO",
                        "BQ",
                        "BA",
                        "BW",
                        "BV",
                        "BR",
                        "IO",
                        "BN",
                        "BG",
                        "BF",
                        "BI",
                        "KH",
                        "CM",
                        "CA",
                        "CV",
                        "KY",
                        "CF",
                        "TD",
                        "CL",
                        "CN",
                        "CX",
                        "CC",
                        "CO",
                        "KM",
                        "CG",
                        "CD",
                        "CK",
                        "CR",
                        "CI",
                        "HR",
                        "CU",
                        "CW",
                        "CY",
                        "CZ",
                        "DK",
                        "DJ",
                        "DM",
                        "DO",
                        "EC",
                        "EG",
                        "SV",
                        "GQ",
                        "ER",
                        "EE",
                        "ET",
                        "FK",
                        "FO",
                        "FJ",
                        "FI",
                        "FR",
                        "GF",
                        "PF",
                        "TF",
                        "GA",
                        "GM",
                        "GE",
                        "DE",
                        "GH",
                        "GI",
                        "GR",
                        "GL",
                        "GD",
                        "GP",
                        "GU",
                        "GT",
                        "GG",
                        "GN",
                        "GW",
                        "GY",
                        "HT",
                        "HM",
                        "VA",
                        "HN",
                        "HK",
                        "HU",
                        "IS",
                        "IN",
                        "ID",
                        "IR",
                        "IQ",
                        "IE",
                        "IM",
                        "IL",
                        "IT",
                        "JM",
                        "JP",
                        "JE",
                        "JO",
                        "KZ",
                        "KE",
                        "KI",
                        "KP",
                        "KR",
                        "XK",
                        "KW",
                        "KG",
                        "LA",
                        "LV",
                        "LB",
                        "LS",
                        "LR",
                        "LY",
                        "LI",
                        "LT",
                        "LU",
                        "MO",
                        "MK",
                        "MG",
                        "MW",
                        "MY",
                        "MV",
                        "ML",
                        "MT",
                        "MH",
                        "MQ",
                        "MR",
                        "MU",
                        "YT",
                        "MX",
                        "FM",
                        "MD",
                        "MC",
                        "MN",
                        "ME",
                        "MS",
                        "MA",
                        "MZ",
                        "MM",
                        "NA",
                        "NR",
                        "NP",
                        "NL",
                        "NC",
                        "NZ",
                        "NI",
                        "NE",
                        "NG",
                        "NU",
                        "NF",
                        "MP",
                        "NO",
                        "OM",
                        "PK",
                        "PW",
                        "PS",
                        "PA",
                        "PG",
                        "PY",
                        "PE",
                        "PH",
                        "PN",
                        "PL",
                        "PT",
                        "PR",
                        "QA",
                        "RE",
                        "RO",
                        "RU",
                        "RW",
                        "BL",
                        "SH",
                        "KN",
                        "LC",
                        "MF",
                        "PM",
                        "VC",
                        "WS",
                        "SM",
                        "ST",
                        "SA",
                        "SN",
                        "RS",
                        "SC",
                        "SL",
                        "SG",
                        "SX",
                        "SK",
                        "SI",
                        "SB",
                        "SO",
                        "ZA",
                        "GS",
                        "SS",
                        "ES",
                        "LK",
                        "SD",
                        "SR",
                        "SJ",
                        "SZ",
                        "SE",
                        "CH",
                        "SY",
                        "TW",
                        "TJ",
                        "TZ",
                        "TH",
                        "TL",
                        "TG",
                        "TK",
                        "TO",
                        "TT",
                        "TN",
                        "TR",
                        "TM",
                        "TC",
                        "TV",
                        "UG",
                        "UA",
                        "AE",
                        "GB",
                        "US",
                        "UM",
                        "UY",
                        "UZ",
                        "VU",
                        "VE",
                        "VN",
                        "VG",
                        "VI",
                        "WF",
                        "EH",
                        "YE",
                        "ZM",
                        "ZW"
                      ]
                    },
                    "region": {
                      "type": "string",
                      "nullable": true,
                      "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
                    },
                    "state": {
                      "description": "When the selected country is one of US, AU, CA, UM or RO",
                      "anyOf": [
                        {
                          "title": "US State",
                          "description": "When the country is US.",
                          "type": "string",
                          "enum": [
                            "AL",
                            "AK",
                            "AS",
                            "AZ",
                            "AR",
                            "CA",
                            "CO",
                            "CT",
                            "DE",
                            "DC",
                            "FM",
                            "FL",
                            "GA",
                            "GU",
                            "HI",
                            "ID",
                            "IL",
                            "IN",
                            "IA",
                            "KS",
                            "KY",
                            "LA",
                            "ME",
                            "MH",
                            "MD",
                            "MA",
                            "MI",
                            "MN",
                            "MS",
                            "MO",
                            "MT",
                            "NE",
                            "NV",
                            "NH",
                            "NJ",
                            "NM",
                            "NY",
                            "NC",
                            "ND",
                            "MP",
                            "OH",
                            "OK",
                            "OR",
                            "PW",
                            "PA",
                            "PR",
                            "RI",
                            "SC",
                            "SD",
                            "TN",
                            "TX",
                            "UT",
                            "VT",
                            "VI",
                            "VA",
                            "WA",
                            "WV",
                            "WI",
                            "WY"
                          ]
                        },
                        {
                          "title": "Australian State",
                          "description": "When the country is AU.",
                          "type": "string",
                          "enum": [
                            "NSW",
                            "VIC",
                            "QLD",
                            "WA",
                            "SA",
                            "TAS",
                            "ACT",
                            "NT",
                            "JBT",
                            "CX",
                            "NF",
                            "CC",
                            "AQ",
                            "CSI",
                            "ACI",
                            "HM"
                          ]
                        },
                        {
                          "title": "Canadian Province",
                          "description": "When the country is CA.",
                          "type": "string",
                          "enum": [
                            "AB",
                            "BC",
                            "MB",
                            "NB",
                            "NL",
                            "NT",
                            "NS",
                            "NU",
                            "ON",
                            "PE",
                            "QC",
                            "SK",
                            "YT"
                          ]
                        },
                        {
                          "title": "US Minor Outlying Islands Territory",
                          "description": "When the country is UM.",
                          "type": "string",
                          "enum": [
                            "81",
                            "84",
                            "85",
                            "67",
                            "89",
                            "71",
                            "76",
                            "95",
                            "79"
                          ]
                        },
                        {
                          "title": "Romanian County",
                          "description": "When the country is RO.",
                          "type": "string",
                          "enum": [
                            "AB",
                            "AR",
                            "AG",
                            "BC",
                            "BH",
                            "BN",
                            "BT",
                            "BV",
                            "BR",
                            "B",
                            "BZ",
                            "CL",
                            "CS",
                            "CT",
                            "CV",
                            "DB",
                            "DJ",
                            "GL",
                            "GR",
                            "GJ",
                            "HR",
                            "HD",
                            "IL",
                            "IS",
                            "IF",
                            "MM",
                            "MH",
                            "MS",
                            "NT",
                            "OT",
                            "PH",
                            "SM",
                            "SJ",
                            "SB",
                            "SV",
                            "TR",
                            "TM",
                            "TL",
                            "VS",
                            "VL",
                            "VN"
                          ]
                        }
                      ]
                    },
                    "city": {
                      "type": "string"
                    },
                    "post_code": {
                      "type": "string"
                    },
                    "address": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "type",
                    "name",
                    "country"
                  ]
                },
                "fiscalization": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "description": "Certification status of the invoice with its fiscalization integration.\n- **pending**: The fiscal document exists and has been accepted for certification, but the fiscal authority has not yet confirmed it. The document is not yet legally issued.\n- **certified**: The fiscal authority confirmed the document, which is legally issued. `referenceNumber` carries the reference the integration recorded for it. In rare cases a certified document has no recorded reference and `referenceNumber` is absent; this does not resolve on its own and requires operator intervention. A document whose revocation has been requested but not yet confirmed, or whose revocation was rejected, is still `certified` — it remains legally issued until the authority confirms the revocation, at which point it becomes `canceled`.\n- **failed**: Certification did not succeed. Retries are attempted a bounded number of times; a status that remains `failed` requires operator intervention. The fiscal document remains, but no legally issued document exists for it.\n- **canceled**: The document was certified and has since been revoked with the fiscal authority. This is distinct from `failed` — the document was legally issued at some point, and `referenceNumber` keeps the reference the integration had recorded for it.\n",
                      "type": "string",
                      "enum": [
                        "pending",
                        "certified",
                        "failed",
                        "canceled"
                      ],
                      "example": "certified"
                    },
                    "referenceNumber": {
                      "type": "string",
                      "description": "Reference recorded for this document by the fiscalization integration, for correlating it with that integration's own records. For most integrations this is the number assigned by the tax authority; some record a provider-side identifier instead. Treat it as an opaque, integration-defined reference rather than assuming it is the legally issued document number. Once recorded it does not change, including after the document is canceled. Distinct from `externalId`, which is the reference an external accounting or ERP system wrote into the platform. Absent when the integration has recorded no reference."
                    },
                    "documents": {
                      "type": "array",
                      "description": "Document formats the fiscal authority has made available for this invoice. Omitted while no format has been made available yet.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "format": {
                            "type": "string",
                            "description": "Identifier of the document format, exactly as reported by the fiscal authority. The value is provider-defined and its syntax is not guaranteed — it may be a media type such as `application/pdf`, or a mandate-specific format name. The set is not fixed, so treat an unrecognised value as a format this integration has newly made available rather than as an error; match it verbatim rather than parsing it.",
                            "example": "application/pdf"
                          },
                          "downloadUrl": {
                            "type": "string",
                            "description": "Signed link that downloads this format. The link expires 24 hours after the response was produced, so it must be followed rather than stored; request the invoice again for a fresh link. The document is fetched from the fiscal authority only when the link is followed, so the download responds with `424 Failed Dependency` when the provider cannot supply the format at that moment."
                          }
                        },
                        "required": [
                          "format",
                          "downloadUrl"
                        ]
                      }
                    }
                  },
                  "required": [
                    "status"
                  ],
                  "description": "Certification of this invoice with the fiscal authority. Present when the invoice has a fiscal document; omitted entirely for invoices with no fiscal document at all. Presence does not depend on `type` — a fiscalized credit note carries this object exactly as an invoice does."
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "operatorId",
                "type",
                "number",
                "date",
                "totalAmount",
                "taxRate",
                "taxAmount",
                "service",
                "quantity",
                "unitPrice",
                "subtotal"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "invoiceRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "partnerId": {
                "type": "integer",
                "description": "The ID of the partner this invoice was issued from. Omitted when the invoice is not associated with a partner."
              },
              "type": {
                "type": "string",
                "enum": [
                  "invoice",
                  "pro_forma",
                  "credit_note"
                ],
                "description": "The type of the invoice"
              },
              "number": {
                "type": "string",
                "description": "The unique number presented on the invoice"
              },
              "date": {
                "type": "string",
                "format": "date-time",
                "description": "The date on which the invoice was issued"
              },
              "userId": {
                "type": "integer",
                "description": "The id of the user in the backend, to whom the invoice is being issued. Can be -1 in case the invoice is issued to no particular user"
              },
              "periodFrom": {
                "type": "string",
                "format": "date-time",
                "description": "The timestamp of the first transaction included in the invoice",
                "nullable": true
              },
              "periodTo": {
                "type": "string",
                "format": "date-time",
                "description": "The timestamp of the last transaction included in the invoice",
                "nullable": true
              },
              "totalEnergy": {
                "type": "number",
                "description": "The total energy accounted by the sessions that the invoice transactions correspond to"
              },
              "totalAmount": {
                "type": "number",
                "description": "The total amount (including tax) of the invoice"
              },
              "taxRate": {
                "type": "integer",
                "description": "The tax percent applied to the invoice"
              },
              "taxAmount": {
                "type": "number",
                "description": "The amount of tax applied to the invoice"
              },
              "service": {
                "type": "string",
                "description": "The service for which the invoice is being issued"
              },
              "quantity": {
                "type": "number"
              },
              "unitPrice": {
                "type": "number"
              },
              "subtotal": {
                "type": "number",
                "description": "Total price for the service"
              },
              "downloadUrl": {
                "type": "string",
                "description": "The invoice can be downloaded from here. The link expires in 24 hours. Omitted while a fiscalized invoice has no valid customer-facing representation."
              },
              "paymentStatus": {
                "type": "string",
                "enum": [
                  "paid",
                  "partially_paid",
                  "pending"
                ]
              },
              "externalId": {
                "type": "string",
                "description": "Reference identifier from external accounting or ERP system."
              },
              "client": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "individual",
                      "company"
                    ]
                  },
                  "name": {
                    "type": "string"
                  },
                  "email": {
                    "oneOf": [
                      {
                        "title": "Email Address",
                        "type": "string",
                        "format": "email"
                      },
                      {
                        "title": "Empty Email",
                        "type": "string",
                        "minLength": 0,
                        "maxLength": 0
                      }
                    ]
                  },
                  "id": {
                    "type": "string",
                    "description": "The ID identifying the client (personal id or company id)"
                  },
                  "taxId": {
                    "type": "string"
                  },
                  "taxAdministrationOfficeName": {
                    "type": "string",
                    "nullable": true
                  },
                  "country": {
                    "type": "string",
                    "enum": [
                      "AF",
                      "AX",
                      "AL",
                      "DZ",
                      "AS",
                      "AD",
                      "AO",
                      "AI",
                      "AQ",
                      "AG",
                      "AR",
                      "AM",
                      "AW",
                      "AU",
                      "AT",
                      "AZ",
                      "BS",
                      "BH",
                      "BD",
                      "BB",
                      "BY",
                      "BE",
                      "BZ",
                      "BJ",
                      "BM",
                      "BT",
                      "BO",
                      "BQ",
                      "BA",
                      "BW",
                      "BV",
                      "BR",
                      "IO",
                      "BN",
                      "BG",
                      "BF",
                      "BI",
                      "KH",
                      "CM",
                      "CA",
                      "CV",
                      "KY",
                      "CF",
                      "TD",
                      "CL",
                      "CN",
                      "CX",
                      "CC",
                      "CO",
                      "KM",
                      "CG",
                      "CD",
                      "CK",
                      "CR",
                      "CI",
                      "HR",
                      "CU",
                      "CW",
                      "CY",
                      "CZ",
                      "DK",
                      "DJ",
                      "DM",
                      "DO",
                      "EC",
                      "EG",
                      "SV",
                      "GQ",
                      "ER",
                      "EE",
                      "ET",
                      "FK",
                      "FO",
                      "FJ",
                      "FI",
                      "FR",
                      "GF",
                      "PF",
                      "TF",
                      "GA",
                      "GM",
                      "GE",
                      "DE",
                      "GH",
                      "GI",
                      "GR",
                      "GL",
                      "GD",
                      "GP",
                      "GU",
                      "GT",
                      "GG",
                      "GN",
                      "GW",
                      "GY",
                      "HT",
                      "HM",
                      "VA",
                      "HN",
                      "HK",
                      "HU",
                      "IS",
                      "IN",
                      "ID",
                      "IR",
                      "IQ",
                      "IE",
                      "IM",
                      "IL",
                      "IT",
                      "JM",
                      "JP",
                      "JE",
                      "JO",
                      "KZ",
                      "KE",
                      "KI",
                      "KP",
                      "KR",
                      "XK",
                      "KW",
                      "KG",
                      "LA",
                      "LV",
                      "LB",
                      "LS",
                      "LR",
                      "LY",
                      "LI",
                      "LT",
                      "LU",
                      "MO",
                      "MK",
                      "MG",
                      "MW",
                      "MY",
                      "MV",
                      "ML",
                      "MT",
                      "MH",
                      "MQ",
                      "MR",
                      "MU",
                      "YT",
                      "MX",
                      "FM",
                      "MD",
                      "MC",
                      "MN",
                      "ME",
                      "MS",
                      "MA",
                      "MZ",
                      "MM",
                      "NA",
                      "NR",
                      "NP",
                      "NL",
                      "NC",
                      "NZ",
                      "NI",
                      "NE",
                      "NG",
                      "NU",
                      "NF",
                      "MP",
                      "NO",
                      "OM",
                      "PK",
                      "PW",
                      "PS",
                      "PA",
                      "PG",
                      "PY",
                      "PE",
                      "PH",
                      "PN",
                      "PL",
                      "PT",
                      "PR",
                      "QA",
                      "RE",
                      "RO",
                      "RU",
                      "RW",
                      "BL",
                      "SH",
                      "KN",
                      "LC",
                      "MF",
                      "PM",
                      "VC",
                      "WS",
                      "SM",
                      "ST",
                      "SA",
                      "SN",
                      "RS",
                      "SC",
                      "SL",
                      "SG",
                      "SX",
                      "SK",
                      "SI",
                      "SB",
                      "SO",
                      "ZA",
                      "GS",
                      "SS",
                      "ES",
                      "LK",
                      "SD",
                      "SR",
                      "SJ",
                      "SZ",
                      "SE",
                      "CH",
                      "SY",
                      "TW",
                      "TJ",
                      "TZ",
                      "TH",
                      "TL",
                      "TG",
                      "TK",
                      "TO",
                      "TT",
                      "TN",
                      "TR",
                      "TM",
                      "TC",
                      "TV",
                      "UG",
                      "UA",
                      "AE",
                      "GB",
                      "US",
                      "UM",
                      "UY",
                      "UZ",
                      "VU",
                      "VE",
                      "VN",
                      "VG",
                      "VI",
                      "WF",
                      "EH",
                      "YE",
                      "ZM",
                      "ZW"
                    ]
                  },
                  "region": {
                    "type": "string",
                    "nullable": true,
                    "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
                  },
                  "state": {
                    "description": "When the selected country is one of US, AU, CA, UM or RO",
                    "anyOf": [
                      {
                        "title": "US State",
                        "description": "When the country is US.",
                        "type": "string",
                        "enum": [
                          "AL",
                          "AK",
                          "AS",
                          "AZ",
                          "AR",
                          "CA",
                          "CO",
                          "CT",
                          "DE",
                          "DC",
                          "FM",
                          "FL",
                          "GA",
                          "GU",
                          "HI",
                          "ID",
                          "IL",
                          "IN",
                          "IA",
                          "KS",
                          "KY",
                          "LA",
                          "ME",
                          "MH",
                          "MD",
                          "MA",
                          "MI",
                          "MN",
                          "MS",
                          "MO",
                          "MT",
                          "NE",
                          "NV",
                          "NH",
                          "NJ",
                          "NM",
                          "NY",
                          "NC",
                          "ND",
                          "MP",
                          "OH",
                          "OK",
                          "OR",
                          "PW",
                          "PA",
                          "PR",
                          "RI",
                          "SC",
                          "SD",
                          "TN",
                          "TX",
                          "UT",
                          "VT",
                          "VI",
                          "VA",
                          "WA",
                          "WV",
                          "WI",
                          "WY"
                        ]
                      },
                      {
                        "title": "Australian State",
                        "description": "When the country is AU.",
                        "type": "string",
                        "enum": [
                          "NSW",
                          "VIC",
                          "QLD",
                          "WA",
                          "SA",
                          "TAS",
                          "ACT",
                          "NT",
                          "JBT",
                          "CX",
                          "NF",
                          "CC",
                          "AQ",
                          "CSI",
                          "ACI",
                          "HM"
                        ]
                      },
                      {
                        "title": "Canadian Province",
                        "description": "When the country is CA.",
                        "type": "string",
                        "enum": [
                          "AB",
                          "BC",
                          "MB",
                          "NB",
                          "NL",
                          "NT",
                          "NS",
                          "NU",
                          "ON",
                          "PE",
                          "QC",
                          "SK",
                          "YT"
                        ]
                      },
                      {
                        "title": "US Minor Outlying Islands Territory",
                        "description": "When the country is UM.",
                        "type": "string",
                        "enum": [
                          "81",
                          "84",
                          "85",
                          "67",
                          "89",
                          "71",
                          "76",
                          "95",
                          "79"
                        ]
                      },
                      {
                        "title": "Romanian County",
                        "description": "When the country is RO.",
                        "type": "string",
                        "enum": [
                          "AB",
                          "AR",
                          "AG",
                          "BC",
                          "BH",
                          "BN",
                          "BT",
                          "BV",
                          "BR",
                          "B",
                          "BZ",
                          "CL",
                          "CS",
                          "CT",
                          "CV",
                          "DB",
                          "DJ",
                          "GL",
                          "GR",
                          "GJ",
                          "HR",
                          "HD",
                          "IL",
                          "IS",
                          "IF",
                          "MM",
                          "MH",
                          "MS",
                          "NT",
                          "OT",
                          "PH",
                          "SM",
                          "SJ",
                          "SB",
                          "SV",
                          "TR",
                          "TM",
                          "TL",
                          "VS",
                          "VL",
                          "VN"
                        ]
                      }
                    ]
                  },
                  "city": {
                    "type": "string"
                  },
                  "post_code": {
                    "type": "string"
                  },
                  "address": {
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "name",
                  "country"
                ]
              },
              "fiscalization": {
                "type": "object",
                "properties": {
                  "status": {
                    "description": "Certification status of the invoice with its fiscalization integration.\n- **pending**: The fiscal document exists and has been accepted for certification, but the fiscal authority has not yet confirmed it. The document is not yet legally issued.\n- **certified**: The fiscal authority confirmed the document, which is legally issued. `referenceNumber` carries the reference the integration recorded for it. In rare cases a certified document has no recorded reference and `referenceNumber` is absent; this does not resolve on its own and requires operator intervention. A document whose revocation has been requested but not yet confirmed, or whose revocation was rejected, is still `certified` — it remains legally issued until the authority confirms the revocation, at which point it becomes `canceled`.\n- **failed**: Certification did not succeed. Retries are attempted a bounded number of times; a status that remains `failed` requires operator intervention. The fiscal document remains, but no legally issued document exists for it.\n- **canceled**: The document was certified and has since been revoked with the fiscal authority. This is distinct from `failed` — the document was legally issued at some point, and `referenceNumber` keeps the reference the integration had recorded for it.\n",
                    "type": "string",
                    "enum": [
                      "pending",
                      "certified",
                      "failed",
                      "canceled"
                    ],
                    "example": "certified"
                  },
                  "referenceNumber": {
                    "type": "string",
                    "description": "Reference recorded for this document by the fiscalization integration, for correlating it with that integration's own records. For most integrations this is the number assigned by the tax authority; some record a provider-side identifier instead. Treat it as an opaque, integration-defined reference rather than assuming it is the legally issued document number. Once recorded it does not change, including after the document is canceled. Distinct from `externalId`, which is the reference an external accounting or ERP system wrote into the platform. Absent when the integration has recorded no reference."
                  },
                  "documents": {
                    "type": "array",
                    "description": "Document formats the fiscal authority has made available for this invoice. Omitted while no format has been made available yet.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "format": {
                          "type": "string",
                          "description": "Identifier of the document format, exactly as reported by the fiscal authority. The value is provider-defined and its syntax is not guaranteed — it may be a media type such as `application/pdf`, or a mandate-specific format name. The set is not fixed, so treat an unrecognised value as a format this integration has newly made available rather than as an error; match it verbatim rather than parsing it.",
                          "example": "application/pdf"
                        },
                        "downloadUrl": {
                          "type": "string",
                          "description": "Signed link that downloads this format. The link expires 24 hours after the response was produced, so it must be followed rather than stored; request the invoice again for a fresh link. The document is fetched from the fiscal authority only when the link is followed, so the download responds with `424 Failed Dependency` when the provider cannot supply the format at that moment."
                        }
                      },
                      "required": [
                        "format",
                        "downloadUrl"
                      ]
                    }
                  }
                },
                "required": [
                  "status"
                ],
                "description": "Certification of this invoice with the fiscal authority. Present when the invoice has a fiscal document; omitted entirely for invoices with no fiscal document at all. Presence does not depend on `type` — a fiscalized credit note carries this object exactly as an invoice does."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "type",
              "number",
              "date",
              "totalAmount",
              "taxRate",
              "taxAmount",
              "service",
              "quantity",
              "unitPrice",
              "subtotal"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "invoiceFiscalizationAttemptsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "A single fiscalization attempt recorded for this invoice.",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Identifier of this attempt. Stable for the lifetime of the record, so it is what to deduplicate and reconcile on when ingesting attempts, and what to quote when referring to one specific attempt.",
                  "example": 4211
                },
                "attemptedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The moment the attempt was made."
                },
                "isSuccessful": {
                  "type": "boolean",
                  "description": "Whether the attempt succeeded."
                },
                "responseFields": {
                  "type": "array",
                  "description": "Values the integration publishes for this attempt. Which values appear, their names and their order are integration-defined and not fixed; treat the list as a set to match on rather than a fixed positional structure. Empty when the attempt has none.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "key": {
                        "type": "string",
                        "description": "Name of the returned value, as reported by the integration. The set of names is provider-defined and not fixed.",
                        "example": "KSeF number"
                      },
                      "value": {
                        "type": "string",
                        "description": "The returned value."
                      }
                    },
                    "required": [
                      "key",
                      "value"
                    ]
                  }
                },
                "errorMessage": {
                  "type": "string",
                  "description": "Why the attempt did not succeed. Present only for a failed attempt that carries a message."
                }
              },
              "required": [
                "id",
                "attemptedAt",
                "isSuccessful",
                "responseFields"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        },
        "required": [
          "data",
          "links",
          "meta"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "invoiceFiscalizationDocumentDownload": {
    "403": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "410": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "424": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string",
            "example": "The fiscal authority could not provide the requested fiscal document format: document not ready"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "issuesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Issue resource with full details",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "System-generated unique identifier",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "title": {
                  "type": "string",
                  "description": "Issue title",
                  "maxLength": 255
                },
                "description": {
                  "type": "string",
                  "description": "Detailed issue description (HTML content)"
                },
                "resolutionDetails": {
                  "type": "string",
                  "description": "Details about how the issue was resolved or why it was closed. Only present when status is resolved, wont_fix, or non_issue."
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "auto_recovery_in_progress",
                    "information_collection_in_progress",
                    "new",
                    "investigating",
                    "resolution_in_progress",
                    "resolved",
                    "wont_fix",
                    "non_issue"
                  ],
                  "description": "Issue status:\n- **auto_recovery_in_progress**: Issue is in automatic recovery process (preparation state)\n- **information_collection_in_progress**: System is collecting diagnostic information (preparation state)\n- **new**: Issue has been reported and not yet investigated (open state)\n- **investigating**: Issue is currently being investigated (open state)\n- **resolution_in_progress**: Resolution actions are being applied (open state)\n- **resolved**: Issue has been resolved successfully (closed state)\n- **wont_fix**: Issue will not be fixed (closed state)\n- **non_issue**: Reported issue determined to not be an actual issue (closed state)\n",
                  "example": "investigating"
                },
                "workflowState": {
                  "readOnly": true,
                  "description": "Issue workflow state (derived from status):\n- **preparation**: System is performing automatic actions before manual intervention (auto-resolution statuses)\n- **open**: Issue requires attention or is being worked on (new, investigating, resolutionInProgress)\n- **closed**: Issue is no longer active (resolved, wontFix, nonIssue)\n",
                  "type": "string",
                  "enum": [
                    "preparation",
                    "open",
                    "closed"
                  ],
                  "example": "open"
                },
                "category": {
                  "type": "string",
                  "enum": [
                    "network",
                    "payments_billing",
                    "product_offerings",
                    "ev_driver_ux",
                    "security",
                    "reporting",
                    "roaming",
                    "other"
                  ],
                  "description": "Issue category:\n- **network**: Network connectivity or communication issues\n- **payments_billing**: Payment processing or billing-related issues\n- **product_offerings**: Issues with product features or tariff offerings\n- **ev_driver_ux**: EV driver user experience issues\n- **security**: Security-related concerns or incidents\n- **reporting**: Reporting or analytics issues\n- **roaming**: Roaming-related issues\n- **other**: Issues not covered by other categories\n",
                  "example": "network"
                },
                "severity": {
                  "type": "string",
                  "enum": [
                    "severe",
                    "significant",
                    "moderate",
                    "low"
                  ],
                  "description": "Issue severity level:\n- **severe**: Critical impact requiring immediate attention\n- **significant**: Major impact affecting important functionality\n- **moderate**: Moderate impact with workaround available\n- **low**: Minor impact with minimal effect on operations\n",
                  "example": "significant"
                },
                "priority": {
                  "type": "string",
                  "enum": [
                    "highest",
                    "high",
                    "medium",
                    "low"
                  ],
                  "description": "Issue priority level:\n- **highest**: Must be addressed immediately\n- **high**: Should be addressed as soon as possible\n- **medium**: Should be addressed in normal workflow\n- **low**: Can be addressed when convenient\n",
                  "example": "high"
                },
                "externalId": {
                  "type": "string",
                  "description": "External system identifier (UUID format recommended)",
                  "maxLength": 255
                },
                "assigneeAdminId": {
                  "type": "integer",
                  "description": "ID of the admin user assigned to this issue"
                },
                "partnerId": {
                  "type": "integer",
                  "description": "ID of the partner that owns this issue. Present only for partner-scoped issues.",
                  "readOnly": true
                },
                "keyResource": {
                  "type": "object",
                  "description": "Reference to a related resource (charge point, location, or EVSE)",
                  "properties": {
                    "resourceType": {
                      "type": "string",
                      "enum": [
                        "charge-point",
                        "location",
                        "evse",
                        "session",
                        "integration",
                        "roaming-cdr",
                        "roaming-connection"
                      ],
                      "description": "Type of resource associated with an issue.\n- **charge-point**: Charge point equipment\n- **location**: Charging location\n- **evse**: Electric Vehicle Supply Equipment (individual charging outlet)\n- **session**: Charging session\n- **integration**: Integration setting (e.g., third-party service configuration)\n- **roaming-cdr**: Roaming charge detail record\n- **roaming-connection**: Roaming connection\n\nNote: Additional types (user) may appear in responses for issues created by automated systems.\n",
                      "example": "charge-point"
                    },
                    "id": {
                      "type": "integer",
                      "description": "ID of the referenced resource"
                    }
                  },
                  "required": [
                    "resourceType",
                    "id"
                  ]
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "operatorId",
                "title",
                "status",
                "workflowState",
                "category",
                "severity",
                "priority",
                "createdAt",
                "updatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "issuesCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Issue resource with full details",
            "properties": {
              "id": {
                "type": "integer",
                "description": "System-generated unique identifier",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "title": {
                "type": "string",
                "description": "Issue title",
                "maxLength": 255
              },
              "description": {
                "type": "string",
                "description": "Detailed issue description (HTML content)"
              },
              "resolutionDetails": {
                "type": "string",
                "description": "Details about how the issue was resolved or why it was closed. Only present when status is resolved, wont_fix, or non_issue."
              },
              "status": {
                "type": "string",
                "enum": [
                  "auto_recovery_in_progress",
                  "information_collection_in_progress",
                  "new",
                  "investigating",
                  "resolution_in_progress",
                  "resolved",
                  "wont_fix",
                  "non_issue"
                ],
                "description": "Issue status:\n- **auto_recovery_in_progress**: Issue is in automatic recovery process (preparation state)\n- **information_collection_in_progress**: System is collecting diagnostic information (preparation state)\n- **new**: Issue has been reported and not yet investigated (open state)\n- **investigating**: Issue is currently being investigated (open state)\n- **resolution_in_progress**: Resolution actions are being applied (open state)\n- **resolved**: Issue has been resolved successfully (closed state)\n- **wont_fix**: Issue will not be fixed (closed state)\n- **non_issue**: Reported issue determined to not be an actual issue (closed state)\n",
                "example": "investigating"
              },
              "workflowState": {
                "readOnly": true,
                "description": "Issue workflow state (derived from status):\n- **preparation**: System is performing automatic actions before manual intervention (auto-resolution statuses)\n- **open**: Issue requires attention or is being worked on (new, investigating, resolutionInProgress)\n- **closed**: Issue is no longer active (resolved, wontFix, nonIssue)\n",
                "type": "string",
                "enum": [
                  "preparation",
                  "open",
                  "closed"
                ],
                "example": "open"
              },
              "category": {
                "type": "string",
                "enum": [
                  "network",
                  "payments_billing",
                  "product_offerings",
                  "ev_driver_ux",
                  "security",
                  "reporting",
                  "roaming",
                  "other"
                ],
                "description": "Issue category:\n- **network**: Network connectivity or communication issues\n- **payments_billing**: Payment processing or billing-related issues\n- **product_offerings**: Issues with product features or tariff offerings\n- **ev_driver_ux**: EV driver user experience issues\n- **security**: Security-related concerns or incidents\n- **reporting**: Reporting or analytics issues\n- **roaming**: Roaming-related issues\n- **other**: Issues not covered by other categories\n",
                "example": "network"
              },
              "severity": {
                "type": "string",
                "enum": [
                  "severe",
                  "significant",
                  "moderate",
                  "low"
                ],
                "description": "Issue severity level:\n- **severe**: Critical impact requiring immediate attention\n- **significant**: Major impact affecting important functionality\n- **moderate**: Moderate impact with workaround available\n- **low**: Minor impact with minimal effect on operations\n",
                "example": "significant"
              },
              "priority": {
                "type": "string",
                "enum": [
                  "highest",
                  "high",
                  "medium",
                  "low"
                ],
                "description": "Issue priority level:\n- **highest**: Must be addressed immediately\n- **high**: Should be addressed as soon as possible\n- **medium**: Should be addressed in normal workflow\n- **low**: Can be addressed when convenient\n",
                "example": "high"
              },
              "externalId": {
                "type": "string",
                "description": "External system identifier (UUID format recommended)",
                "maxLength": 255
              },
              "assigneeAdminId": {
                "type": "integer",
                "description": "ID of the admin user assigned to this issue"
              },
              "partnerId": {
                "type": "integer",
                "description": "ID of the partner that owns this issue. Present only for partner-scoped issues.",
                "readOnly": true
              },
              "keyResource": {
                "type": "object",
                "description": "Reference to a related resource (charge point, location, or EVSE)",
                "properties": {
                  "resourceType": {
                    "type": "string",
                    "enum": [
                      "charge-point",
                      "location",
                      "evse",
                      "session",
                      "integration",
                      "roaming-cdr",
                      "roaming-connection"
                    ],
                    "description": "Type of resource associated with an issue.\n- **charge-point**: Charge point equipment\n- **location**: Charging location\n- **evse**: Electric Vehicle Supply Equipment (individual charging outlet)\n- **session**: Charging session\n- **integration**: Integration setting (e.g., third-party service configuration)\n- **roaming-cdr**: Roaming charge detail record\n- **roaming-connection**: Roaming connection\n\nNote: Additional types (user) may appear in responses for issues created by automated systems.\n",
                    "example": "charge-point"
                  },
                  "id": {
                    "type": "integer",
                    "description": "ID of the referenced resource"
                  }
                },
                "required": [
                  "resourceType",
                  "id"
                ]
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "title",
              "status",
              "workflowState",
              "category",
              "severity",
              "priority",
              "createdAt",
              "updatedAt"
            ]
          }
        }
      }
    },
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "issueRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Issue resource with optional includes (available via include parameter)",
            "properties": {
              "id": {
                "type": "integer",
                "description": "System-generated unique identifier",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "title": {
                "type": "string",
                "description": "Issue title",
                "maxLength": 255
              },
              "description": {
                "type": "string",
                "description": "Detailed issue description (HTML content)"
              },
              "resolutionDetails": {
                "type": "string",
                "description": "Details about how the issue was resolved or why it was closed. Only present when status is resolved, wont_fix, or non_issue."
              },
              "status": {
                "type": "string",
                "enum": [
                  "auto_recovery_in_progress",
                  "information_collection_in_progress",
                  "new",
                  "investigating",
                  "resolution_in_progress",
                  "resolved",
                  "wont_fix",
                  "non_issue"
                ],
                "description": "Issue status:\n- **auto_recovery_in_progress**: Issue is in automatic recovery process (preparation state)\n- **information_collection_in_progress**: System is collecting diagnostic information (preparation state)\n- **new**: Issue has been reported and not yet investigated (open state)\n- **investigating**: Issue is currently being investigated (open state)\n- **resolution_in_progress**: Resolution actions are being applied (open state)\n- **resolved**: Issue has been resolved successfully (closed state)\n- **wont_fix**: Issue will not be fixed (closed state)\n- **non_issue**: Reported issue determined to not be an actual issue (closed state)\n",
                "example": "investigating"
              },
              "workflowState": {
                "readOnly": true,
                "description": "Issue workflow state (derived from status):\n- **preparation**: System is performing automatic actions before manual intervention (auto-resolution statuses)\n- **open**: Issue requires attention or is being worked on (new, investigating, resolutionInProgress)\n- **closed**: Issue is no longer active (resolved, wontFix, nonIssue)\n",
                "type": "string",
                "enum": [
                  "preparation",
                  "open",
                  "closed"
                ],
                "example": "open"
              },
              "category": {
                "type": "string",
                "enum": [
                  "network",
                  "payments_billing",
                  "product_offerings",
                  "ev_driver_ux",
                  "security",
                  "reporting",
                  "roaming",
                  "other"
                ],
                "description": "Issue category:\n- **network**: Network connectivity or communication issues\n- **payments_billing**: Payment processing or billing-related issues\n- **product_offerings**: Issues with product features or tariff offerings\n- **ev_driver_ux**: EV driver user experience issues\n- **security**: Security-related concerns or incidents\n- **reporting**: Reporting or analytics issues\n- **roaming**: Roaming-related issues\n- **other**: Issues not covered by other categories\n",
                "example": "network"
              },
              "severity": {
                "type": "string",
                "enum": [
                  "severe",
                  "significant",
                  "moderate",
                  "low"
                ],
                "description": "Issue severity level:\n- **severe**: Critical impact requiring immediate attention\n- **significant**: Major impact affecting important functionality\n- **moderate**: Moderate impact with workaround available\n- **low**: Minor impact with minimal effect on operations\n",
                "example": "significant"
              },
              "priority": {
                "type": "string",
                "enum": [
                  "highest",
                  "high",
                  "medium",
                  "low"
                ],
                "description": "Issue priority level:\n- **highest**: Must be addressed immediately\n- **high**: Should be addressed as soon as possible\n- **medium**: Should be addressed in normal workflow\n- **low**: Can be addressed when convenient\n",
                "example": "high"
              },
              "externalId": {
                "type": "string",
                "description": "External system identifier (UUID format recommended)",
                "maxLength": 255
              },
              "assigneeAdminId": {
                "type": "integer",
                "description": "ID of the admin user assigned to this issue"
              },
              "partnerId": {
                "type": "integer",
                "description": "ID of the partner that owns this issue. Present only for partner-scoped issues.",
                "readOnly": true
              },
              "keyResource": {
                "type": "object",
                "description": "Reference to a related resource (charge point, location, or EVSE)",
                "properties": {
                  "resourceType": {
                    "type": "string",
                    "enum": [
                      "charge-point",
                      "location",
                      "evse",
                      "session",
                      "integration",
                      "roaming-cdr",
                      "roaming-connection"
                    ],
                    "description": "Type of resource associated with an issue.\n- **charge-point**: Charge point equipment\n- **location**: Charging location\n- **evse**: Electric Vehicle Supply Equipment (individual charging outlet)\n- **session**: Charging session\n- **integration**: Integration setting (e.g., third-party service configuration)\n- **roaming-cdr**: Roaming charge detail record\n- **roaming-connection**: Roaming connection\n\nNote: Additional types (user) may appear in responses for issues created by automated systems.\n",
                    "example": "charge-point"
                  },
                  "id": {
                    "type": "integer",
                    "description": "ID of the referenced resource"
                  }
                },
                "required": [
                  "resourceType",
                  "id"
                ]
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "relatedResources": {
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "Reference to a related resource (charge point, location, or EVSE)",
                  "properties": {
                    "resourceType": {
                      "type": "string",
                      "enum": [
                        "charge-point",
                        "location",
                        "evse",
                        "session",
                        "integration",
                        "roaming-cdr",
                        "roaming-connection"
                      ],
                      "description": "Type of resource associated with an issue.\n- **charge-point**: Charge point equipment\n- **location**: Charging location\n- **evse**: Electric Vehicle Supply Equipment (individual charging outlet)\n- **session**: Charging session\n- **integration**: Integration setting (e.g., third-party service configuration)\n- **roaming-cdr**: Roaming charge detail record\n- **roaming-connection**: Roaming connection\n\nNote: Additional types (user) may appear in responses for issues created by automated systems.\n",
                      "example": "charge-point"
                    },
                    "id": {
                      "type": "integer",
                      "description": "ID of the referenced resource"
                    }
                  },
                  "required": [
                    "resourceType",
                    "id"
                  ]
                },
                "description": "Additional resources related to this issue. Available when include=relatedResources is specified."
              }
            },
            "required": [
              "id",
              "operatorId",
              "title",
              "status",
              "workflowState",
              "category",
              "severity",
              "priority",
              "createdAt",
              "updatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "issueDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "issueUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Issue resource with full details",
            "properties": {
              "id": {
                "type": "integer",
                "description": "System-generated unique identifier",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "title": {
                "type": "string",
                "description": "Issue title",
                "maxLength": 255
              },
              "description": {
                "type": "string",
                "description": "Detailed issue description (HTML content)"
              },
              "resolutionDetails": {
                "type": "string",
                "description": "Details about how the issue was resolved or why it was closed. Only present when status is resolved, wont_fix, or non_issue."
              },
              "status": {
                "type": "string",
                "enum": [
                  "auto_recovery_in_progress",
                  "information_collection_in_progress",
                  "new",
                  "investigating",
                  "resolution_in_progress",
                  "resolved",
                  "wont_fix",
                  "non_issue"
                ],
                "description": "Issue status:\n- **auto_recovery_in_progress**: Issue is in automatic recovery process (preparation state)\n- **information_collection_in_progress**: System is collecting diagnostic information (preparation state)\n- **new**: Issue has been reported and not yet investigated (open state)\n- **investigating**: Issue is currently being investigated (open state)\n- **resolution_in_progress**: Resolution actions are being applied (open state)\n- **resolved**: Issue has been resolved successfully (closed state)\n- **wont_fix**: Issue will not be fixed (closed state)\n- **non_issue**: Reported issue determined to not be an actual issue (closed state)\n",
                "example": "investigating"
              },
              "workflowState": {
                "readOnly": true,
                "description": "Issue workflow state (derived from status):\n- **preparation**: System is performing automatic actions before manual intervention (auto-resolution statuses)\n- **open**: Issue requires attention or is being worked on (new, investigating, resolutionInProgress)\n- **closed**: Issue is no longer active (resolved, wontFix, nonIssue)\n",
                "type": "string",
                "enum": [
                  "preparation",
                  "open",
                  "closed"
                ],
                "example": "open"
              },
              "category": {
                "type": "string",
                "enum": [
                  "network",
                  "payments_billing",
                  "product_offerings",
                  "ev_driver_ux",
                  "security",
                  "reporting",
                  "roaming",
                  "other"
                ],
                "description": "Issue category:\n- **network**: Network connectivity or communication issues\n- **payments_billing**: Payment processing or billing-related issues\n- **product_offerings**: Issues with product features or tariff offerings\n- **ev_driver_ux**: EV driver user experience issues\n- **security**: Security-related concerns or incidents\n- **reporting**: Reporting or analytics issues\n- **roaming**: Roaming-related issues\n- **other**: Issues not covered by other categories\n",
                "example": "network"
              },
              "severity": {
                "type": "string",
                "enum": [
                  "severe",
                  "significant",
                  "moderate",
                  "low"
                ],
                "description": "Issue severity level:\n- **severe**: Critical impact requiring immediate attention\n- **significant**: Major impact affecting important functionality\n- **moderate**: Moderate impact with workaround available\n- **low**: Minor impact with minimal effect on operations\n",
                "example": "significant"
              },
              "priority": {
                "type": "string",
                "enum": [
                  "highest",
                  "high",
                  "medium",
                  "low"
                ],
                "description": "Issue priority level:\n- **highest**: Must be addressed immediately\n- **high**: Should be addressed as soon as possible\n- **medium**: Should be addressed in normal workflow\n- **low**: Can be addressed when convenient\n",
                "example": "high"
              },
              "externalId": {
                "type": "string",
                "description": "External system identifier (UUID format recommended)",
                "maxLength": 255
              },
              "assigneeAdminId": {
                "type": "integer",
                "description": "ID of the admin user assigned to this issue"
              },
              "partnerId": {
                "type": "integer",
                "description": "ID of the partner that owns this issue. Present only for partner-scoped issues.",
                "readOnly": true
              },
              "keyResource": {
                "type": "object",
                "description": "Reference to a related resource (charge point, location, or EVSE)",
                "properties": {
                  "resourceType": {
                    "type": "string",
                    "enum": [
                      "charge-point",
                      "location",
                      "evse",
                      "session",
                      "integration",
                      "roaming-cdr",
                      "roaming-connection"
                    ],
                    "description": "Type of resource associated with an issue.\n- **charge-point**: Charge point equipment\n- **location**: Charging location\n- **evse**: Electric Vehicle Supply Equipment (individual charging outlet)\n- **session**: Charging session\n- **integration**: Integration setting (e.g., third-party service configuration)\n- **roaming-cdr**: Roaming charge detail record\n- **roaming-connection**: Roaming connection\n\nNote: Additional types (user) may appear in responses for issues created by automated systems.\n",
                    "example": "charge-point"
                  },
                  "id": {
                    "type": "integer",
                    "description": "ID of the referenced resource"
                  }
                },
                "required": [
                  "resourceType",
                  "id"
                ]
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "title",
              "status",
              "workflowState",
              "category",
              "severity",
              "priority",
              "createdAt",
              "updatedAt"
            ]
          }
        }
      }
    },
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "locationsListingDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "public_charge_points": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "The number of the charge points in that location that are both public and active"
                },
                "public_charge_points_ids": {
                  "readOnly": true,
                  "description": "The ids of the charge points in that location that are both public and active",
                  "type": "array",
                  "items": {
                    "type": "integer"
                  }
                },
                "name": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string",
                    "nullable": true
                  },
                  "example": {
                    "en": "example",
                    "fr": "affaire"
                  },
                  "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
                },
                "status": {
                  "deprecated": true,
                  "type": "string",
                  "enum": [
                    "active",
                    "disabled"
                  ]
                },
                "description": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string",
                    "nullable": true
                  },
                  "example": {
                    "en": "example",
                    "fr": "affaire"
                  },
                  "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
                },
                "detailed_description": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string",
                    "nullable": true
                  },
                  "example": {
                    "en": "example",
                    "fr": "affaire"
                  },
                  "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
                },
                "additional_description": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string",
                    "nullable": true
                  },
                  "example": {
                    "en": "example",
                    "fr": "affaire"
                  },
                  "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
                },
                "geoposition": {
                  "type": "object",
                  "required": [
                    "latitude",
                    "longitude"
                  ],
                  "properties": {
                    "latitude": {
                      "type": "number",
                      "minimum": -90,
                      "maximum": 90
                    },
                    "longitude": {
                      "type": "number",
                      "minimum": -180,
                      "maximum": 180
                    }
                  }
                },
                "address": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string",
                    "nullable": true
                  },
                  "example": {
                    "en": "example",
                    "fr": "affaire"
                  },
                  "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
                },
                "post_code": {
                  "type": "string"
                },
                "region": {
                  "anyOf": [
                    {
                      "title": "US State",
                      "description": "For cases when the country is US.",
                      "type": "string",
                      "enum": [
                        "AL",
                        "AK",
                        "AS",
                        "AZ",
                        "AR",
                        "CA",
                        "CO",
                        "CT",
                        "DE",
                        "DC",
                        "FM",
                        "FL",
                        "GA",
                        "GU",
                        "HI",
                        "ID",
                        "IL",
                        "IN",
                        "IA",
                        "KS",
                        "KY",
                        "LA",
                        "ME",
                        "MH",
                        "MD",
                        "MA",
                        "MI",
                        "MN",
                        "MS",
                        "MO",
                        "MT",
                        "NE",
                        "NV",
                        "NH",
                        "NJ",
                        "NM",
                        "NY",
                        "NC",
                        "ND",
                        "MP",
                        "OH",
                        "OK",
                        "OR",
                        "PW",
                        "PA",
                        "PR",
                        "RI",
                        "SC",
                        "SD",
                        "TN",
                        "TX",
                        "UT",
                        "VT",
                        "VI",
                        "VA",
                        "WA",
                        "WV",
                        "WI",
                        "WY"
                      ]
                    },
                    {
                      "title": "Australian State",
                      "description": "For cases when the country is AU.",
                      "type": "string",
                      "enum": [
                        "NSW",
                        "VIC",
                        "QLD",
                        "WA",
                        "SA",
                        "TAS",
                        "ACT",
                        "NT",
                        "JBT",
                        "CX",
                        "NF",
                        "CC",
                        "AQ",
                        "CSI",
                        "ACI",
                        "HM"
                      ]
                    },
                    {
                      "title": "Other Region",
                      "type": "string",
                      "description": "For cases when the country is not US or AU."
                    }
                  ]
                },
                "city": {
                  "type": "string"
                },
                "country": {
                  "type": "string",
                  "enum": [
                    "AF",
                    "AX",
                    "AL",
                    "DZ",
                    "AS",
                    "AD",
                    "AO",
                    "AI",
                    "AQ",
                    "AG",
                    "AR",
                    "AM",
                    "AW",
                    "AU",
                    "AT",
                    "AZ",
                    "BS",
                    "BH",
                    "BD",
                    "BB",
                    "BY",
                    "BE",
                    "BZ",
                    "BJ",
                    "BM",
                    "BT",
                    "BO",
                    "BQ",
                    "BA",
                    "BW",
                    "BV",
                    "BR",
                    "IO",
                    "BN",
                    "BG",
                    "BF",
                    "BI",
                    "KH",
                    "CM",
                    "CA",
                    "CV",
                    "KY",
                    "CF",
                    "TD",
                    "CL",
                    "CN",
                    "CX",
                    "CC",
                    "CO",
                    "KM",
                    "CG",
                    "CD",
                    "CK",
                    "CR",
                    "CI",
                    "HR",
                    "CU",
                    "CW",
                    "CY",
                    "CZ",
                    "DK",
                    "DJ",
                    "DM",
                    "DO",
                    "EC",
                    "EG",
                    "SV",
                    "GQ",
                    "ER",
                    "EE",
                    "ET",
                    "FK",
                    "FO",
                    "FJ",
                    "FI",
                    "FR",
                    "GF",
                    "PF",
                    "TF",
                    "GA",
                    "GM",
                    "GE",
                    "DE",
                    "GH",
                    "GI",
                    "GR",
                    "GL",
                    "GD",
                    "GP",
                    "GU",
                    "GT",
                    "GG",
                    "GN",
                    "GW",
                    "GY",
                    "HT",
                    "HM",
                    "VA",
                    "HN",
                    "HK",
                    "HU",
                    "IS",
                    "IN",
                    "ID",
                    "IR",
                    "IQ",
                    "IE",
                    "IM",
                    "IL",
                    "IT",
                    "JM",
                    "JP",
                    "JE",
                    "JO",
                    "KZ",
                    "KE",
                    "KI",
                    "KP",
                    "KR",
                    "XK",
                    "KW",
                    "KG",
                    "LA",
                    "LV",
                    "LB",
                    "LS",
                    "LR",
                    "LY",
                    "LI",
                    "LT",
                    "LU",
                    "MO",
                    "MK",
                    "MG",
                    "MW",
                    "MY",
                    "MV",
                    "ML",
                    "MT",
                    "MH",
                    "MQ",
                    "MR",
                    "MU",
                    "YT",
                    "MX",
                    "FM",
                    "MD",
                    "MC",
                    "MN",
                    "ME",
                    "MS",
                    "MA",
                    "MZ",
                    "MM",
                    "NA",
                    "NR",
                    "NP",
                    "NL",
                    "NC",
                    "NZ",
                    "NI",
                    "NE",
                    "NG",
                    "NU",
                    "NF",
                    "MP",
                    "NO",
                    "OM",
                    "PK",
                    "PW",
                    "PS",
                    "PA",
                    "PG",
                    "PY",
                    "PE",
                    "PH",
                    "PN",
                    "PL",
                    "PT",
                    "PR",
                    "QA",
                    "RE",
                    "RO",
                    "RU",
                    "RW",
                    "BL",
                    "SH",
                    "KN",
                    "LC",
                    "MF",
                    "PM",
                    "VC",
                    "WS",
                    "SM",
                    "ST",
                    "SA",
                    "SN",
                    "RS",
                    "SC",
                    "SL",
                    "SG",
                    "SX",
                    "SK",
                    "SI",
                    "SB",
                    "SO",
                    "ZA",
                    "GS",
                    "SS",
                    "ES",
                    "LK",
                    "SD",
                    "SR",
                    "SJ",
                    "SZ",
                    "SE",
                    "CH",
                    "SY",
                    "TW",
                    "TJ",
                    "TZ",
                    "TH",
                    "TL",
                    "TG",
                    "TK",
                    "TO",
                    "TT",
                    "TN",
                    "TR",
                    "TM",
                    "TC",
                    "TV",
                    "UG",
                    "UA",
                    "AE",
                    "GB",
                    "US",
                    "UM",
                    "UY",
                    "UZ",
                    "VU",
                    "VE",
                    "VN",
                    "VG",
                    "VI",
                    "WF",
                    "EH",
                    "YE",
                    "ZM",
                    "ZW"
                  ]
                },
                "external_id": {
                  "type": "string",
                  "nullable": true,
                  "description": "The field should have unique value"
                },
                "timezone": {
                  "type": "string",
                  "nullable": true,
                  "description": "A valid timezone in the form of Area/Location, required when `Allow Multiple Time Zones` option is turned on in the Timezone Setting."
                },
                "location_image": {
                  "type": "object",
                  "nullable": true,
                  "readOnly": true,
                  "properties": {
                    "original": {
                      "type": "string",
                      "description": "URL to the original image"
                    },
                    "thumbnail": {
                      "type": "string",
                      "description": "URL to a thumbnail image"
                    },
                    "mimeType": {
                      "type": "string"
                    },
                    "category": {
                      "description": "Category of an image associated with a location:\n- **charger**: Photo of the charging station or charger\n- **entrance**: Photo of the entrance to the location\n- **location**: Photo of the location overview\n- **network**: Logo of the network or operator group\n- **operator**: Logo of the operator\n- **other**: Other image\n- **owner**: Logo of the owner\n",
                      "type": "string",
                      "enum": [
                        "charger",
                        "entrance",
                        "location",
                        "network",
                        "operator",
                        "other",
                        "owner"
                      ]
                    }
                  },
                  "required": [
                    "original",
                    "mimeType"
                  ]
                },
                "images": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "original": {
                        "type": "string",
                        "description": "URL to the original image"
                      },
                      "thumbnail": {
                        "type": "string",
                        "description": "URL to a thumbnail image"
                      },
                      "mimeType": {
                        "type": "string"
                      },
                      "category": {
                        "description": "Category of an image associated with a location:\n- **charger**: Photo of the charging station or charger\n- **entrance**: Photo of the entrance to the location\n- **location**: Photo of the location overview\n- **network**: Logo of the network or operator group\n- **operator**: Logo of the operator\n- **other**: Other image\n- **owner**: Logo of the owner\n",
                        "type": "string",
                        "enum": [
                          "charger",
                          "entrance",
                          "location",
                          "network",
                          "operator",
                          "other",
                          "owner"
                        ]
                      }
                    },
                    "required": [
                      "original",
                      "mimeType"
                    ]
                  },
                  "readOnly": true
                },
                "working_hours": {
                  "type": "object",
                  "properties": {
                    "is_always_open": {
                      "type": "boolean",
                      "description": "Indicates that the location is always open for charging. If set to false, the `hours` field is required, otherwise it should be ignored.\n"
                    },
                    "stop_session_outside_working_hours": {
                      "type": "boolean",
                      "nullable": true,
                      "description": "If a User has initiated a charging session during Working hours but it is already outside of the Working hours, the session will be terminated by the system. This is valid only for Users that are not included in one of the User Groups for which the Location is available 24/7.\n"
                    },
                    "hours": {
                      "type": "object",
                      "nullable": true,
                      "description": "The times should be considered to be in the location/tenant timezone.\nIf a day does not have any entries, it will be treated as closed for the whole day.\n",
                      "properties": {
                        "monday": {
                          "type": "array",
                          "description": "Working hours interval for single day",
                          "items": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "string",
                                "format": "time",
                                "example": "01:00"
                              },
                              "end": {
                                "type": "string",
                                "format": "time",
                                "example": "09:00"
                              }
                            },
                            "required": [
                              "start",
                              "end"
                            ]
                          }
                        },
                        "tuesday": {
                          "type": "array",
                          "description": "Working hours interval for single day",
                          "items": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "string",
                                "format": "time",
                                "example": "01:00"
                              },
                              "end": {
                                "type": "string",
                                "format": "time",
                                "example": "09:00"
                              }
                            },
                            "required": [
                              "start",
                              "end"
                            ]
                          }
                        },
                        "wednesday": {
                          "type": "array",
                          "description": "Working hours interval for single day",
                          "items": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "string",
                                "format": "time",
                                "example": "01:00"
                              },
                              "end": {
                                "type": "string",
                                "format": "time",
                                "example": "09:00"
                              }
                            },
                            "required": [
                              "start",
                              "end"
                            ]
                          }
                        },
                        "thursday": {
                          "type": "array",
                          "description": "Working hours interval for single day",
                          "items": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "string",
                                "format": "time",
                                "example": "01:00"
                              },
                              "end": {
                                "type": "string",
                                "format": "time",
                                "example": "09:00"
                              }
                            },
                            "required": [
                              "start",
                              "end"
                            ]
                          }
                        },
                        "friday": {
                          "type": "array",
                          "description": "Working hours interval for single day",
                          "items": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "string",
                                "format": "time",
                                "example": "01:00"
                              },
                              "end": {
                                "type": "string",
                                "format": "time",
                                "example": "09:00"
                              }
                            },
                            "required": [
                              "start",
                              "end"
                            ]
                          }
                        },
                        "saturday": {
                          "type": "array",
                          "description": "Working hours interval for single day",
                          "items": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "string",
                                "format": "time",
                                "example": "01:00"
                              },
                              "end": {
                                "type": "string",
                                "format": "time",
                                "example": "09:00"
                              }
                            },
                            "required": [
                              "start",
                              "end"
                            ]
                          }
                        },
                        "sunday": {
                          "type": "array",
                          "description": "Working hours interval for single day",
                          "items": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "string",
                                "format": "time",
                                "example": "01:00"
                              },
                              "end": {
                                "type": "string",
                                "format": "time",
                                "example": "09:00"
                              }
                            },
                            "required": [
                              "start",
                              "end"
                            ]
                          }
                        }
                      }
                    },
                    "always_open_for_user_group_ids": {
                      "type": "array",
                      "items": {
                        "type": "number"
                      },
                      "nullable": true,
                      "example": [
                        1,
                        2,
                        3
                      ]
                    }
                  },
                  "required": [
                    "is_always_open"
                  ]
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "name",
                "geoposition",
                "post_code",
                "city",
                "country",
                "region"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "locationCreateDeprecated": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "public_charge_points": {
            "type": "integer",
            "readOnly": true,
            "description": "The number of the charge points in that location that are both public and active"
          },
          "public_charge_points_ids": {
            "readOnly": true,
            "description": "The ids of the charge points in that location that are both public and active",
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "name": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "example": {
              "en": "example",
              "fr": "affaire"
            },
            "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
          },
          "status": {
            "deprecated": true,
            "type": "string",
            "enum": [
              "active",
              "disabled"
            ]
          },
          "description": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "example": {
              "en": "example",
              "fr": "affaire"
            },
            "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
          },
          "detailed_description": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "example": {
              "en": "example",
              "fr": "affaire"
            },
            "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
          },
          "additional_description": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "example": {
              "en": "example",
              "fr": "affaire"
            },
            "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
          },
          "geoposition": {
            "type": "object",
            "required": [
              "latitude",
              "longitude"
            ],
            "properties": {
              "latitude": {
                "type": "number",
                "minimum": -90,
                "maximum": 90
              },
              "longitude": {
                "type": "number",
                "minimum": -180,
                "maximum": 180
              }
            }
          },
          "address": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "example": {
              "en": "example",
              "fr": "affaire"
            },
            "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
          },
          "post_code": {
            "type": "string"
          },
          "region": {
            "anyOf": [
              {
                "title": "US State",
                "description": "For cases when the country is US.",
                "type": "string",
                "enum": [
                  "AL",
                  "AK",
                  "AS",
                  "AZ",
                  "AR",
                  "CA",
                  "CO",
                  "CT",
                  "DE",
                  "DC",
                  "FM",
                  "FL",
                  "GA",
                  "GU",
                  "HI",
                  "ID",
                  "IL",
                  "IN",
                  "IA",
                  "KS",
                  "KY",
                  "LA",
                  "ME",
                  "MH",
                  "MD",
                  "MA",
                  "MI",
                  "MN",
                  "MS",
                  "MO",
                  "MT",
                  "NE",
                  "NV",
                  "NH",
                  "NJ",
                  "NM",
                  "NY",
                  "NC",
                  "ND",
                  "MP",
                  "OH",
                  "OK",
                  "OR",
                  "PW",
                  "PA",
                  "PR",
                  "RI",
                  "SC",
                  "SD",
                  "TN",
                  "TX",
                  "UT",
                  "VT",
                  "VI",
                  "VA",
                  "WA",
                  "WV",
                  "WI",
                  "WY"
                ]
              },
              {
                "title": "Australian State",
                "description": "For cases when the country is AU.",
                "type": "string",
                "enum": [
                  "NSW",
                  "VIC",
                  "QLD",
                  "WA",
                  "SA",
                  "TAS",
                  "ACT",
                  "NT",
                  "JBT",
                  "CX",
                  "NF",
                  "CC",
                  "AQ",
                  "CSI",
                  "ACI",
                  "HM"
                ]
              },
              {
                "title": "Other Region",
                "type": "string",
                "description": "For cases when the country is not US or AU."
              }
            ]
          },
          "city": {
            "type": "string"
          },
          "country": {
            "type": "string",
            "enum": [
              "AF",
              "AX",
              "AL",
              "DZ",
              "AS",
              "AD",
              "AO",
              "AI",
              "AQ",
              "AG",
              "AR",
              "AM",
              "AW",
              "AU",
              "AT",
              "AZ",
              "BS",
              "BH",
              "BD",
              "BB",
              "BY",
              "BE",
              "BZ",
              "BJ",
              "BM",
              "BT",
              "BO",
              "BQ",
              "BA",
              "BW",
              "BV",
              "BR",
              "IO",
              "BN",
              "BG",
              "BF",
              "BI",
              "KH",
              "CM",
              "CA",
              "CV",
              "KY",
              "CF",
              "TD",
              "CL",
              "CN",
              "CX",
              "CC",
              "CO",
              "KM",
              "CG",
              "CD",
              "CK",
              "CR",
              "CI",
              "HR",
              "CU",
              "CW",
              "CY",
              "CZ",
              "DK",
              "DJ",
              "DM",
              "DO",
              "EC",
              "EG",
              "SV",
              "GQ",
              "ER",
              "EE",
              "ET",
              "FK",
              "FO",
              "FJ",
              "FI",
              "FR",
              "GF",
              "PF",
              "TF",
              "GA",
              "GM",
              "GE",
              "DE",
              "GH",
              "GI",
              "GR",
              "GL",
              "GD",
              "GP",
              "GU",
              "GT",
              "GG",
              "GN",
              "GW",
              "GY",
              "HT",
              "HM",
              "VA",
              "HN",
              "HK",
              "HU",
              "IS",
              "IN",
              "ID",
              "IR",
              "IQ",
              "IE",
              "IM",
              "IL",
              "IT",
              "JM",
              "JP",
              "JE",
              "JO",
              "KZ",
              "KE",
              "KI",
              "KP",
              "KR",
              "XK",
              "KW",
              "KG",
              "LA",
              "LV",
              "LB",
              "LS",
              "LR",
              "LY",
              "LI",
              "LT",
              "LU",
              "MO",
              "MK",
              "MG",
              "MW",
              "MY",
              "MV",
              "ML",
              "MT",
              "MH",
              "MQ",
              "MR",
              "MU",
              "YT",
              "MX",
              "FM",
              "MD",
              "MC",
              "MN",
              "ME",
              "MS",
              "MA",
              "MZ",
              "MM",
              "NA",
              "NR",
              "NP",
              "NL",
              "NC",
              "NZ",
              "NI",
              "NE",
              "NG",
              "NU",
              "NF",
              "MP",
              "NO",
              "OM",
              "PK",
              "PW",
              "PS",
              "PA",
              "PG",
              "PY",
              "PE",
              "PH",
              "PN",
              "PL",
              "PT",
              "PR",
              "QA",
              "RE",
              "RO",
              "RU",
              "RW",
              "BL",
              "SH",
              "KN",
              "LC",
              "MF",
              "PM",
              "VC",
              "WS",
              "SM",
              "ST",
              "SA",
              "SN",
              "RS",
              "SC",
              "SL",
              "SG",
              "SX",
              "SK",
              "SI",
              "SB",
              "SO",
              "ZA",
              "GS",
              "SS",
              "ES",
              "LK",
              "SD",
              "SR",
              "SJ",
              "SZ",
              "SE",
              "CH",
              "SY",
              "TW",
              "TJ",
              "TZ",
              "TH",
              "TL",
              "TG",
              "TK",
              "TO",
              "TT",
              "TN",
              "TR",
              "TM",
              "TC",
              "TV",
              "UG",
              "UA",
              "AE",
              "GB",
              "US",
              "UM",
              "UY",
              "UZ",
              "VU",
              "VE",
              "VN",
              "VG",
              "VI",
              "WF",
              "EH",
              "YE",
              "ZM",
              "ZW"
            ]
          },
          "external_id": {
            "type": "string",
            "nullable": true,
            "description": "The field should have unique value"
          },
          "timezone": {
            "type": "string",
            "nullable": true,
            "description": "A valid timezone in the form of Area/Location, required when `Allow Multiple Time Zones` option is turned on in the Timezone Setting."
          },
          "location_image": {
            "type": "object",
            "nullable": true,
            "readOnly": true,
            "properties": {
              "original": {
                "type": "string",
                "description": "URL to the original image"
              },
              "thumbnail": {
                "type": "string",
                "description": "URL to a thumbnail image"
              },
              "mimeType": {
                "type": "string"
              },
              "category": {
                "description": "Category of an image associated with a location:\n- **charger**: Photo of the charging station or charger\n- **entrance**: Photo of the entrance to the location\n- **location**: Photo of the location overview\n- **network**: Logo of the network or operator group\n- **operator**: Logo of the operator\n- **other**: Other image\n- **owner**: Logo of the owner\n",
                "type": "string",
                "enum": [
                  "charger",
                  "entrance",
                  "location",
                  "network",
                  "operator",
                  "other",
                  "owner"
                ]
              }
            },
            "required": [
              "original",
              "mimeType"
            ]
          },
          "images": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "original": {
                  "type": "string",
                  "description": "URL to the original image"
                },
                "thumbnail": {
                  "type": "string",
                  "description": "URL to a thumbnail image"
                },
                "mimeType": {
                  "type": "string"
                },
                "category": {
                  "description": "Category of an image associated with a location:\n- **charger**: Photo of the charging station or charger\n- **entrance**: Photo of the entrance to the location\n- **location**: Photo of the location overview\n- **network**: Logo of the network or operator group\n- **operator**: Logo of the operator\n- **other**: Other image\n- **owner**: Logo of the owner\n",
                  "type": "string",
                  "enum": [
                    "charger",
                    "entrance",
                    "location",
                    "network",
                    "operator",
                    "other",
                    "owner"
                  ]
                }
              },
              "required": [
                "original",
                "mimeType"
              ]
            },
            "readOnly": true
          },
          "working_hours": {
            "type": "object",
            "properties": {
              "is_always_open": {
                "type": "boolean",
                "description": "Indicates that the location is always open for charging. If set to false, the `hours` field is required, otherwise it should be ignored.\n"
              },
              "stop_session_outside_working_hours": {
                "type": "boolean",
                "nullable": true,
                "description": "If a User has initiated a charging session during Working hours but it is already outside of the Working hours, the session will be terminated by the system. This is valid only for Users that are not included in one of the User Groups for which the Location is available 24/7.\n"
              },
              "hours": {
                "type": "object",
                "nullable": true,
                "description": "The times should be considered to be in the location/tenant timezone.\nIf a day does not have any entries, it will be treated as closed for the whole day.\n",
                "properties": {
                  "monday": {
                    "type": "array",
                    "description": "Working hours interval for single day",
                    "items": {
                      "type": "object",
                      "properties": {
                        "start": {
                          "type": "string",
                          "format": "time",
                          "example": "01:00"
                        },
                        "end": {
                          "type": "string",
                          "format": "time",
                          "example": "09:00"
                        }
                      },
                      "required": [
                        "start",
                        "end"
                      ]
                    }
                  },
                  "tuesday": {
                    "type": "array",
                    "description": "Working hours interval for single day",
                    "items": {
                      "type": "object",
                      "properties": {
                        "start": {
                          "type": "string",
                          "format": "time",
                          "example": "01:00"
                        },
                        "end": {
                          "type": "string",
                          "format": "time",
                          "example": "09:00"
                        }
                      },
                      "required": [
                        "start",
                        "end"
                      ]
                    }
                  },
                  "wednesday": {
                    "type": "array",
                    "description": "Working hours interval for single day",
                    "items": {
                      "type": "object",
                      "properties": {
                        "start": {
                          "type": "string",
                          "format": "time",
                          "example": "01:00"
                        },
                        "end": {
                          "type": "string",
                          "format": "time",
                          "example": "09:00"
                        }
                      },
                      "required": [
                        "start",
                        "end"
                      ]
                    }
                  },
                  "thursday": {
                    "type": "array",
                    "description": "Working hours interval for single day",
                    "items": {
                      "type": "object",
                      "properties": {
                        "start": {
                          "type": "string",
                          "format": "time",
                          "example": "01:00"
                        },
                        "end": {
                          "type": "string",
                          "format": "time",
                          "example": "09:00"
                        }
                      },
                      "required": [
                        "start",
                        "end"
                      ]
                    }
                  },
                  "friday": {
                    "type": "array",
                    "description": "Working hours interval for single day",
                    "items": {
                      "type": "object",
                      "properties": {
                        "start": {
                          "type": "string",
                          "format": "time",
                          "example": "01:00"
                        },
                        "end": {
                          "type": "string",
                          "format": "time",
                          "example": "09:00"
                        }
                      },
                      "required": [
                        "start",
                        "end"
                      ]
                    }
                  },
                  "saturday": {
                    "type": "array",
                    "description": "Working hours interval for single day",
                    "items": {
                      "type": "object",
                      "properties": {
                        "start": {
                          "type": "string",
                          "format": "time",
                          "example": "01:00"
                        },
                        "end": {
                          "type": "string",
                          "format": "time",
                          "example": "09:00"
                        }
                      },
                      "required": [
                        "start",
                        "end"
                      ]
                    }
                  },
                  "sunday": {
                    "type": "array",
                    "description": "Working hours interval for single day",
                    "items": {
                      "type": "object",
                      "properties": {
                        "start": {
                          "type": "string",
                          "format": "time",
                          "example": "01:00"
                        },
                        "end": {
                          "type": "string",
                          "format": "time",
                          "example": "09:00"
                        }
                      },
                      "required": [
                        "start",
                        "end"
                      ]
                    }
                  }
                }
              },
              "always_open_for_user_group_ids": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "nullable": true,
                "example": [
                  1,
                  2,
                  3
                ]
              }
            },
            "required": [
              "is_always_open"
            ]
          },
          "lastUpdatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "ISO 8601 formatted date",
            "readOnly": true
          }
        },
        "required": [
          "name",
          "geoposition",
          "post_code",
          "city",
          "country",
          "region"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "locationReadDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "public_charge_points": {
                "type": "integer",
                "readOnly": true,
                "description": "The number of the charge points in that location that are both public and active"
              },
              "public_charge_points_ids": {
                "readOnly": true,
                "description": "The ids of the charge points in that location that are both public and active",
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "name": {
                "type": "object",
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "status": {
                "deprecated": true,
                "type": "string",
                "enum": [
                  "active",
                  "disabled"
                ]
              },
              "description": {
                "type": "object",
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "detailed_description": {
                "type": "object",
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "additional_description": {
                "type": "object",
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "geoposition": {
                "type": "object",
                "required": [
                  "latitude",
                  "longitude"
                ],
                "properties": {
                  "latitude": {
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90
                  },
                  "longitude": {
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180
                  }
                }
              },
              "address": {
                "type": "object",
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "post_code": {
                "type": "string"
              },
              "region": {
                "anyOf": [
                  {
                    "title": "US State",
                    "description": "For cases when the country is US.",
                    "type": "string",
                    "enum": [
                      "AL",
                      "AK",
                      "AS",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FM",
                      "FL",
                      "GA",
                      "GU",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MH",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "MP",
                      "OH",
                      "OK",
                      "OR",
                      "PW",
                      "PA",
                      "PR",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VI",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY"
                    ]
                  },
                  {
                    "title": "Australian State",
                    "description": "For cases when the country is AU.",
                    "type": "string",
                    "enum": [
                      "NSW",
                      "VIC",
                      "QLD",
                      "WA",
                      "SA",
                      "TAS",
                      "ACT",
                      "NT",
                      "JBT",
                      "CX",
                      "NF",
                      "CC",
                      "AQ",
                      "CSI",
                      "ACI",
                      "HM"
                    ]
                  },
                  {
                    "title": "Other Region",
                    "type": "string",
                    "description": "For cases when the country is not US or AU."
                  }
                ]
              },
              "city": {
                "type": "string"
              },
              "country": {
                "type": "string",
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW"
                ]
              },
              "external_id": {
                "type": "string",
                "nullable": true,
                "description": "The field should have unique value"
              },
              "timezone": {
                "type": "string",
                "nullable": true,
                "description": "A valid timezone in the form of Area/Location, required when `Allow Multiple Time Zones` option is turned on in the Timezone Setting."
              },
              "location_image": {
                "type": "object",
                "nullable": true,
                "readOnly": true,
                "properties": {
                  "original": {
                    "type": "string",
                    "description": "URL to the original image"
                  },
                  "thumbnail": {
                    "type": "string",
                    "description": "URL to a thumbnail image"
                  },
                  "mimeType": {
                    "type": "string"
                  },
                  "category": {
                    "description": "Category of an image associated with a location:\n- **charger**: Photo of the charging station or charger\n- **entrance**: Photo of the entrance to the location\n- **location**: Photo of the location overview\n- **network**: Logo of the network or operator group\n- **operator**: Logo of the operator\n- **other**: Other image\n- **owner**: Logo of the owner\n",
                    "type": "string",
                    "enum": [
                      "charger",
                      "entrance",
                      "location",
                      "network",
                      "operator",
                      "other",
                      "owner"
                    ]
                  }
                },
                "required": [
                  "original",
                  "mimeType"
                ]
              },
              "images": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "original": {
                      "type": "string",
                      "description": "URL to the original image"
                    },
                    "thumbnail": {
                      "type": "string",
                      "description": "URL to a thumbnail image"
                    },
                    "mimeType": {
                      "type": "string"
                    },
                    "category": {
                      "description": "Category of an image associated with a location:\n- **charger**: Photo of the charging station or charger\n- **entrance**: Photo of the entrance to the location\n- **location**: Photo of the location overview\n- **network**: Logo of the network or operator group\n- **operator**: Logo of the operator\n- **other**: Other image\n- **owner**: Logo of the owner\n",
                      "type": "string",
                      "enum": [
                        "charger",
                        "entrance",
                        "location",
                        "network",
                        "operator",
                        "other",
                        "owner"
                      ]
                    }
                  },
                  "required": [
                    "original",
                    "mimeType"
                  ]
                },
                "readOnly": true
              },
              "working_hours": {
                "type": "object",
                "properties": {
                  "is_always_open": {
                    "type": "boolean",
                    "description": "Indicates that the location is always open for charging. If set to false, the `hours` field is required, otherwise it should be ignored.\n"
                  },
                  "stop_session_outside_working_hours": {
                    "type": "boolean",
                    "nullable": true,
                    "description": "If a User has initiated a charging session during Working hours but it is already outside of the Working hours, the session will be terminated by the system. This is valid only for Users that are not included in one of the User Groups for which the Location is available 24/7.\n"
                  },
                  "hours": {
                    "type": "object",
                    "nullable": true,
                    "description": "The times should be considered to be in the location/tenant timezone.\nIf a day does not have any entries, it will be treated as closed for the whole day.\n",
                    "properties": {
                      "monday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "tuesday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "wednesday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "thursday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "friday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "saturday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "sunday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      }
                    }
                  },
                  "always_open_for_user_group_ids": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "nullable": true,
                    "example": [
                      1,
                      2,
                      3
                    ]
                  }
                },
                "required": [
                  "is_always_open"
                ]
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "name",
              "geoposition",
              "post_code",
              "city",
              "country",
              "region"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "locationDeleteDeprecated": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "locationUpdateDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "public_charge_points": {
            "type": "integer",
            "readOnly": true,
            "description": "The number of the charge points in that location that are both public and active"
          },
          "public_charge_points_ids": {
            "readOnly": true,
            "description": "The ids of the charge points in that location that are both public and active",
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "name": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "example": {
              "en": "example",
              "fr": "affaire"
            },
            "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
          },
          "status": {
            "deprecated": true,
            "type": "string",
            "enum": [
              "active",
              "disabled"
            ]
          },
          "description": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "example": {
              "en": "example",
              "fr": "affaire"
            },
            "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
          },
          "detailed_description": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "example": {
              "en": "example",
              "fr": "affaire"
            },
            "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
          },
          "additional_description": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "example": {
              "en": "example",
              "fr": "affaire"
            },
            "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
          },
          "geoposition": {
            "type": "object",
            "required": [
              "latitude",
              "longitude"
            ],
            "properties": {
              "latitude": {
                "type": "number",
                "minimum": -90,
                "maximum": 90
              },
              "longitude": {
                "type": "number",
                "minimum": -180,
                "maximum": 180
              }
            }
          },
          "address": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "example": {
              "en": "example",
              "fr": "affaire"
            },
            "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
          },
          "post_code": {
            "type": "string"
          },
          "region": {
            "anyOf": [
              {
                "title": "US State",
                "description": "For cases when the country is US.",
                "type": "string",
                "enum": [
                  "AL",
                  "AK",
                  "AS",
                  "AZ",
                  "AR",
                  "CA",
                  "CO",
                  "CT",
                  "DE",
                  "DC",
                  "FM",
                  "FL",
                  "GA",
                  "GU",
                  "HI",
                  "ID",
                  "IL",
                  "IN",
                  "IA",
                  "KS",
                  "KY",
                  "LA",
                  "ME",
                  "MH",
                  "MD",
                  "MA",
                  "MI",
                  "MN",
                  "MS",
                  "MO",
                  "MT",
                  "NE",
                  "NV",
                  "NH",
                  "NJ",
                  "NM",
                  "NY",
                  "NC",
                  "ND",
                  "MP",
                  "OH",
                  "OK",
                  "OR",
                  "PW",
                  "PA",
                  "PR",
                  "RI",
                  "SC",
                  "SD",
                  "TN",
                  "TX",
                  "UT",
                  "VT",
                  "VI",
                  "VA",
                  "WA",
                  "WV",
                  "WI",
                  "WY"
                ]
              },
              {
                "title": "Australian State",
                "description": "For cases when the country is AU.",
                "type": "string",
                "enum": [
                  "NSW",
                  "VIC",
                  "QLD",
                  "WA",
                  "SA",
                  "TAS",
                  "ACT",
                  "NT",
                  "JBT",
                  "CX",
                  "NF",
                  "CC",
                  "AQ",
                  "CSI",
                  "ACI",
                  "HM"
                ]
              },
              {
                "title": "Other Region",
                "type": "string",
                "description": "For cases when the country is not US or AU."
              }
            ]
          },
          "city": {
            "type": "string"
          },
          "country": {
            "type": "string",
            "enum": [
              "AF",
              "AX",
              "AL",
              "DZ",
              "AS",
              "AD",
              "AO",
              "AI",
              "AQ",
              "AG",
              "AR",
              "AM",
              "AW",
              "AU",
              "AT",
              "AZ",
              "BS",
              "BH",
              "BD",
              "BB",
              "BY",
              "BE",
              "BZ",
              "BJ",
              "BM",
              "BT",
              "BO",
              "BQ",
              "BA",
              "BW",
              "BV",
              "BR",
              "IO",
              "BN",
              "BG",
              "BF",
              "BI",
              "KH",
              "CM",
              "CA",
              "CV",
              "KY",
              "CF",
              "TD",
              "CL",
              "CN",
              "CX",
              "CC",
              "CO",
              "KM",
              "CG",
              "CD",
              "CK",
              "CR",
              "CI",
              "HR",
              "CU",
              "CW",
              "CY",
              "CZ",
              "DK",
              "DJ",
              "DM",
              "DO",
              "EC",
              "EG",
              "SV",
              "GQ",
              "ER",
              "EE",
              "ET",
              "FK",
              "FO",
              "FJ",
              "FI",
              "FR",
              "GF",
              "PF",
              "TF",
              "GA",
              "GM",
              "GE",
              "DE",
              "GH",
              "GI",
              "GR",
              "GL",
              "GD",
              "GP",
              "GU",
              "GT",
              "GG",
              "GN",
              "GW",
              "GY",
              "HT",
              "HM",
              "VA",
              "HN",
              "HK",
              "HU",
              "IS",
              "IN",
              "ID",
              "IR",
              "IQ",
              "IE",
              "IM",
              "IL",
              "IT",
              "JM",
              "JP",
              "JE",
              "JO",
              "KZ",
              "KE",
              "KI",
              "KP",
              "KR",
              "XK",
              "KW",
              "KG",
              "LA",
              "LV",
              "LB",
              "LS",
              "LR",
              "LY",
              "LI",
              "LT",
              "LU",
              "MO",
              "MK",
              "MG",
              "MW",
              "MY",
              "MV",
              "ML",
              "MT",
              "MH",
              "MQ",
              "MR",
              "MU",
              "YT",
              "MX",
              "FM",
              "MD",
              "MC",
              "MN",
              "ME",
              "MS",
              "MA",
              "MZ",
              "MM",
              "NA",
              "NR",
              "NP",
              "NL",
              "NC",
              "NZ",
              "NI",
              "NE",
              "NG",
              "NU",
              "NF",
              "MP",
              "NO",
              "OM",
              "PK",
              "PW",
              "PS",
              "PA",
              "PG",
              "PY",
              "PE",
              "PH",
              "PN",
              "PL",
              "PT",
              "PR",
              "QA",
              "RE",
              "RO",
              "RU",
              "RW",
              "BL",
              "SH",
              "KN",
              "LC",
              "MF",
              "PM",
              "VC",
              "WS",
              "SM",
              "ST",
              "SA",
              "SN",
              "RS",
              "SC",
              "SL",
              "SG",
              "SX",
              "SK",
              "SI",
              "SB",
              "SO",
              "ZA",
              "GS",
              "SS",
              "ES",
              "LK",
              "SD",
              "SR",
              "SJ",
              "SZ",
              "SE",
              "CH",
              "SY",
              "TW",
              "TJ",
              "TZ",
              "TH",
              "TL",
              "TG",
              "TK",
              "TO",
              "TT",
              "TN",
              "TR",
              "TM",
              "TC",
              "TV",
              "UG",
              "UA",
              "AE",
              "GB",
              "US",
              "UM",
              "UY",
              "UZ",
              "VU",
              "VE",
              "VN",
              "VG",
              "VI",
              "WF",
              "EH",
              "YE",
              "ZM",
              "ZW"
            ]
          },
          "external_id": {
            "type": "string",
            "nullable": true,
            "description": "The field should have unique value"
          },
          "timezone": {
            "type": "string",
            "nullable": true,
            "description": "A valid timezone in the form of Area/Location, required when `Allow Multiple Time Zones` option is turned on in the Timezone Setting."
          },
          "location_image": {
            "type": "object",
            "nullable": true,
            "readOnly": true,
            "properties": {
              "original": {
                "type": "string",
                "description": "URL to the original image"
              },
              "thumbnail": {
                "type": "string",
                "description": "URL to a thumbnail image"
              },
              "mimeType": {
                "type": "string"
              },
              "category": {
                "description": "Category of an image associated with a location:\n- **charger**: Photo of the charging station or charger\n- **entrance**: Photo of the entrance to the location\n- **location**: Photo of the location overview\n- **network**: Logo of the network or operator group\n- **operator**: Logo of the operator\n- **other**: Other image\n- **owner**: Logo of the owner\n",
                "type": "string",
                "enum": [
                  "charger",
                  "entrance",
                  "location",
                  "network",
                  "operator",
                  "other",
                  "owner"
                ]
              }
            },
            "required": [
              "original",
              "mimeType"
            ]
          },
          "images": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "original": {
                  "type": "string",
                  "description": "URL to the original image"
                },
                "thumbnail": {
                  "type": "string",
                  "description": "URL to a thumbnail image"
                },
                "mimeType": {
                  "type": "string"
                },
                "category": {
                  "description": "Category of an image associated with a location:\n- **charger**: Photo of the charging station or charger\n- **entrance**: Photo of the entrance to the location\n- **location**: Photo of the location overview\n- **network**: Logo of the network or operator group\n- **operator**: Logo of the operator\n- **other**: Other image\n- **owner**: Logo of the owner\n",
                  "type": "string",
                  "enum": [
                    "charger",
                    "entrance",
                    "location",
                    "network",
                    "operator",
                    "other",
                    "owner"
                  ]
                }
              },
              "required": [
                "original",
                "mimeType"
              ]
            },
            "readOnly": true
          },
          "working_hours": {
            "type": "object",
            "properties": {
              "is_always_open": {
                "type": "boolean",
                "description": "Indicates that the location is always open for charging. If set to false, the `hours` field is required, otherwise it should be ignored.\n"
              },
              "stop_session_outside_working_hours": {
                "type": "boolean",
                "nullable": true,
                "description": "If a User has initiated a charging session during Working hours but it is already outside of the Working hours, the session will be terminated by the system. This is valid only for Users that are not included in one of the User Groups for which the Location is available 24/7.\n"
              },
              "hours": {
                "type": "object",
                "nullable": true,
                "description": "The times should be considered to be in the location/tenant timezone.\nIf a day does not have any entries, it will be treated as closed for the whole day.\n",
                "properties": {
                  "monday": {
                    "type": "array",
                    "description": "Working hours interval for single day",
                    "items": {
                      "type": "object",
                      "properties": {
                        "start": {
                          "type": "string",
                          "format": "time",
                          "example": "01:00"
                        },
                        "end": {
                          "type": "string",
                          "format": "time",
                          "example": "09:00"
                        }
                      },
                      "required": [
                        "start",
                        "end"
                      ]
                    }
                  },
                  "tuesday": {
                    "type": "array",
                    "description": "Working hours interval for single day",
                    "items": {
                      "type": "object",
                      "properties": {
                        "start": {
                          "type": "string",
                          "format": "time",
                          "example": "01:00"
                        },
                        "end": {
                          "type": "string",
                          "format": "time",
                          "example": "09:00"
                        }
                      },
                      "required": [
                        "start",
                        "end"
                      ]
                    }
                  },
                  "wednesday": {
                    "type": "array",
                    "description": "Working hours interval for single day",
                    "items": {
                      "type": "object",
                      "properties": {
                        "start": {
                          "type": "string",
                          "format": "time",
                          "example": "01:00"
                        },
                        "end": {
                          "type": "string",
                          "format": "time",
                          "example": "09:00"
                        }
                      },
                      "required": [
                        "start",
                        "end"
                      ]
                    }
                  },
                  "thursday": {
                    "type": "array",
                    "description": "Working hours interval for single day",
                    "items": {
                      "type": "object",
                      "properties": {
                        "start": {
                          "type": "string",
                          "format": "time",
                          "example": "01:00"
                        },
                        "end": {
                          "type": "string",
                          "format": "time",
                          "example": "09:00"
                        }
                      },
                      "required": [
                        "start",
                        "end"
                      ]
                    }
                  },
                  "friday": {
                    "type": "array",
                    "description": "Working hours interval for single day",
                    "items": {
                      "type": "object",
                      "properties": {
                        "start": {
                          "type": "string",
                          "format": "time",
                          "example": "01:00"
                        },
                        "end": {
                          "type": "string",
                          "format": "time",
                          "example": "09:00"
                        }
                      },
                      "required": [
                        "start",
                        "end"
                      ]
                    }
                  },
                  "saturday": {
                    "type": "array",
                    "description": "Working hours interval for single day",
                    "items": {
                      "type": "object",
                      "properties": {
                        "start": {
                          "type": "string",
                          "format": "time",
                          "example": "01:00"
                        },
                        "end": {
                          "type": "string",
                          "format": "time",
                          "example": "09:00"
                        }
                      },
                      "required": [
                        "start",
                        "end"
                      ]
                    }
                  },
                  "sunday": {
                    "type": "array",
                    "description": "Working hours interval for single day",
                    "items": {
                      "type": "object",
                      "properties": {
                        "start": {
                          "type": "string",
                          "format": "time",
                          "example": "01:00"
                        },
                        "end": {
                          "type": "string",
                          "format": "time",
                          "example": "09:00"
                        }
                      },
                      "required": [
                        "start",
                        "end"
                      ]
                    }
                  }
                }
              },
              "always_open_for_user_group_ids": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "nullable": true,
                "example": [
                  1,
                  2,
                  3
                ]
              }
            },
            "required": [
              "is_always_open"
            ]
          },
          "lastUpdatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "ISO 8601 formatted date",
            "readOnly": true
          }
        },
        "required": [
          "name",
          "geoposition",
          "post_code",
          "city",
          "country",
          "region"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "locationsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "required": [
                "id",
                "operatorId",
                "name",
                "geoposition",
                "address",
                "city",
                "country",
                "roamingOperatorId",
                "isRoaming",
                "accessibilityType"
              ],
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "nullable": true,
                  "readOnly": true,
                  "description": "The ID of the operator this resource belongs to. Null for roaming locations.",
                  "example": 1
                },
                "externalId": {
                  "type": "string"
                },
                "name": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "status": {
                  "type": "string",
                  "description": "Deprecated.",
                  "enum": [
                    "enabled",
                    "disabled"
                  ]
                },
                "description": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "shortDescription": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "additionalDescription": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "geoposition": {
                  "type": "object",
                  "properties": {
                    "latitude": {
                      "type": "number",
                      "minimum": -90,
                      "maximum": 90
                    },
                    "longitude": {
                      "type": "number",
                      "minimum": -180,
                      "maximum": 180
                    }
                  },
                  "required": [
                    "latitude",
                    "longitude"
                  ]
                },
                "address": {
                  "description": "The full address of the location",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "streetAddress": {
                  "description": "The street address of the location",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "city": {
                  "type": "string",
                  "nullable": true
                },
                "region": {
                  "type": "string",
                  "nullable": true,
                  "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
                },
                "state": {
                  "description": "When the selected country is one of US, AU, CA, UM or RO",
                  "anyOf": [
                    {
                      "title": "US State",
                      "description": "When the country is US.",
                      "type": "string",
                      "enum": [
                        "AL",
                        "AK",
                        "AS",
                        "AZ",
                        "AR",
                        "CA",
                        "CO",
                        "CT",
                        "DE",
                        "DC",
                        "FM",
                        "FL",
                        "GA",
                        "GU",
                        "HI",
                        "ID",
                        "IL",
                        "IN",
                        "IA",
                        "KS",
                        "KY",
                        "LA",
                        "ME",
                        "MH",
                        "MD",
                        "MA",
                        "MI",
                        "MN",
                        "MS",
                        "MO",
                        "MT",
                        "NE",
                        "NV",
                        "NH",
                        "NJ",
                        "NM",
                        "NY",
                        "NC",
                        "ND",
                        "MP",
                        "OH",
                        "OK",
                        "OR",
                        "PW",
                        "PA",
                        "PR",
                        "RI",
                        "SC",
                        "SD",
                        "TN",
                        "TX",
                        "UT",
                        "VT",
                        "VI",
                        "VA",
                        "WA",
                        "WV",
                        "WI",
                        "WY"
                      ]
                    },
                    {
                      "title": "Australian State",
                      "description": "When the country is AU.",
                      "type": "string",
                      "enum": [
                        "NSW",
                        "VIC",
                        "QLD",
                        "WA",
                        "SA",
                        "TAS",
                        "ACT",
                        "NT",
                        "JBT",
                        "CX",
                        "NF",
                        "CC",
                        "AQ",
                        "CSI",
                        "ACI",
                        "HM"
                      ]
                    },
                    {
                      "title": "Canadian Province",
                      "description": "When the country is CA.",
                      "type": "string",
                      "enum": [
                        "AB",
                        "BC",
                        "MB",
                        "NB",
                        "NL",
                        "NT",
                        "NS",
                        "NU",
                        "ON",
                        "PE",
                        "QC",
                        "SK",
                        "YT"
                      ]
                    },
                    {
                      "title": "US Minor Outlying Islands Territory",
                      "description": "When the country is UM.",
                      "type": "string",
                      "enum": [
                        "81",
                        "84",
                        "85",
                        "67",
                        "89",
                        "71",
                        "76",
                        "95",
                        "79"
                      ]
                    },
                    {
                      "title": "Romanian County",
                      "description": "When the country is RO.",
                      "type": "string",
                      "enum": [
                        "AB",
                        "AR",
                        "AG",
                        "BC",
                        "BH",
                        "BN",
                        "BT",
                        "BV",
                        "BR",
                        "B",
                        "BZ",
                        "CL",
                        "CS",
                        "CT",
                        "CV",
                        "DB",
                        "DJ",
                        "GL",
                        "GR",
                        "GJ",
                        "HR",
                        "HD",
                        "IL",
                        "IS",
                        "IF",
                        "MM",
                        "MH",
                        "MS",
                        "NT",
                        "OT",
                        "PH",
                        "SM",
                        "SJ",
                        "SB",
                        "SV",
                        "TR",
                        "TM",
                        "TL",
                        "VS",
                        "VL",
                        "VN"
                      ]
                    }
                  ]
                },
                "country": {
                  "type": "string",
                  "enum": [
                    "AF",
                    "AX",
                    "AL",
                    "DZ",
                    "AS",
                    "AD",
                    "AO",
                    "AI",
                    "AQ",
                    "AG",
                    "AR",
                    "AM",
                    "AW",
                    "AU",
                    "AT",
                    "AZ",
                    "BS",
                    "BH",
                    "BD",
                    "BB",
                    "BY",
                    "BE",
                    "BZ",
                    "BJ",
                    "BM",
                    "BT",
                    "BO",
                    "BQ",
                    "BA",
                    "BW",
                    "BV",
                    "BR",
                    "IO",
                    "BN",
                    "BG",
                    "BF",
                    "BI",
                    "KH",
                    "CM",
                    "CA",
                    "CV",
                    "KY",
                    "CF",
                    "TD",
                    "CL",
                    "CN",
                    "CX",
                    "CC",
                    "CO",
                    "KM",
                    "CG",
                    "CD",
                    "CK",
                    "CR",
                    "CI",
                    "HR",
                    "CU",
                    "CW",
                    "CY",
                    "CZ",
                    "DK",
                    "DJ",
                    "DM",
                    "DO",
                    "EC",
                    "EG",
                    "SV",
                    "GQ",
                    "ER",
                    "EE",
                    "ET",
                    "FK",
                    "FO",
                    "FJ",
                    "FI",
                    "FR",
                    "GF",
                    "PF",
                    "TF",
                    "GA",
                    "GM",
                    "GE",
                    "DE",
                    "GH",
                    "GI",
                    "GR",
                    "GL",
                    "GD",
                    "GP",
                    "GU",
                    "GT",
                    "GG",
                    "GN",
                    "GW",
                    "GY",
                    "HT",
                    "HM",
                    "VA",
                    "HN",
                    "HK",
                    "HU",
                    "IS",
                    "IN",
                    "ID",
                    "IR",
                    "IQ",
                    "IE",
                    "IM",
                    "IL",
                    "IT",
                    "JM",
                    "JP",
                    "JE",
                    "JO",
                    "KZ",
                    "KE",
                    "KI",
                    "KP",
                    "KR",
                    "XK",
                    "KW",
                    "KG",
                    "LA",
                    "LV",
                    "LB",
                    "LS",
                    "LR",
                    "LY",
                    "LI",
                    "LT",
                    "LU",
                    "MO",
                    "MK",
                    "MG",
                    "MW",
                    "MY",
                    "MV",
                    "ML",
                    "MT",
                    "MH",
                    "MQ",
                    "MR",
                    "MU",
                    "YT",
                    "MX",
                    "FM",
                    "MD",
                    "MC",
                    "MN",
                    "ME",
                    "MS",
                    "MA",
                    "MZ",
                    "MM",
                    "NA",
                    "NR",
                    "NP",
                    "NL",
                    "NC",
                    "NZ",
                    "NI",
                    "NE",
                    "NG",
                    "NU",
                    "NF",
                    "MP",
                    "NO",
                    "OM",
                    "PK",
                    "PW",
                    "PS",
                    "PA",
                    "PG",
                    "PY",
                    "PE",
                    "PH",
                    "PN",
                    "PL",
                    "PT",
                    "PR",
                    "QA",
                    "RE",
                    "RO",
                    "RU",
                    "RW",
                    "BL",
                    "SH",
                    "KN",
                    "LC",
                    "MF",
                    "PM",
                    "VC",
                    "WS",
                    "SM",
                    "ST",
                    "SA",
                    "SN",
                    "RS",
                    "SC",
                    "SL",
                    "SG",
                    "SX",
                    "SK",
                    "SI",
                    "SB",
                    "SO",
                    "ZA",
                    "GS",
                    "SS",
                    "ES",
                    "LK",
                    "SD",
                    "SR",
                    "SJ",
                    "SZ",
                    "SE",
                    "CH",
                    "SY",
                    "TW",
                    "TJ",
                    "TZ",
                    "TH",
                    "TL",
                    "TG",
                    "TK",
                    "TO",
                    "TT",
                    "TN",
                    "TR",
                    "TM",
                    "TC",
                    "TV",
                    "UG",
                    "UA",
                    "AE",
                    "GB",
                    "US",
                    "UM",
                    "UY",
                    "UZ",
                    "VU",
                    "VE",
                    "VN",
                    "VG",
                    "VI",
                    "WF",
                    "EH",
                    "YE",
                    "ZM",
                    "ZW"
                  ]
                },
                "postCode": {
                  "type": "string",
                  "nullable": true,
                  "description": "Postal code of the location. Required for most countries — omitting it for those will result in a validation error."
                },
                "timezone": {
                  "type": "string",
                  "nullable": true,
                  "description": "A valid timezone in the form of Area/Location, required when `Allow Multiple Time Zones` option is turned on in the Timezone Setting."
                },
                "parkingType": {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    "ALONG_MOTORWAY",
                    "PARKING_GARAGE",
                    "PARKING_LOT",
                    "ON_DRIVEWAY",
                    "ON_STREET",
                    "UNDERGROUND_GARAGE",
                    "IS_TENT",
                    "SECURE"
                  ],
                  "description": "Indicates the type of parking available at the charging location. This field helps EV drivers understand the physical parking environment before arrival.\n\n**Valid values:**\n- `ALONG_MOTORWAY` - Located along a motorway/highway, typically at rest areas or service stations\n- `PARKING_GARAGE` - Multi-level parking garage structure, either above-ground or mixed-use\n- `PARKING_LOT` - Surface parking lot, open-air parking area\n- `ON_DRIVEWAY` - Located on a private driveway, typically residential or small business\n- `ON_STREET` - Street-side parking, curbside charging locations\n- `UNDERGROUND_GARAGE` - Underground parking structure, subterranean parking facility\n- `IS_TENT` - Site located on the Trans-European Transport Network (Lithuania NAP / Via Lietuva extension; may not be interpreted by all roaming partners)\n- `SECURE` - Restricted-access parking such as gated lots, key-card access, or staffed parking (Lithuania NAP / Via Lietuva extension; may not be interpreted by all roaming partners)\n\n**Request behavior (POST/PATCH):**\n- Optional field when creating or updating locations\n- Send `null` to clear the parking type\n- Omit the field in PATCH requests to leave the existing value unchanged\n\n**Response behavior (GET):**\n- Field is omitted from the response when no parking type is configured (null in database)\n- When present, returns one of the valid enum values listed above\n"
                },
                "accessibilityType": {
                  "description": "Determines how the accessibility of the location is reported to OICP (Hubject) roaming partners.\n\n- `free_publicly_accessible` - The charge point is reachable without a fee\n- `restricted_access` - Permission is required to reach the charge point (e.g. company or building complex)\n- `paid_publicly_accessible` - A fee is required to reach the charge point (e.g. a paid parking garage)\n",
                  "type": "string",
                  "enum": [
                    "free_publicly_accessible",
                    "restricted_access",
                    "paid_publicly_accessible"
                  ]
                },
                "accessMethods": {
                  "type": "array",
                  "nullable": true,
                  "items": {
                    "type": "string",
                    "enum": [
                      "OPEN",
                      "TOKEN",
                      "LICENSE_PLATE",
                      "ACCESS_CODE",
                      "INTERCOM",
                      "PARKING_TICKET"
                    ]
                  },
                  "description": "Physical access methods available at this location. Multiple methods can be selected if the site supports different access types.\n\n**Request behavior (POST/PATCH):**\n- Optional field when creating or updating locations\n- Send `null` to clear all access methods\n- Send `[]` to store an empty access methods list\n- Duplicate values are automatically de-duplicated before storage\n- Omit the field in PATCH requests to leave the existing value unchanged\n\n**Response behavior (GET):**\n- Field is omitted from the response when no access methods are configured (null in database)\n- When access methods are configured but the array is empty, returns an empty array `[]`\n- When present, returns an array of valid enum values listed above\n\n**Available methods:**\n- `OPEN` - Publicly accessible without restrictions\n- `TOKEN` - Access via RFID token or card\n- `LICENSE_PLATE` - Access via license plate recognition\n- `ACCESS_CODE` - Access via PIN/access code entry\n- `INTERCOM` - Access via intercom system\n- `PARKING_TICKET` - Access via parking ticket validation\n",
                  "example": [
                    "OPEN",
                    "TOKEN"
                  ]
                },
                "facilities": {
                  "type": "array",
                  "nullable": true,
                  "items": {
                    "type": "string",
                    "enum": [
                      "AIRPORT",
                      "BATHROOM",
                      "BIKE_SHARING",
                      "BUS_STOP",
                      "CAFE",
                      "CARPOOL_PARKING",
                      "FUEL_STATION",
                      "HOTEL",
                      "MALL",
                      "METRO_STATION",
                      "MUSEUM",
                      "NATURE",
                      "PARKING_LOT",
                      "RECREATION_AREA",
                      "RESTAURANT",
                      "SPORT",
                      "STAFFED",
                      "SUPERMARKET",
                      "TAXI_STAND",
                      "TRAIN_STATION",
                      "TRAM_STOP",
                      "WIFI"
                    ]
                  },
                  "description": "Describes amenities and facilities available at or near the charging location. Most values are self-explanatory. Special categories include:\n- `RECREATION_AREA` - Parks, playgrounds, or leisure facilities\n- `CARPOOL_PARKING` - Dedicated parking for carpooling/ridesharing\n- `NATURE` - Natural attractions or green spaces\n- `STAFFED` - Location has staff present\n- `BATHROOM` - Bathroom facilities available\n\n**Request behavior (POST/PATCH):**\n- Optional field when creating or updating locations\n- Send `null` to clear all facilities\n- Send `[]` to store an empty facilities list\n- Duplicate values are automatically de-duplicated before storage\n- Omit the field in PATCH requests to leave the existing value unchanged\n\n**Response behavior (GET):**\n- Field is omitted from the response when no facilities are configured (null in database)\n- When facilities are configured but the array is empty, returns an empty array `[]`\n- When present, returns an array of valid enum values listed above\n"
                },
                "paymentOptions": {
                  "type": "array",
                  "readOnly": true,
                  "items": {
                    "type": "string",
                    "enum": [
                      "EMV_CHIP_TERMINAL",
                      "NFC_CONTACTLESS_TERMINAL",
                      "QR_CODE_PAYMENT",
                      "WEB_PAYMENT",
                      "CASH_PAYMENT"
                    ],
                    "description": "Payment methods accepted at the charging location, as required by AFIR (Alternative Fuels Infrastructure Regulation) for regulatory reporting.\n\n- `EMV_CHIP_TERMINAL` - EMV chip card terminal (contact-based card payments)\n- `NFC_CONTACTLESS_TERMINAL` - NFC contactless payment terminal (tap-to-pay)\n- `QR_CODE_PAYMENT` - QR code-based payment\n- `WEB_PAYMENT` - Web-based payment (e.g., browser or app payment flow)\n- `CASH_PAYMENT` - Cash payment accepted\n"
                  },
                  "description": "Payment methods accepted at the charging location, as required by AFIR (Alternative Fuels Infrastructure Regulation) for regulatory reporting.\n\n**Null vs empty semantics:**\n- `null` - Not yet specified by the operator (unknown). Omitted from DATEX II reporting.\n- `[]` (empty array) - The operator explicitly confirmed that no payment options are available at this location.\n\n**Response behavior (GET):**\n- Field is omitted from the response when no payment options are configured (null in database)\n- When payment options are configured but the array is empty, returns an empty array `[]`\n- When present, returns an array of valid enum values listed above\n"
                },
                "acceptedPaymentBrands": {
                  "type": "array",
                  "readOnly": true,
                  "items": {
                    "type": "string",
                    "enum": [
                      "VISA",
                      "MASTERCARD",
                      "MAESTRO",
                      "AMEX",
                      "GIROCARD",
                      "OTHER"
                    ],
                    "description": "Payment card brands accepted at the charging location. Only applicable when payment terminal options (`EMV_CHIP_TERMINAL` or `NFC_CONTACTLESS_TERMINAL`) are present in `paymentOptions`.\n\n- `VISA` - Visa\n- `MASTERCARD` - Mastercard\n- `MAESTRO` - Maestro\n- `AMEX` - American Express\n- `GIROCARD` - Girocard\n- `OTHER` - Other payment brand\n"
                  },
                  "description": "Payment card brands accepted at the charging location. Only applicable when `paymentOptions` includes a payment terminal option (`EMV_CHIP_TERMINAL` or `NFC_CONTACTLESS_TERMINAL`).\n\nIf `paymentOptions` does not contain any terminal option, this field will be `null`.\n\n**Response behavior (GET):**\n- Field is omitted from the response when no accepted payment brands are configured (null in database)\n- When accepted payment brands are configured but the array is empty, returns an empty array `[]`\n- When present, returns an array of valid enum values listed above\n"
                },
                "locationImage": {
                  "type": "object",
                  "nullable": true,
                  "readOnly": true,
                  "description": "If `include[]=locationImage` is provided with the request, the `locationImageId` will be replaced with the `locationImage` object if a location image has been assigned to the Location",
                  "properties": {
                    "original": {
                      "type": "string",
                      "description": "URL to the original image"
                    },
                    "thumbnail": {
                      "type": "string",
                      "description": "URL to a thumbnail image"
                    },
                    "mimeType": {
                      "type": "string"
                    },
                    "category": {
                      "description": "Category of an image associated with a location:\n- **charger**: Photo of the charging station or charger\n- **entrance**: Photo of the entrance to the location\n- **location**: Photo of the location overview\n- **network**: Logo of the network or operator group\n- **operator**: Logo of the operator\n- **other**: Other image\n- **owner**: Logo of the owner\n",
                      "type": "string",
                      "enum": [
                        "charger",
                        "entrance",
                        "location",
                        "network",
                        "operator",
                        "other",
                        "owner"
                      ]
                    }
                  },
                  "required": [
                    "original",
                    "mimeType"
                  ]
                },
                "locationPin": {
                  "readOnly": true,
                  "description": "If `include[]=locationPin` is provided with the request, the `locationPin` object will be returned if a custom pin image has been assigned to the Location",
                  "type": "object",
                  "properties": {
                    "original": {
                      "type": "string",
                      "description": "URL to the original image"
                    },
                    "thumbnail": {
                      "type": "string",
                      "description": "URL to a thumbnail image"
                    },
                    "mimeType": {
                      "type": "string"
                    },
                    "category": {
                      "description": "Category of an image associated with a location:\n- **charger**: Photo of the charging station or charger\n- **entrance**: Photo of the entrance to the location\n- **location**: Photo of the location overview\n- **network**: Logo of the network or operator group\n- **operator**: Logo of the operator\n- **other**: Other image\n- **owner**: Logo of the owner\n",
                      "type": "string",
                      "enum": [
                        "charger",
                        "entrance",
                        "location",
                        "network",
                        "operator",
                        "other",
                        "owner"
                      ]
                    }
                  },
                  "required": [
                    "original",
                    "mimeType"
                  ]
                },
                "images": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "original": {
                        "type": "string",
                        "description": "URL to the original image"
                      },
                      "thumbnail": {
                        "type": "string",
                        "description": "URL to a thumbnail image"
                      },
                      "mimeType": {
                        "type": "string"
                      },
                      "category": {
                        "description": "Category of an image associated with a location:\n- **charger**: Photo of the charging station or charger\n- **entrance**: Photo of the entrance to the location\n- **location**: Photo of the location overview\n- **network**: Logo of the network or operator group\n- **operator**: Logo of the operator\n- **other**: Other image\n- **owner**: Logo of the owner\n",
                        "type": "string",
                        "enum": [
                          "charger",
                          "entrance",
                          "location",
                          "network",
                          "operator",
                          "other",
                          "owner"
                        ]
                      }
                    },
                    "required": [
                      "original",
                      "mimeType"
                    ]
                  },
                  "readOnly": true,
                  "description": "If `include[]=images` is provided with the request, this array will contain the properties of all images assigned to the location."
                },
                "workingHours": {
                  "type": "object",
                  "properties": {
                    "isAlwaysOpen": {
                      "type": "boolean",
                      "description": "Indicates that the location is always open for charging. If set to false, the `hours` field is required, otherwise it should be ignored.\n"
                    },
                    "allowChargingOutsideWorkingHours": {
                      "type": "boolean",
                      "description": "When enabled, charging sessions can be started even when the location\nis outside its working hours. The location will still appear as closed\nto users. When this is true, stopSessionOutsideWorkingHours is\neffectively ignored.\n"
                    },
                    "stopSessionOutsideWorkingHours": {
                      "type": "boolean",
                      "nullable": true,
                      "description": "If a User has initiated a charging session during Working hours but it is already outside of the Working hours, the session will be terminated by the system. This is valid only for Users that are not included in one of the User Groups for which the Location is available 24/7.\n"
                    },
                    "alwaysOpenForUserGroupIds": {
                      "type": "array",
                      "items": {
                        "type": "number"
                      },
                      "nullable": true,
                      "example": [
                        1,
                        2,
                        3
                      ]
                    },
                    "hours": {
                      "type": "object",
                      "nullable": true,
                      "description": "The times should be considered to be in the location/tenant timezone.\nIf a day does not have any working hour intervals, it will be treated as closed for the whole day.\n",
                      "properties": {
                        "monday": {
                          "type": "array",
                          "description": "Working hours interval for single day",
                          "items": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "string",
                                "format": "time",
                                "example": "01:00"
                              },
                              "end": {
                                "type": "string",
                                "format": "time",
                                "example": "09:00"
                              }
                            },
                            "required": [
                              "start",
                              "end"
                            ]
                          }
                        },
                        "tuesday": {
                          "type": "array",
                          "description": "Working hours interval for single day",
                          "items": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "string",
                                "format": "time",
                                "example": "01:00"
                              },
                              "end": {
                                "type": "string",
                                "format": "time",
                                "example": "09:00"
                              }
                            },
                            "required": [
                              "start",
                              "end"
                            ]
                          }
                        },
                        "wednesday": {
                          "type": "array",
                          "description": "Working hours interval for single day",
                          "items": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "string",
                                "format": "time",
                                "example": "01:00"
                              },
                              "end": {
                                "type": "string",
                                "format": "time",
                                "example": "09:00"
                              }
                            },
                            "required": [
                              "start",
                              "end"
                            ]
                          }
                        },
                        "thursday": {
                          "type": "array",
                          "description": "Working hours interval for single day",
                          "items": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "string",
                                "format": "time",
                                "example": "01:00"
                              },
                              "end": {
                                "type": "string",
                                "format": "time",
                                "example": "09:00"
                              }
                            },
                            "required": [
                              "start",
                              "end"
                            ]
                          }
                        },
                        "friday": {
                          "type": "array",
                          "description": "Working hours interval for single day",
                          "items": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "string",
                                "format": "time",
                                "example": "01:00"
                              },
                              "end": {
                                "type": "string",
                                "format": "time",
                                "example": "09:00"
                              }
                            },
                            "required": [
                              "start",
                              "end"
                            ]
                          }
                        },
                        "saturday": {
                          "type": "array",
                          "description": "Working hours interval for single day",
                          "items": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "string",
                                "format": "time",
                                "example": "01:00"
                              },
                              "end": {
                                "type": "string",
                                "format": "time",
                                "example": "09:00"
                              }
                            },
                            "required": [
                              "start",
                              "end"
                            ]
                          }
                        },
                        "sunday": {
                          "type": "array",
                          "description": "Working hours interval for single day",
                          "items": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "string",
                                "format": "time",
                                "example": "01:00"
                              },
                              "end": {
                                "type": "string",
                                "format": "time",
                                "example": "09:00"
                              }
                            },
                            "required": [
                              "start",
                              "end"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "chargingZones": {
                  "type": "array",
                  "readOnly": true,
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "readOnly": true
                      },
                      "name": {
                        "type": "string",
                        "description": "Internal name of the Charging Zone. This isn't visible to end-users in the app."
                      },
                      "floorLevel": {
                        "type": "string",
                        "maxLength": 4,
                        "description": "Floor level where charging zone is located (e.g., '2', 'B1', 'G'). Optional, max 4 characters."
                      },
                      "locationId": {
                        "type": "integer",
                        "readOnly": true,
                        "description": "The ID of the Location, which the Charging Zone belongs to."
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "enabled",
                          "disabled"
                        ]
                      },
                      "additionalInfo": {
                        "description": "Additional information for the charging zone that is shown in the mobile app when the Location is viewed.",
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean"
                          },
                          "title": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "locale": {
                                  "type": "string",
                                  "description": "valid locale"
                                },
                                "translation": {
                                  "type": "string"
                                }
                              }
                            }
                          },
                          "description": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "locale": {
                                  "type": "string",
                                  "description": "valid locale"
                                },
                                "translation": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "description": "If `include[]=chargingZones` is provided with the request, the location charging zones will be provided here."
                },
                "roamingOperatorId": {
                  "description": "For roaming Locations, the ID of the roaming operator is provided.",
                  "type": "integer"
                },
                "isRoaming": {
                  "description": "Indicates whether this location belongs to an external roaming operator (true) or is a local location owned by the requesting operator (false).",
                  "type": "boolean",
                  "readOnly": true
                },
                "partnerIds": {
                  "description": "If `include[]=partnerIds` is provided with the request, returns unique IDs of all partners associated with the location through its charge points. Returns an empty array when no charge points have partner assignments.",
                  "type": "array",
                  "readOnly": true,
                  "items": {
                    "type": "integer"
                  }
                },
                "roaming": {
                  "type": "object",
                  "readOnly": true,
                  "description": "Contains details about the owner, operator, and suboperator of the location as provided by the CPO partner via OCPI.",
                  "properties": {
                    "owner": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "description": "The name of the location owner."
                        }
                      }
                    },
                    "operator": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "description": "The name of the location operator."
                        }
                      }
                    },
                    "suboperator": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "description": "The name of the location suboperator."
                        }
                      }
                    }
                  }
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "externalAppData": {
                  "description": "Used to hold any external application data related to the Location.",
                  "type": "object",
                  "nullable": true,
                  "additionalProperties": true
                },
                "notes": {
                  "type": "array",
                  "readOnly": true,
                  "items": {
                    "type": "object",
                    "required": [
                      "id",
                      "summary",
                      "pinned",
                      "createdAt",
                      "updatedAt"
                    ],
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Unique identifier for the note",
                        "example": 123
                      },
                      "summary": {
                        "type": "string",
                        "maxLength": 255,
                        "description": "Short summary or title of the note",
                        "example": "Important maintenance note"
                      },
                      "details": {
                        "type": "string",
                        "maxLength": 2000,
                        "description": "Detailed content of the note. Omitted when empty.",
                        "example": "This charge point requires monthly inspection due to high usage."
                      },
                      "pinned": {
                        "type": "boolean",
                        "description": "Whether the note is pinned (appears first in listings)",
                        "example": true
                      },
                      "createdByAdminId": {
                        "type": "integer",
                        "description": "ID of the admin who created the note. Omitted when unavailable.",
                        "example": 1
                      },
                      "updatedByAdminId": {
                        "type": "integer",
                        "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                        "example": 2
                      },
                      "createdAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO-8601 timestamp when the note was created",
                        "example": "2025-12-16T10:00:00Z"
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO-8601 timestamp when the note was last updated",
                        "example": "2025-12-16T12:00:00Z"
                      }
                    }
                  },
                  "description": "If `include[]=notes` is provided with the request, the notes attached to this location will be provided here. Notes are returned with pinned notes first, then ordered by creation date descending."
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true,
                  "description": "ISO 8601 formatted date"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true,
                  "description": "ISO 8601 formatted date"
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "locationCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId",
              "name",
              "geoposition",
              "address",
              "city",
              "country",
              "roamingOperatorId",
              "isRoaming",
              "accessibilityType"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to. Null for roaming locations.",
                "example": 1
              },
              "externalId": {
                "type": "string"
              },
              "name": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "status": {
                "type": "string",
                "description": "Deprecated.",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "description": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "shortDescription": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "additionalDescription": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "geoposition": {
                "type": "object",
                "properties": {
                  "latitude": {
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90
                  },
                  "longitude": {
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ]
              },
              "address": {
                "description": "The full address of the location",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "streetAddress": {
                "description": "The street address of the location",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "city": {
                "type": "string",
                "nullable": true
              },
              "region": {
                "type": "string",
                "nullable": true,
                "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
              },
              "state": {
                "description": "When the selected country is one of US, AU, CA, UM or RO",
                "anyOf": [
                  {
                    "title": "US State",
                    "description": "When the country is US.",
                    "type": "string",
                    "enum": [
                      "AL",
                      "AK",
                      "AS",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FM",
                      "FL",
                      "GA",
                      "GU",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MH",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "MP",
                      "OH",
                      "OK",
                      "OR",
                      "PW",
                      "PA",
                      "PR",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VI",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY"
                    ]
                  },
                  {
                    "title": "Australian State",
                    "description": "When the country is AU.",
                    "type": "string",
                    "enum": [
                      "NSW",
                      "VIC",
                      "QLD",
                      "WA",
                      "SA",
                      "TAS",
                      "ACT",
                      "NT",
                      "JBT",
                      "CX",
                      "NF",
                      "CC",
                      "AQ",
                      "CSI",
                      "ACI",
                      "HM"
                    ]
                  },
                  {
                    "title": "Canadian Province",
                    "description": "When the country is CA.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "BC",
                      "MB",
                      "NB",
                      "NL",
                      "NT",
                      "NS",
                      "NU",
                      "ON",
                      "PE",
                      "QC",
                      "SK",
                      "YT"
                    ]
                  },
                  {
                    "title": "US Minor Outlying Islands Territory",
                    "description": "When the country is UM.",
                    "type": "string",
                    "enum": [
                      "81",
                      "84",
                      "85",
                      "67",
                      "89",
                      "71",
                      "76",
                      "95",
                      "79"
                    ]
                  },
                  {
                    "title": "Romanian County",
                    "description": "When the country is RO.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "AR",
                      "AG",
                      "BC",
                      "BH",
                      "BN",
                      "BT",
                      "BV",
                      "BR",
                      "B",
                      "BZ",
                      "CL",
                      "CS",
                      "CT",
                      "CV",
                      "DB",
                      "DJ",
                      "GL",
                      "GR",
                      "GJ",
                      "HR",
                      "HD",
                      "IL",
                      "IS",
                      "IF",
                      "MM",
                      "MH",
                      "MS",
                      "NT",
                      "OT",
                      "PH",
                      "SM",
                      "SJ",
                      "SB",
                      "SV",
                      "TR",
                      "TM",
                      "TL",
                      "VS",
                      "VL",
                      "VN"
                    ]
                  }
                ]
              },
              "country": {
                "type": "string",
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW"
                ]
              },
              "postCode": {
                "type": "string",
                "nullable": true,
                "description": "Postal code of the location. Required for most countries — omitting it for those will result in a validation error."
              },
              "timezone": {
                "type": "string",
                "nullable": true,
                "description": "A valid timezone in the form of Area/Location, required when `Allow Multiple Time Zones` option is turned on in the Timezone Setting."
              },
              "parkingType": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "ALONG_MOTORWAY",
                  "PARKING_GARAGE",
                  "PARKING_LOT",
                  "ON_DRIVEWAY",
                  "ON_STREET",
                  "UNDERGROUND_GARAGE",
                  "IS_TENT",
                  "SECURE"
                ],
                "description": "Indicates the type of parking available at the charging location. This field helps EV drivers understand the physical parking environment before arrival.\n\n**Valid values:**\n- `ALONG_MOTORWAY` - Located along a motorway/highway, typically at rest areas or service stations\n- `PARKING_GARAGE` - Multi-level parking garage structure, either above-ground or mixed-use\n- `PARKING_LOT` - Surface parking lot, open-air parking area\n- `ON_DRIVEWAY` - Located on a private driveway, typically residential or small business\n- `ON_STREET` - Street-side parking, curbside charging locations\n- `UNDERGROUND_GARAGE` - Underground parking structure, subterranean parking facility\n- `IS_TENT` - Site located on the Trans-European Transport Network (Lithuania NAP / Via Lietuva extension; may not be interpreted by all roaming partners)\n- `SECURE` - Restricted-access parking such as gated lots, key-card access, or staffed parking (Lithuania NAP / Via Lietuva extension; may not be interpreted by all roaming partners)\n\n**Request behavior (POST/PATCH):**\n- Optional field when creating or updating locations\n- Send `null` to clear the parking type\n- Omit the field in PATCH requests to leave the existing value unchanged\n\n**Response behavior (GET):**\n- Field is omitted from the response when no parking type is configured (null in database)\n- When present, returns one of the valid enum values listed above\n"
              },
              "accessibilityType": {
                "description": "Determines how the accessibility of the location is reported to OICP (Hubject) roaming partners.\n\n- `free_publicly_accessible` - The charge point is reachable without a fee\n- `restricted_access` - Permission is required to reach the charge point (e.g. company or building complex)\n- `paid_publicly_accessible` - A fee is required to reach the charge point (e.g. a paid parking garage)\n",
                "type": "string",
                "enum": [
                  "free_publicly_accessible",
                  "restricted_access",
                  "paid_publicly_accessible"
                ]
              },
              "accessMethods": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "string",
                  "enum": [
                    "OPEN",
                    "TOKEN",
                    "LICENSE_PLATE",
                    "ACCESS_CODE",
                    "INTERCOM",
                    "PARKING_TICKET"
                  ]
                },
                "description": "Physical access methods available at this location. Multiple methods can be selected if the site supports different access types.\n\n**Request behavior (POST/PATCH):**\n- Optional field when creating or updating locations\n- Send `null` to clear all access methods\n- Send `[]` to store an empty access methods list\n- Duplicate values are automatically de-duplicated before storage\n- Omit the field in PATCH requests to leave the existing value unchanged\n\n**Response behavior (GET):**\n- Field is omitted from the response when no access methods are configured (null in database)\n- When access methods are configured but the array is empty, returns an empty array `[]`\n- When present, returns an array of valid enum values listed above\n\n**Available methods:**\n- `OPEN` - Publicly accessible without restrictions\n- `TOKEN` - Access via RFID token or card\n- `LICENSE_PLATE` - Access via license plate recognition\n- `ACCESS_CODE` - Access via PIN/access code entry\n- `INTERCOM` - Access via intercom system\n- `PARKING_TICKET` - Access via parking ticket validation\n",
                "example": [
                  "OPEN",
                  "TOKEN"
                ]
              },
              "facilities": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "string",
                  "enum": [
                    "AIRPORT",
                    "BATHROOM",
                    "BIKE_SHARING",
                    "BUS_STOP",
                    "CAFE",
                    "CARPOOL_PARKING",
                    "FUEL_STATION",
                    "HOTEL",
                    "MALL",
                    "METRO_STATION",
                    "MUSEUM",
                    "NATURE",
                    "PARKING_LOT",
                    "RECREATION_AREA",
                    "RESTAURANT",
                    "SPORT",
                    "STAFFED",
                    "SUPERMARKET",
                    "TAXI_STAND",
                    "TRAIN_STATION",
                    "TRAM_STOP",
                    "WIFI"
                  ]
                },
                "description": "Describes amenities and facilities available at or near the charging location. Most values are self-explanatory. Special categories include:\n- `RECREATION_AREA` - Parks, playgrounds, or leisure facilities\n- `CARPOOL_PARKING` - Dedicated parking for carpooling/ridesharing\n- `NATURE` - Natural attractions or green spaces\n- `STAFFED` - Location has staff present\n- `BATHROOM` - Bathroom facilities available\n\n**Request behavior (POST/PATCH):**\n- Optional field when creating or updating locations\n- Send `null` to clear all facilities\n- Send `[]` to store an empty facilities list\n- Duplicate values are automatically de-duplicated before storage\n- Omit the field in PATCH requests to leave the existing value unchanged\n\n**Response behavior (GET):**\n- Field is omitted from the response when no facilities are configured (null in database)\n- When facilities are configured but the array is empty, returns an empty array `[]`\n- When present, returns an array of valid enum values listed above\n"
              },
              "paymentOptions": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "string",
                  "enum": [
                    "EMV_CHIP_TERMINAL",
                    "NFC_CONTACTLESS_TERMINAL",
                    "QR_CODE_PAYMENT",
                    "WEB_PAYMENT",
                    "CASH_PAYMENT"
                  ],
                  "description": "Payment methods accepted at the charging location, as required by AFIR (Alternative Fuels Infrastructure Regulation) for regulatory reporting.\n\n- `EMV_CHIP_TERMINAL` - EMV chip card terminal (contact-based card payments)\n- `NFC_CONTACTLESS_TERMINAL` - NFC contactless payment terminal (tap-to-pay)\n- `QR_CODE_PAYMENT` - QR code-based payment\n- `WEB_PAYMENT` - Web-based payment (e.g., browser or app payment flow)\n- `CASH_PAYMENT` - Cash payment accepted\n"
                },
                "description": "Payment methods accepted at the charging location, as required by AFIR (Alternative Fuels Infrastructure Regulation) for regulatory reporting.\n\n**Null vs empty semantics:**\n- `null` - Not yet specified by the operator (unknown). Omitted from DATEX II reporting.\n- `[]` (empty array) - The operator explicitly confirmed that no payment options are available at this location.\n\n**Response behavior (GET):**\n- Field is omitted from the response when no payment options are configured (null in database)\n- When payment options are configured but the array is empty, returns an empty array `[]`\n- When present, returns an array of valid enum values listed above\n"
              },
              "acceptedPaymentBrands": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "string",
                  "enum": [
                    "VISA",
                    "MASTERCARD",
                    "MAESTRO",
                    "AMEX",
                    "GIROCARD",
                    "OTHER"
                  ],
                  "description": "Payment card brands accepted at the charging location. Only applicable when payment terminal options (`EMV_CHIP_TERMINAL` or `NFC_CONTACTLESS_TERMINAL`) are present in `paymentOptions`.\n\n- `VISA` - Visa\n- `MASTERCARD` - Mastercard\n- `MAESTRO` - Maestro\n- `AMEX` - American Express\n- `GIROCARD` - Girocard\n- `OTHER` - Other payment brand\n"
                },
                "description": "Payment card brands accepted at the charging location. Only applicable when `paymentOptions` includes a payment terminal option (`EMV_CHIP_TERMINAL` or `NFC_CONTACTLESS_TERMINAL`).\n\nIf `paymentOptions` does not contain any terminal option, this field will be `null`.\n\n**Response behavior (GET):**\n- Field is omitted from the response when no accepted payment brands are configured (null in database)\n- When accepted payment brands are configured but the array is empty, returns an empty array `[]`\n- When present, returns an array of valid enum values listed above\n"
              },
              "locationImage": {
                "type": "object",
                "nullable": true,
                "readOnly": true,
                "description": "If `include[]=locationImage` is provided with the request, the `locationImageId` will be replaced with the `locationImage` object if a location image has been assigned to the Location",
                "properties": {
                  "original": {
                    "type": "string",
                    "description": "URL to the original image"
                  },
                  "thumbnail": {
                    "type": "string",
                    "description": "URL to a thumbnail image"
                  },
                  "mimeType": {
                    "type": "string"
                  },
                  "category": {
                    "description": "Category of an image associated with a location:\n- **charger**: Photo of the charging station or charger\n- **entrance**: Photo of the entrance to the location\n- **location**: Photo of the location overview\n- **network**: Logo of the network or operator group\n- **operator**: Logo of the operator\n- **other**: Other image\n- **owner**: Logo of the owner\n",
                    "type": "string",
                    "enum": [
                      "charger",
                      "entrance",
                      "location",
                      "network",
                      "operator",
                      "other",
                      "owner"
                    ]
                  }
                },
                "required": [
                  "original",
                  "mimeType"
                ]
              },
              "locationPin": {
                "readOnly": true,
                "description": "If `include[]=locationPin` is provided with the request, the `locationPin` object will be returned if a custom pin image has been assigned to the Location",
                "type": "object",
                "properties": {
                  "original": {
                    "type": "string",
                    "description": "URL to the original image"
                  },
                  "thumbnail": {
                    "type": "string",
                    "description": "URL to a thumbnail image"
                  },
                  "mimeType": {
                    "type": "string"
                  },
                  "category": {
                    "description": "Category of an image associated with a location:\n- **charger**: Photo of the charging station or charger\n- **entrance**: Photo of the entrance to the location\n- **location**: Photo of the location overview\n- **network**: Logo of the network or operator group\n- **operator**: Logo of the operator\n- **other**: Other image\n- **owner**: Logo of the owner\n",
                    "type": "string",
                    "enum": [
                      "charger",
                      "entrance",
                      "location",
                      "network",
                      "operator",
                      "other",
                      "owner"
                    ]
                  }
                },
                "required": [
                  "original",
                  "mimeType"
                ]
              },
              "images": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "original": {
                      "type": "string",
                      "description": "URL to the original image"
                    },
                    "thumbnail": {
                      "type": "string",
                      "description": "URL to a thumbnail image"
                    },
                    "mimeType": {
                      "type": "string"
                    },
                    "category": {
                      "description": "Category of an image associated with a location:\n- **charger**: Photo of the charging station or charger\n- **entrance**: Photo of the entrance to the location\n- **location**: Photo of the location overview\n- **network**: Logo of the network or operator group\n- **operator**: Logo of the operator\n- **other**: Other image\n- **owner**: Logo of the owner\n",
                      "type": "string",
                      "enum": [
                        "charger",
                        "entrance",
                        "location",
                        "network",
                        "operator",
                        "other",
                        "owner"
                      ]
                    }
                  },
                  "required": [
                    "original",
                    "mimeType"
                  ]
                },
                "readOnly": true,
                "description": "If `include[]=images` is provided with the request, this array will contain the properties of all images assigned to the location."
              },
              "workingHours": {
                "type": "object",
                "properties": {
                  "isAlwaysOpen": {
                    "type": "boolean",
                    "description": "Indicates that the location is always open for charging. If set to false, the `hours` field is required, otherwise it should be ignored.\n"
                  },
                  "allowChargingOutsideWorkingHours": {
                    "type": "boolean",
                    "description": "When enabled, charging sessions can be started even when the location\nis outside its working hours. The location will still appear as closed\nto users. When this is true, stopSessionOutsideWorkingHours is\neffectively ignored.\n"
                  },
                  "stopSessionOutsideWorkingHours": {
                    "type": "boolean",
                    "nullable": true,
                    "description": "If a User has initiated a charging session during Working hours but it is already outside of the Working hours, the session will be terminated by the system. This is valid only for Users that are not included in one of the User Groups for which the Location is available 24/7.\n"
                  },
                  "alwaysOpenForUserGroupIds": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "nullable": true,
                    "example": [
                      1,
                      2,
                      3
                    ]
                  },
                  "hours": {
                    "type": "object",
                    "nullable": true,
                    "description": "The times should be considered to be in the location/tenant timezone.\nIf a day does not have any working hour intervals, it will be treated as closed for the whole day.\n",
                    "properties": {
                      "monday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "tuesday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "wednesday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "thursday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "friday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "saturday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "sunday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      }
                    }
                  }
                }
              },
              "chargingZones": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string",
                      "description": "Internal name of the Charging Zone. This isn't visible to end-users in the app."
                    },
                    "floorLevel": {
                      "type": "string",
                      "maxLength": 4,
                      "description": "Floor level where charging zone is located (e.g., '2', 'B1', 'G'). Optional, max 4 characters."
                    },
                    "locationId": {
                      "type": "integer",
                      "readOnly": true,
                      "description": "The ID of the Location, which the Charging Zone belongs to."
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "enabled",
                        "disabled"
                      ]
                    },
                    "additionalInfo": {
                      "description": "Additional information for the charging zone that is shown in the mobile app when the Location is viewed.",
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean"
                        },
                        "title": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "description": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "description": "If `include[]=chargingZones` is provided with the request, the location charging zones will be provided here."
              },
              "roamingOperatorId": {
                "description": "For roaming Locations, the ID of the roaming operator is provided.",
                "type": "integer"
              },
              "isRoaming": {
                "description": "Indicates whether this location belongs to an external roaming operator (true) or is a local location owned by the requesting operator (false).",
                "type": "boolean",
                "readOnly": true
              },
              "partnerIds": {
                "description": "If `include[]=partnerIds` is provided with the request, returns unique IDs of all partners associated with the location through its charge points. Returns an empty array when no charge points have partner assignments.",
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "integer"
                }
              },
              "roaming": {
                "type": "object",
                "readOnly": true,
                "description": "Contains details about the owner, operator, and suboperator of the location as provided by the CPO partner via OCPI.",
                "properties": {
                  "owner": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The name of the location owner."
                      }
                    }
                  },
                  "operator": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The name of the location operator."
                      }
                    }
                  },
                  "suboperator": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The name of the location suboperator."
                      }
                    }
                  }
                }
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "externalAppData": {
                "description": "Used to hold any external application data related to the Location.",
                "type": "object",
                "nullable": true,
                "additionalProperties": true
              },
              "notes": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "summary",
                    "pinned",
                    "createdAt",
                    "updatedAt"
                  ],
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Unique identifier for the note",
                      "example": 123
                    },
                    "summary": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "Short summary or title of the note",
                      "example": "Important maintenance note"
                    },
                    "details": {
                      "type": "string",
                      "maxLength": 2000,
                      "description": "Detailed content of the note. Omitted when empty.",
                      "example": "This charge point requires monthly inspection due to high usage."
                    },
                    "pinned": {
                      "type": "boolean",
                      "description": "Whether the note is pinned (appears first in listings)",
                      "example": true
                    },
                    "createdByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who created the note. Omitted when unavailable.",
                      "example": 1
                    },
                    "updatedByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                      "example": 2
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was created",
                      "example": "2025-12-16T10:00:00Z"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was last updated",
                      "example": "2025-12-16T12:00:00Z"
                    }
                  }
                },
                "description": "If `include[]=notes` is provided with the request, the notes attached to this location will be provided here. Notes are returned with pinned notes first, then ordered by creation date descending."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "ISO 8601 formatted date"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "ISO 8601 formatted date"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "locationRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId",
              "name",
              "geoposition",
              "address",
              "city",
              "country",
              "roamingOperatorId",
              "isRoaming",
              "accessibilityType"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to. Null for roaming locations.",
                "example": 1
              },
              "externalId": {
                "type": "string"
              },
              "name": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "status": {
                "type": "string",
                "description": "Deprecated.",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "description": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "shortDescription": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "additionalDescription": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "geoposition": {
                "type": "object",
                "properties": {
                  "latitude": {
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90
                  },
                  "longitude": {
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ]
              },
              "address": {
                "description": "The full address of the location",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "streetAddress": {
                "description": "The street address of the location",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "city": {
                "type": "string",
                "nullable": true
              },
              "region": {
                "type": "string",
                "nullable": true,
                "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
              },
              "state": {
                "description": "When the selected country is one of US, AU, CA, UM or RO",
                "anyOf": [
                  {
                    "title": "US State",
                    "description": "When the country is US.",
                    "type": "string",
                    "enum": [
                      "AL",
                      "AK",
                      "AS",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FM",
                      "FL",
                      "GA",
                      "GU",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MH",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "MP",
                      "OH",
                      "OK",
                      "OR",
                      "PW",
                      "PA",
                      "PR",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VI",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY"
                    ]
                  },
                  {
                    "title": "Australian State",
                    "description": "When the country is AU.",
                    "type": "string",
                    "enum": [
                      "NSW",
                      "VIC",
                      "QLD",
                      "WA",
                      "SA",
                      "TAS",
                      "ACT",
                      "NT",
                      "JBT",
                      "CX",
                      "NF",
                      "CC",
                      "AQ",
                      "CSI",
                      "ACI",
                      "HM"
                    ]
                  },
                  {
                    "title": "Canadian Province",
                    "description": "When the country is CA.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "BC",
                      "MB",
                      "NB",
                      "NL",
                      "NT",
                      "NS",
                      "NU",
                      "ON",
                      "PE",
                      "QC",
                      "SK",
                      "YT"
                    ]
                  },
                  {
                    "title": "US Minor Outlying Islands Territory",
                    "description": "When the country is UM.",
                    "type": "string",
                    "enum": [
                      "81",
                      "84",
                      "85",
                      "67",
                      "89",
                      "71",
                      "76",
                      "95",
                      "79"
                    ]
                  },
                  {
                    "title": "Romanian County",
                    "description": "When the country is RO.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "AR",
                      "AG",
                      "BC",
                      "BH",
                      "BN",
                      "BT",
                      "BV",
                      "BR",
                      "B",
                      "BZ",
                      "CL",
                      "CS",
                      "CT",
                      "CV",
                      "DB",
                      "DJ",
                      "GL",
                      "GR",
                      "GJ",
                      "HR",
                      "HD",
                      "IL",
                      "IS",
                      "IF",
                      "MM",
                      "MH",
                      "MS",
                      "NT",
                      "OT",
                      "PH",
                      "SM",
                      "SJ",
                      "SB",
                      "SV",
                      "TR",
                      "TM",
                      "TL",
                      "VS",
                      "VL",
                      "VN"
                    ]
                  }
                ]
              },
              "country": {
                "type": "string",
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW"
                ]
              },
              "postCode": {
                "type": "string",
                "nullable": true,
                "description": "Postal code of the location. Required for most countries — omitting it for those will result in a validation error."
              },
              "timezone": {
                "type": "string",
                "nullable": true,
                "description": "A valid timezone in the form of Area/Location, required when `Allow Multiple Time Zones` option is turned on in the Timezone Setting."
              },
              "parkingType": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "ALONG_MOTORWAY",
                  "PARKING_GARAGE",
                  "PARKING_LOT",
                  "ON_DRIVEWAY",
                  "ON_STREET",
                  "UNDERGROUND_GARAGE",
                  "IS_TENT",
                  "SECURE"
                ],
                "description": "Indicates the type of parking available at the charging location. This field helps EV drivers understand the physical parking environment before arrival.\n\n**Valid values:**\n- `ALONG_MOTORWAY` - Located along a motorway/highway, typically at rest areas or service stations\n- `PARKING_GARAGE` - Multi-level parking garage structure, either above-ground or mixed-use\n- `PARKING_LOT` - Surface parking lot, open-air parking area\n- `ON_DRIVEWAY` - Located on a private driveway, typically residential or small business\n- `ON_STREET` - Street-side parking, curbside charging locations\n- `UNDERGROUND_GARAGE` - Underground parking structure, subterranean parking facility\n- `IS_TENT` - Site located on the Trans-European Transport Network (Lithuania NAP / Via Lietuva extension; may not be interpreted by all roaming partners)\n- `SECURE` - Restricted-access parking such as gated lots, key-card access, or staffed parking (Lithuania NAP / Via Lietuva extension; may not be interpreted by all roaming partners)\n\n**Request behavior (POST/PATCH):**\n- Optional field when creating or updating locations\n- Send `null` to clear the parking type\n- Omit the field in PATCH requests to leave the existing value unchanged\n\n**Response behavior (GET):**\n- Field is omitted from the response when no parking type is configured (null in database)\n- When present, returns one of the valid enum values listed above\n"
              },
              "accessibilityType": {
                "description": "Determines how the accessibility of the location is reported to OICP (Hubject) roaming partners.\n\n- `free_publicly_accessible` - The charge point is reachable without a fee\n- `restricted_access` - Permission is required to reach the charge point (e.g. company or building complex)\n- `paid_publicly_accessible` - A fee is required to reach the charge point (e.g. a paid parking garage)\n",
                "type": "string",
                "enum": [
                  "free_publicly_accessible",
                  "restricted_access",
                  "paid_publicly_accessible"
                ]
              },
              "accessMethods": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "string",
                  "enum": [
                    "OPEN",
                    "TOKEN",
                    "LICENSE_PLATE",
                    "ACCESS_CODE",
                    "INTERCOM",
                    "PARKING_TICKET"
                  ]
                },
                "description": "Physical access methods available at this location. Multiple methods can be selected if the site supports different access types.\n\n**Request behavior (POST/PATCH):**\n- Optional field when creating or updating locations\n- Send `null` to clear all access methods\n- Send `[]` to store an empty access methods list\n- Duplicate values are automatically de-duplicated before storage\n- Omit the field in PATCH requests to leave the existing value unchanged\n\n**Response behavior (GET):**\n- Field is omitted from the response when no access methods are configured (null in database)\n- When access methods are configured but the array is empty, returns an empty array `[]`\n- When present, returns an array of valid enum values listed above\n\n**Available methods:**\n- `OPEN` - Publicly accessible without restrictions\n- `TOKEN` - Access via RFID token or card\n- `LICENSE_PLATE` - Access via license plate recognition\n- `ACCESS_CODE` - Access via PIN/access code entry\n- `INTERCOM` - Access via intercom system\n- `PARKING_TICKET` - Access via parking ticket validation\n",
                "example": [
                  "OPEN",
                  "TOKEN"
                ]
              },
              "facilities": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "string",
                  "enum": [
                    "AIRPORT",
                    "BATHROOM",
                    "BIKE_SHARING",
                    "BUS_STOP",
                    "CAFE",
                    "CARPOOL_PARKING",
                    "FUEL_STATION",
                    "HOTEL",
                    "MALL",
                    "METRO_STATION",
                    "MUSEUM",
                    "NATURE",
                    "PARKING_LOT",
                    "RECREATION_AREA",
                    "RESTAURANT",
                    "SPORT",
                    "STAFFED",
                    "SUPERMARKET",
                    "TAXI_STAND",
                    "TRAIN_STATION",
                    "TRAM_STOP",
                    "WIFI"
                  ]
                },
                "description": "Describes amenities and facilities available at or near the charging location. Most values are self-explanatory. Special categories include:\n- `RECREATION_AREA` - Parks, playgrounds, or leisure facilities\n- `CARPOOL_PARKING` - Dedicated parking for carpooling/ridesharing\n- `NATURE` - Natural attractions or green spaces\n- `STAFFED` - Location has staff present\n- `BATHROOM` - Bathroom facilities available\n\n**Request behavior (POST/PATCH):**\n- Optional field when creating or updating locations\n- Send `null` to clear all facilities\n- Send `[]` to store an empty facilities list\n- Duplicate values are automatically de-duplicated before storage\n- Omit the field in PATCH requests to leave the existing value unchanged\n\n**Response behavior (GET):**\n- Field is omitted from the response when no facilities are configured (null in database)\n- When facilities are configured but the array is empty, returns an empty array `[]`\n- When present, returns an array of valid enum values listed above\n"
              },
              "paymentOptions": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "string",
                  "enum": [
                    "EMV_CHIP_TERMINAL",
                    "NFC_CONTACTLESS_TERMINAL",
                    "QR_CODE_PAYMENT",
                    "WEB_PAYMENT",
                    "CASH_PAYMENT"
                  ],
                  "description": "Payment methods accepted at the charging location, as required by AFIR (Alternative Fuels Infrastructure Regulation) for regulatory reporting.\n\n- `EMV_CHIP_TERMINAL` - EMV chip card terminal (contact-based card payments)\n- `NFC_CONTACTLESS_TERMINAL` - NFC contactless payment terminal (tap-to-pay)\n- `QR_CODE_PAYMENT` - QR code-based payment\n- `WEB_PAYMENT` - Web-based payment (e.g., browser or app payment flow)\n- `CASH_PAYMENT` - Cash payment accepted\n"
                },
                "description": "Payment methods accepted at the charging location, as required by AFIR (Alternative Fuels Infrastructure Regulation) for regulatory reporting.\n\n**Null vs empty semantics:**\n- `null` - Not yet specified by the operator (unknown). Omitted from DATEX II reporting.\n- `[]` (empty array) - The operator explicitly confirmed that no payment options are available at this location.\n\n**Response behavior (GET):**\n- Field is omitted from the response when no payment options are configured (null in database)\n- When payment options are configured but the array is empty, returns an empty array `[]`\n- When present, returns an array of valid enum values listed above\n"
              },
              "acceptedPaymentBrands": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "string",
                  "enum": [
                    "VISA",
                    "MASTERCARD",
                    "MAESTRO",
                    "AMEX",
                    "GIROCARD",
                    "OTHER"
                  ],
                  "description": "Payment card brands accepted at the charging location. Only applicable when payment terminal options (`EMV_CHIP_TERMINAL` or `NFC_CONTACTLESS_TERMINAL`) are present in `paymentOptions`.\n\n- `VISA` - Visa\n- `MASTERCARD` - Mastercard\n- `MAESTRO` - Maestro\n- `AMEX` - American Express\n- `GIROCARD` - Girocard\n- `OTHER` - Other payment brand\n"
                },
                "description": "Payment card brands accepted at the charging location. Only applicable when `paymentOptions` includes a payment terminal option (`EMV_CHIP_TERMINAL` or `NFC_CONTACTLESS_TERMINAL`).\n\nIf `paymentOptions` does not contain any terminal option, this field will be `null`.\n\n**Response behavior (GET):**\n- Field is omitted from the response when no accepted payment brands are configured (null in database)\n- When accepted payment brands are configured but the array is empty, returns an empty array `[]`\n- When present, returns an array of valid enum values listed above\n"
              },
              "locationImage": {
                "type": "object",
                "nullable": true,
                "readOnly": true,
                "description": "If `include[]=locationImage` is provided with the request, the `locationImageId` will be replaced with the `locationImage` object if a location image has been assigned to the Location",
                "properties": {
                  "original": {
                    "type": "string",
                    "description": "URL to the original image"
                  },
                  "thumbnail": {
                    "type": "string",
                    "description": "URL to a thumbnail image"
                  },
                  "mimeType": {
                    "type": "string"
                  },
                  "category": {
                    "description": "Category of an image associated with a location:\n- **charger**: Photo of the charging station or charger\n- **entrance**: Photo of the entrance to the location\n- **location**: Photo of the location overview\n- **network**: Logo of the network or operator group\n- **operator**: Logo of the operator\n- **other**: Other image\n- **owner**: Logo of the owner\n",
                    "type": "string",
                    "enum": [
                      "charger",
                      "entrance",
                      "location",
                      "network",
                      "operator",
                      "other",
                      "owner"
                    ]
                  }
                },
                "required": [
                  "original",
                  "mimeType"
                ]
              },
              "locationPin": {
                "readOnly": true,
                "description": "If `include[]=locationPin` is provided with the request, the `locationPin` object will be returned if a custom pin image has been assigned to the Location",
                "type": "object",
                "properties": {
                  "original": {
                    "type": "string",
                    "description": "URL to the original image"
                  },
                  "thumbnail": {
                    "type": "string",
                    "description": "URL to a thumbnail image"
                  },
                  "mimeType": {
                    "type": "string"
                  },
                  "category": {
                    "description": "Category of an image associated with a location:\n- **charger**: Photo of the charging station or charger\n- **entrance**: Photo of the entrance to the location\n- **location**: Photo of the location overview\n- **network**: Logo of the network or operator group\n- **operator**: Logo of the operator\n- **other**: Other image\n- **owner**: Logo of the owner\n",
                    "type": "string",
                    "enum": [
                      "charger",
                      "entrance",
                      "location",
                      "network",
                      "operator",
                      "other",
                      "owner"
                    ]
                  }
                },
                "required": [
                  "original",
                  "mimeType"
                ]
              },
              "images": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "original": {
                      "type": "string",
                      "description": "URL to the original image"
                    },
                    "thumbnail": {
                      "type": "string",
                      "description": "URL to a thumbnail image"
                    },
                    "mimeType": {
                      "type": "string"
                    },
                    "category": {
                      "description": "Category of an image associated with a location:\n- **charger**: Photo of the charging station or charger\n- **entrance**: Photo of the entrance to the location\n- **location**: Photo of the location overview\n- **network**: Logo of the network or operator group\n- **operator**: Logo of the operator\n- **other**: Other image\n- **owner**: Logo of the owner\n",
                      "type": "string",
                      "enum": [
                        "charger",
                        "entrance",
                        "location",
                        "network",
                        "operator",
                        "other",
                        "owner"
                      ]
                    }
                  },
                  "required": [
                    "original",
                    "mimeType"
                  ]
                },
                "readOnly": true,
                "description": "If `include[]=images` is provided with the request, this array will contain the properties of all images assigned to the location."
              },
              "workingHours": {
                "type": "object",
                "properties": {
                  "isAlwaysOpen": {
                    "type": "boolean",
                    "description": "Indicates that the location is always open for charging. If set to false, the `hours` field is required, otherwise it should be ignored.\n"
                  },
                  "allowChargingOutsideWorkingHours": {
                    "type": "boolean",
                    "description": "When enabled, charging sessions can be started even when the location\nis outside its working hours. The location will still appear as closed\nto users. When this is true, stopSessionOutsideWorkingHours is\neffectively ignored.\n"
                  },
                  "stopSessionOutsideWorkingHours": {
                    "type": "boolean",
                    "nullable": true,
                    "description": "If a User has initiated a charging session during Working hours but it is already outside of the Working hours, the session will be terminated by the system. This is valid only for Users that are not included in one of the User Groups for which the Location is available 24/7.\n"
                  },
                  "alwaysOpenForUserGroupIds": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "nullable": true,
                    "example": [
                      1,
                      2,
                      3
                    ]
                  },
                  "hours": {
                    "type": "object",
                    "nullable": true,
                    "description": "The times should be considered to be in the location/tenant timezone.\nIf a day does not have any working hour intervals, it will be treated as closed for the whole day.\n",
                    "properties": {
                      "monday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "tuesday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "wednesday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "thursday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "friday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "saturday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "sunday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      }
                    }
                  }
                }
              },
              "chargingZones": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string",
                      "description": "Internal name of the Charging Zone. This isn't visible to end-users in the app."
                    },
                    "floorLevel": {
                      "type": "string",
                      "maxLength": 4,
                      "description": "Floor level where charging zone is located (e.g., '2', 'B1', 'G'). Optional, max 4 characters."
                    },
                    "locationId": {
                      "type": "integer",
                      "readOnly": true,
                      "description": "The ID of the Location, which the Charging Zone belongs to."
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "enabled",
                        "disabled"
                      ]
                    },
                    "additionalInfo": {
                      "description": "Additional information for the charging zone that is shown in the mobile app when the Location is viewed.",
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean"
                        },
                        "title": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "description": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "description": "If `include[]=chargingZones` is provided with the request, the location charging zones will be provided here."
              },
              "roamingOperatorId": {
                "description": "For roaming Locations, the ID of the roaming operator is provided.",
                "type": "integer"
              },
              "isRoaming": {
                "description": "Indicates whether this location belongs to an external roaming operator (true) or is a local location owned by the requesting operator (false).",
                "type": "boolean",
                "readOnly": true
              },
              "partnerIds": {
                "description": "If `include[]=partnerIds` is provided with the request, returns unique IDs of all partners associated with the location through its charge points. Returns an empty array when no charge points have partner assignments.",
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "integer"
                }
              },
              "roaming": {
                "type": "object",
                "readOnly": true,
                "description": "Contains details about the owner, operator, and suboperator of the location as provided by the CPO partner via OCPI.",
                "properties": {
                  "owner": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The name of the location owner."
                      }
                    }
                  },
                  "operator": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The name of the location operator."
                      }
                    }
                  },
                  "suboperator": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The name of the location suboperator."
                      }
                    }
                  }
                }
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "externalAppData": {
                "description": "Used to hold any external application data related to the Location.",
                "type": "object",
                "nullable": true,
                "additionalProperties": true
              },
              "notes": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "summary",
                    "pinned",
                    "createdAt",
                    "updatedAt"
                  ],
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Unique identifier for the note",
                      "example": 123
                    },
                    "summary": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "Short summary or title of the note",
                      "example": "Important maintenance note"
                    },
                    "details": {
                      "type": "string",
                      "maxLength": 2000,
                      "description": "Detailed content of the note. Omitted when empty.",
                      "example": "This charge point requires monthly inspection due to high usage."
                    },
                    "pinned": {
                      "type": "boolean",
                      "description": "Whether the note is pinned (appears first in listings)",
                      "example": true
                    },
                    "createdByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who created the note. Omitted when unavailable.",
                      "example": 1
                    },
                    "updatedByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                      "example": 2
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was created",
                      "example": "2025-12-16T10:00:00Z"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was last updated",
                      "example": "2025-12-16T12:00:00Z"
                    }
                  }
                },
                "description": "If `include[]=notes` is provided with the request, the notes attached to this location will be provided here. Notes are returned with pinned notes first, then ordered by creation date descending."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "ISO 8601 formatted date"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "ISO 8601 formatted date"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "locationDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "locationUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId",
              "name",
              "geoposition",
              "address",
              "city",
              "country",
              "roamingOperatorId",
              "isRoaming",
              "accessibilityType"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to. Null for roaming locations.",
                "example": 1
              },
              "externalId": {
                "type": "string"
              },
              "name": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "status": {
                "type": "string",
                "description": "Deprecated.",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "description": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "shortDescription": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "additionalDescription": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "geoposition": {
                "type": "object",
                "properties": {
                  "latitude": {
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90
                  },
                  "longitude": {
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ]
              },
              "address": {
                "description": "The full address of the location",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "streetAddress": {
                "description": "The street address of the location",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "city": {
                "type": "string",
                "nullable": true
              },
              "region": {
                "type": "string",
                "nullable": true,
                "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
              },
              "state": {
                "description": "When the selected country is one of US, AU, CA, UM or RO",
                "anyOf": [
                  {
                    "title": "US State",
                    "description": "When the country is US.",
                    "type": "string",
                    "enum": [
                      "AL",
                      "AK",
                      "AS",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FM",
                      "FL",
                      "GA",
                      "GU",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MH",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "MP",
                      "OH",
                      "OK",
                      "OR",
                      "PW",
                      "PA",
                      "PR",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VI",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY"
                    ]
                  },
                  {
                    "title": "Australian State",
                    "description": "When the country is AU.",
                    "type": "string",
                    "enum": [
                      "NSW",
                      "VIC",
                      "QLD",
                      "WA",
                      "SA",
                      "TAS",
                      "ACT",
                      "NT",
                      "JBT",
                      "CX",
                      "NF",
                      "CC",
                      "AQ",
                      "CSI",
                      "ACI",
                      "HM"
                    ]
                  },
                  {
                    "title": "Canadian Province",
                    "description": "When the country is CA.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "BC",
                      "MB",
                      "NB",
                      "NL",
                      "NT",
                      "NS",
                      "NU",
                      "ON",
                      "PE",
                      "QC",
                      "SK",
                      "YT"
                    ]
                  },
                  {
                    "title": "US Minor Outlying Islands Territory",
                    "description": "When the country is UM.",
                    "type": "string",
                    "enum": [
                      "81",
                      "84",
                      "85",
                      "67",
                      "89",
                      "71",
                      "76",
                      "95",
                      "79"
                    ]
                  },
                  {
                    "title": "Romanian County",
                    "description": "When the country is RO.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "AR",
                      "AG",
                      "BC",
                      "BH",
                      "BN",
                      "BT",
                      "BV",
                      "BR",
                      "B",
                      "BZ",
                      "CL",
                      "CS",
                      "CT",
                      "CV",
                      "DB",
                      "DJ",
                      "GL",
                      "GR",
                      "GJ",
                      "HR",
                      "HD",
                      "IL",
                      "IS",
                      "IF",
                      "MM",
                      "MH",
                      "MS",
                      "NT",
                      "OT",
                      "PH",
                      "SM",
                      "SJ",
                      "SB",
                      "SV",
                      "TR",
                      "TM",
                      "TL",
                      "VS",
                      "VL",
                      "VN"
                    ]
                  }
                ]
              },
              "country": {
                "type": "string",
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW"
                ]
              },
              "postCode": {
                "type": "string",
                "nullable": true,
                "description": "Postal code of the location. Required for most countries — omitting it for those will result in a validation error."
              },
              "timezone": {
                "type": "string",
                "nullable": true,
                "description": "A valid timezone in the form of Area/Location, required when `Allow Multiple Time Zones` option is turned on in the Timezone Setting."
              },
              "parkingType": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "ALONG_MOTORWAY",
                  "PARKING_GARAGE",
                  "PARKING_LOT",
                  "ON_DRIVEWAY",
                  "ON_STREET",
                  "UNDERGROUND_GARAGE",
                  "IS_TENT",
                  "SECURE"
                ],
                "description": "Indicates the type of parking available at the charging location. This field helps EV drivers understand the physical parking environment before arrival.\n\n**Valid values:**\n- `ALONG_MOTORWAY` - Located along a motorway/highway, typically at rest areas or service stations\n- `PARKING_GARAGE` - Multi-level parking garage structure, either above-ground or mixed-use\n- `PARKING_LOT` - Surface parking lot, open-air parking area\n- `ON_DRIVEWAY` - Located on a private driveway, typically residential or small business\n- `ON_STREET` - Street-side parking, curbside charging locations\n- `UNDERGROUND_GARAGE` - Underground parking structure, subterranean parking facility\n- `IS_TENT` - Site located on the Trans-European Transport Network (Lithuania NAP / Via Lietuva extension; may not be interpreted by all roaming partners)\n- `SECURE` - Restricted-access parking such as gated lots, key-card access, or staffed parking (Lithuania NAP / Via Lietuva extension; may not be interpreted by all roaming partners)\n\n**Request behavior (POST/PATCH):**\n- Optional field when creating or updating locations\n- Send `null` to clear the parking type\n- Omit the field in PATCH requests to leave the existing value unchanged\n\n**Response behavior (GET):**\n- Field is omitted from the response when no parking type is configured (null in database)\n- When present, returns one of the valid enum values listed above\n"
              },
              "accessibilityType": {
                "description": "Determines how the accessibility of the location is reported to OICP (Hubject) roaming partners.\n\n- `free_publicly_accessible` - The charge point is reachable without a fee\n- `restricted_access` - Permission is required to reach the charge point (e.g. company or building complex)\n- `paid_publicly_accessible` - A fee is required to reach the charge point (e.g. a paid parking garage)\n",
                "type": "string",
                "enum": [
                  "free_publicly_accessible",
                  "restricted_access",
                  "paid_publicly_accessible"
                ]
              },
              "accessMethods": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "string",
                  "enum": [
                    "OPEN",
                    "TOKEN",
                    "LICENSE_PLATE",
                    "ACCESS_CODE",
                    "INTERCOM",
                    "PARKING_TICKET"
                  ]
                },
                "description": "Physical access methods available at this location. Multiple methods can be selected if the site supports different access types.\n\n**Request behavior (POST/PATCH):**\n- Optional field when creating or updating locations\n- Send `null` to clear all access methods\n- Send `[]` to store an empty access methods list\n- Duplicate values are automatically de-duplicated before storage\n- Omit the field in PATCH requests to leave the existing value unchanged\n\n**Response behavior (GET):**\n- Field is omitted from the response when no access methods are configured (null in database)\n- When access methods are configured but the array is empty, returns an empty array `[]`\n- When present, returns an array of valid enum values listed above\n\n**Available methods:**\n- `OPEN` - Publicly accessible without restrictions\n- `TOKEN` - Access via RFID token or card\n- `LICENSE_PLATE` - Access via license plate recognition\n- `ACCESS_CODE` - Access via PIN/access code entry\n- `INTERCOM` - Access via intercom system\n- `PARKING_TICKET` - Access via parking ticket validation\n",
                "example": [
                  "OPEN",
                  "TOKEN"
                ]
              },
              "facilities": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "string",
                  "enum": [
                    "AIRPORT",
                    "BATHROOM",
                    "BIKE_SHARING",
                    "BUS_STOP",
                    "CAFE",
                    "CARPOOL_PARKING",
                    "FUEL_STATION",
                    "HOTEL",
                    "MALL",
                    "METRO_STATION",
                    "MUSEUM",
                    "NATURE",
                    "PARKING_LOT",
                    "RECREATION_AREA",
                    "RESTAURANT",
                    "SPORT",
                    "STAFFED",
                    "SUPERMARKET",
                    "TAXI_STAND",
                    "TRAIN_STATION",
                    "TRAM_STOP",
                    "WIFI"
                  ]
                },
                "description": "Describes amenities and facilities available at or near the charging location. Most values are self-explanatory. Special categories include:\n- `RECREATION_AREA` - Parks, playgrounds, or leisure facilities\n- `CARPOOL_PARKING` - Dedicated parking for carpooling/ridesharing\n- `NATURE` - Natural attractions or green spaces\n- `STAFFED` - Location has staff present\n- `BATHROOM` - Bathroom facilities available\n\n**Request behavior (POST/PATCH):**\n- Optional field when creating or updating locations\n- Send `null` to clear all facilities\n- Send `[]` to store an empty facilities list\n- Duplicate values are automatically de-duplicated before storage\n- Omit the field in PATCH requests to leave the existing value unchanged\n\n**Response behavior (GET):**\n- Field is omitted from the response when no facilities are configured (null in database)\n- When facilities are configured but the array is empty, returns an empty array `[]`\n- When present, returns an array of valid enum values listed above\n"
              },
              "paymentOptions": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "string",
                  "enum": [
                    "EMV_CHIP_TERMINAL",
                    "NFC_CONTACTLESS_TERMINAL",
                    "QR_CODE_PAYMENT",
                    "WEB_PAYMENT",
                    "CASH_PAYMENT"
                  ],
                  "description": "Payment methods accepted at the charging location, as required by AFIR (Alternative Fuels Infrastructure Regulation) for regulatory reporting.\n\n- `EMV_CHIP_TERMINAL` - EMV chip card terminal (contact-based card payments)\n- `NFC_CONTACTLESS_TERMINAL` - NFC contactless payment terminal (tap-to-pay)\n- `QR_CODE_PAYMENT` - QR code-based payment\n- `WEB_PAYMENT` - Web-based payment (e.g., browser or app payment flow)\n- `CASH_PAYMENT` - Cash payment accepted\n"
                },
                "description": "Payment methods accepted at the charging location, as required by AFIR (Alternative Fuels Infrastructure Regulation) for regulatory reporting.\n\n**Null vs empty semantics:**\n- `null` - Not yet specified by the operator (unknown). Omitted from DATEX II reporting.\n- `[]` (empty array) - The operator explicitly confirmed that no payment options are available at this location.\n\n**Response behavior (GET):**\n- Field is omitted from the response when no payment options are configured (null in database)\n- When payment options are configured but the array is empty, returns an empty array `[]`\n- When present, returns an array of valid enum values listed above\n"
              },
              "acceptedPaymentBrands": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "string",
                  "enum": [
                    "VISA",
                    "MASTERCARD",
                    "MAESTRO",
                    "AMEX",
                    "GIROCARD",
                    "OTHER"
                  ],
                  "description": "Payment card brands accepted at the charging location. Only applicable when payment terminal options (`EMV_CHIP_TERMINAL` or `NFC_CONTACTLESS_TERMINAL`) are present in `paymentOptions`.\n\n- `VISA` - Visa\n- `MASTERCARD` - Mastercard\n- `MAESTRO` - Maestro\n- `AMEX` - American Express\n- `GIROCARD` - Girocard\n- `OTHER` - Other payment brand\n"
                },
                "description": "Payment card brands accepted at the charging location. Only applicable when `paymentOptions` includes a payment terminal option (`EMV_CHIP_TERMINAL` or `NFC_CONTACTLESS_TERMINAL`).\n\nIf `paymentOptions` does not contain any terminal option, this field will be `null`.\n\n**Response behavior (GET):**\n- Field is omitted from the response when no accepted payment brands are configured (null in database)\n- When accepted payment brands are configured but the array is empty, returns an empty array `[]`\n- When present, returns an array of valid enum values listed above\n"
              },
              "locationImage": {
                "type": "object",
                "nullable": true,
                "readOnly": true,
                "description": "If `include[]=locationImage` is provided with the request, the `locationImageId` will be replaced with the `locationImage` object if a location image has been assigned to the Location",
                "properties": {
                  "original": {
                    "type": "string",
                    "description": "URL to the original image"
                  },
                  "thumbnail": {
                    "type": "string",
                    "description": "URL to a thumbnail image"
                  },
                  "mimeType": {
                    "type": "string"
                  },
                  "category": {
                    "description": "Category of an image associated with a location:\n- **charger**: Photo of the charging station or charger\n- **entrance**: Photo of the entrance to the location\n- **location**: Photo of the location overview\n- **network**: Logo of the network or operator group\n- **operator**: Logo of the operator\n- **other**: Other image\n- **owner**: Logo of the owner\n",
                    "type": "string",
                    "enum": [
                      "charger",
                      "entrance",
                      "location",
                      "network",
                      "operator",
                      "other",
                      "owner"
                    ]
                  }
                },
                "required": [
                  "original",
                  "mimeType"
                ]
              },
              "locationPin": {
                "readOnly": true,
                "description": "If `include[]=locationPin` is provided with the request, the `locationPin` object will be returned if a custom pin image has been assigned to the Location",
                "type": "object",
                "properties": {
                  "original": {
                    "type": "string",
                    "description": "URL to the original image"
                  },
                  "thumbnail": {
                    "type": "string",
                    "description": "URL to a thumbnail image"
                  },
                  "mimeType": {
                    "type": "string"
                  },
                  "category": {
                    "description": "Category of an image associated with a location:\n- **charger**: Photo of the charging station or charger\n- **entrance**: Photo of the entrance to the location\n- **location**: Photo of the location overview\n- **network**: Logo of the network or operator group\n- **operator**: Logo of the operator\n- **other**: Other image\n- **owner**: Logo of the owner\n",
                    "type": "string",
                    "enum": [
                      "charger",
                      "entrance",
                      "location",
                      "network",
                      "operator",
                      "other",
                      "owner"
                    ]
                  }
                },
                "required": [
                  "original",
                  "mimeType"
                ]
              },
              "images": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "original": {
                      "type": "string",
                      "description": "URL to the original image"
                    },
                    "thumbnail": {
                      "type": "string",
                      "description": "URL to a thumbnail image"
                    },
                    "mimeType": {
                      "type": "string"
                    },
                    "category": {
                      "description": "Category of an image associated with a location:\n- **charger**: Photo of the charging station or charger\n- **entrance**: Photo of the entrance to the location\n- **location**: Photo of the location overview\n- **network**: Logo of the network or operator group\n- **operator**: Logo of the operator\n- **other**: Other image\n- **owner**: Logo of the owner\n",
                      "type": "string",
                      "enum": [
                        "charger",
                        "entrance",
                        "location",
                        "network",
                        "operator",
                        "other",
                        "owner"
                      ]
                    }
                  },
                  "required": [
                    "original",
                    "mimeType"
                  ]
                },
                "readOnly": true,
                "description": "If `include[]=images` is provided with the request, this array will contain the properties of all images assigned to the location."
              },
              "workingHours": {
                "type": "object",
                "properties": {
                  "isAlwaysOpen": {
                    "type": "boolean",
                    "description": "Indicates that the location is always open for charging. If set to false, the `hours` field is required, otherwise it should be ignored.\n"
                  },
                  "allowChargingOutsideWorkingHours": {
                    "type": "boolean",
                    "description": "When enabled, charging sessions can be started even when the location\nis outside its working hours. The location will still appear as closed\nto users. When this is true, stopSessionOutsideWorkingHours is\neffectively ignored.\n"
                  },
                  "stopSessionOutsideWorkingHours": {
                    "type": "boolean",
                    "nullable": true,
                    "description": "If a User has initiated a charging session during Working hours but it is already outside of the Working hours, the session will be terminated by the system. This is valid only for Users that are not included in one of the User Groups for which the Location is available 24/7.\n"
                  },
                  "alwaysOpenForUserGroupIds": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "nullable": true,
                    "example": [
                      1,
                      2,
                      3
                    ]
                  },
                  "hours": {
                    "type": "object",
                    "nullable": true,
                    "description": "The times should be considered to be in the location/tenant timezone.\nIf a day does not have any working hour intervals, it will be treated as closed for the whole day.\n",
                    "properties": {
                      "monday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "tuesday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "wednesday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "thursday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "friday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "saturday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      },
                      "sunday": {
                        "type": "array",
                        "description": "Working hours interval for single day",
                        "items": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "string",
                              "format": "time",
                              "example": "01:00"
                            },
                            "end": {
                              "type": "string",
                              "format": "time",
                              "example": "09:00"
                            }
                          },
                          "required": [
                            "start",
                            "end"
                          ]
                        }
                      }
                    }
                  }
                }
              },
              "chargingZones": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string",
                      "description": "Internal name of the Charging Zone. This isn't visible to end-users in the app."
                    },
                    "floorLevel": {
                      "type": "string",
                      "maxLength": 4,
                      "description": "Floor level where charging zone is located (e.g., '2', 'B1', 'G'). Optional, max 4 characters."
                    },
                    "locationId": {
                      "type": "integer",
                      "readOnly": true,
                      "description": "The ID of the Location, which the Charging Zone belongs to."
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "enabled",
                        "disabled"
                      ]
                    },
                    "additionalInfo": {
                      "description": "Additional information for the charging zone that is shown in the mobile app when the Location is viewed.",
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean"
                        },
                        "title": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "description": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "description": "If `include[]=chargingZones` is provided with the request, the location charging zones will be provided here."
              },
              "roamingOperatorId": {
                "description": "For roaming Locations, the ID of the roaming operator is provided.",
                "type": "integer"
              },
              "isRoaming": {
                "description": "Indicates whether this location belongs to an external roaming operator (true) or is a local location owned by the requesting operator (false).",
                "type": "boolean",
                "readOnly": true
              },
              "partnerIds": {
                "description": "If `include[]=partnerIds` is provided with the request, returns unique IDs of all partners associated with the location through its charge points. Returns an empty array when no charge points have partner assignments.",
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "integer"
                }
              },
              "roaming": {
                "type": "object",
                "readOnly": true,
                "description": "Contains details about the owner, operator, and suboperator of the location as provided by the CPO partner via OCPI.",
                "properties": {
                  "owner": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The name of the location owner."
                      }
                    }
                  },
                  "operator": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The name of the location operator."
                      }
                    }
                  },
                  "suboperator": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The name of the location suboperator."
                      }
                    }
                  }
                }
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "externalAppData": {
                "description": "Used to hold any external application data related to the Location.",
                "type": "object",
                "nullable": true,
                "additionalProperties": true
              },
              "notes": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "summary",
                    "pinned",
                    "createdAt",
                    "updatedAt"
                  ],
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Unique identifier for the note",
                      "example": 123
                    },
                    "summary": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "Short summary or title of the note",
                      "example": "Important maintenance note"
                    },
                    "details": {
                      "type": "string",
                      "maxLength": 2000,
                      "description": "Detailed content of the note. Omitted when empty.",
                      "example": "This charge point requires monthly inspection due to high usage."
                    },
                    "pinned": {
                      "type": "boolean",
                      "description": "Whether the note is pinned (appears first in listings)",
                      "example": true
                    },
                    "createdByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who created the note. Omitted when unavailable.",
                      "example": 1
                    },
                    "updatedByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                      "example": 2
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was created",
                      "example": "2025-12-16T10:00:00Z"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was last updated",
                      "example": "2025-12-16T12:00:00Z"
                    }
                  }
                },
                "description": "If `include[]=notes` is provided with the request, the notes attached to this location will be provided here. Notes are returned with pinned notes first, then ordered by creation date descending."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "ISO 8601 formatted date"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "ISO 8601 formatted date"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "locationChargingZonesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "required": [
                "name",
                "status"
              ],
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "name": {
                  "type": "string",
                  "description": "Internal name of the Charging Zone. This isn't visible to end-users in the app."
                },
                "floorLevel": {
                  "type": "string",
                  "maxLength": 4,
                  "description": "Floor level where charging zone is located (e.g., '2', 'B1', 'G'). Optional, max 4 characters."
                },
                "locationId": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "The ID of the Location, which the Charging Zone belongs to."
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "enabled",
                    "disabled"
                  ]
                },
                "additionalInfo": {
                  "description": "Additional information for the charging zone that is shown in the mobile app when the Location is viewed.",
                  "type": "object",
                  "properties": {
                    "enabled": {
                      "type": "boolean"
                    },
                    "title": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "description": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "locationChargingZoneCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "name",
              "status"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "Internal name of the Charging Zone. This isn't visible to end-users in the app."
              },
              "floorLevel": {
                "type": "string",
                "maxLength": 4,
                "description": "Floor level where charging zone is located (e.g., '2', 'B1', 'G'). Optional, max 4 characters."
              },
              "locationId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the Location, which the Charging Zone belongs to."
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "additionalInfo": {
                "description": "Additional information for the charging zone that is shown in the mobile app when the Location is viewed.",
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean"
                  },
                  "title": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "description": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "locationChargingZoneRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "name",
              "status"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "Internal name of the Charging Zone. This isn't visible to end-users in the app."
              },
              "floorLevel": {
                "type": "string",
                "maxLength": 4,
                "description": "Floor level where charging zone is located (e.g., '2', 'B1', 'G'). Optional, max 4 characters."
              },
              "locationId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the Location, which the Charging Zone belongs to."
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "additionalInfo": {
                "description": "Additional information for the charging zone that is shown in the mobile app when the Location is viewed.",
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean"
                  },
                  "title": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "description": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "locationChargingZoneDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "locationChargingZoneUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "name",
              "status"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "Internal name of the Charging Zone. This isn't visible to end-users in the app."
              },
              "floorLevel": {
                "type": "string",
                "maxLength": 4,
                "description": "Floor level where charging zone is located (e.g., '2', 'B1', 'G'). Optional, max 4 characters."
              },
              "locationId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the Location, which the Charging Zone belongs to."
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "additionalInfo": {
                "description": "Additional information for the charging zone that is shown in the mobile app when the Location is viewed.",
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean"
                  },
                  "title": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "description": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "locationNotesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "summary",
                "pinned",
                "createdAt",
                "updatedAt"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Unique identifier for the note",
                  "example": 123
                },
                "summary": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "Short summary or title of the note",
                  "example": "Important maintenance note"
                },
                "details": {
                  "type": "string",
                  "maxLength": 2000,
                  "description": "Detailed content of the note. Omitted when empty.",
                  "example": "This charge point requires monthly inspection due to high usage."
                },
                "pinned": {
                  "type": "boolean",
                  "description": "Whether the note is pinned (appears first in listings)",
                  "example": true
                },
                "createdByAdminId": {
                  "type": "integer",
                  "description": "ID of the admin who created the note. Omitted when unavailable.",
                  "example": 1
                },
                "updatedByAdminId": {
                  "type": "integer",
                  "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                  "example": 2
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO-8601 timestamp when the note was created",
                  "example": "2025-12-16T10:00:00Z"
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO-8601 timestamp when the note was last updated",
                  "example": "2025-12-16T12:00:00Z"
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "locationNoteCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "pinned",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier for the note",
                "example": 123
              },
              "summary": {
                "type": "string",
                "maxLength": 255,
                "description": "Short summary or title of the note",
                "example": "Important maintenance note"
              },
              "details": {
                "type": "string",
                "maxLength": 2000,
                "description": "Detailed content of the note. Omitted when empty.",
                "example": "This charge point requires monthly inspection due to high usage."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the note is pinned (appears first in listings)",
                "example": true
              },
              "createdByAdminId": {
                "type": "integer",
                "description": "ID of the admin who created the note. Omitted when unavailable.",
                "example": 1
              },
              "updatedByAdminId": {
                "type": "integer",
                "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                "example": 2
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was created",
                "example": "2025-12-16T10:00:00Z"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was last updated",
                "example": "2025-12-16T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "locationNoteShow": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "pinned",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier for the note",
                "example": 123
              },
              "summary": {
                "type": "string",
                "maxLength": 255,
                "description": "Short summary or title of the note",
                "example": "Important maintenance note"
              },
              "details": {
                "type": "string",
                "maxLength": 2000,
                "description": "Detailed content of the note. Omitted when empty.",
                "example": "This charge point requires monthly inspection due to high usage."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the note is pinned (appears first in listings)",
                "example": true
              },
              "createdByAdminId": {
                "type": "integer",
                "description": "ID of the admin who created the note. Omitted when unavailable.",
                "example": 1
              },
              "updatedByAdminId": {
                "type": "integer",
                "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                "example": 2
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was created",
                "example": "2025-12-16T10:00:00Z"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was last updated",
                "example": "2025-12-16T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "locationNoteDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "locationNoteUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "pinned",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier for the note",
                "example": 123
              },
              "summary": {
                "type": "string",
                "maxLength": 255,
                "description": "Short summary or title of the note",
                "example": "Important maintenance note"
              },
              "details": {
                "type": "string",
                "maxLength": 2000,
                "description": "Detailed content of the note. Omitted when empty.",
                "example": "This charge point requires monthly inspection due to high usage."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the note is pinned (appears first in listings)",
                "example": true
              },
              "createdByAdminId": {
                "type": "integer",
                "description": "ID of the admin who created the note. Omitted when unavailable.",
                "example": 1
              },
              "updatedByAdminId": {
                "type": "integer",
                "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                "example": 2
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was created",
                "example": "2025-12-16T10:00:00Z"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was last updated",
                "example": "2025-12-16T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "operatorsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "Operator ID"
                },
                "name": {
                  "type": "string",
                  "readOnly": true,
                  "description": "**This property is deprecated. Use `translatedName` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedName`.\n\nOperator name\n",
                  "deprecated": true
                },
                "translatedName": {
                  "readOnly": true,
                  "description": "Operator name in every locale it has been translated to. Empty when no translations exist.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "email": {
                  "type": "string",
                  "format": "email",
                  "readOnly": true,
                  "description": "Primary contact email"
                },
                "phone": {
                  "type": "string",
                  "readOnly": true,
                  "description": "Primary contact phone"
                },
                "timezone": {
                  "type": "string",
                  "readOnly": true,
                  "description": "Operator's timezone",
                  "example": "Europe/Sofia"
                },
                "locale": {
                  "type": "string",
                  "readOnly": true,
                  "description": "Default locale",
                  "example": "en"
                },
                "currency": {
                  "readOnly": true,
                  "description": "ISO 4217 currency code",
                  "type": "string",
                  "enum": [
                    "AED",
                    "AFN",
                    "ALL",
                    "AMD",
                    "ANG",
                    "AOA",
                    "ARS",
                    "AUD",
                    "AWG",
                    "AZN",
                    "BAM",
                    "BBD",
                    "BDT",
                    "BGN",
                    "BHD",
                    "BIF",
                    "BMD",
                    "BND",
                    "BOB",
                    "BOV",
                    "BRL",
                    "BSD",
                    "BTN",
                    "BWP",
                    "BYN",
                    "BZD",
                    "CAD",
                    "CDF",
                    "CHE",
                    "CHF",
                    "CHW",
                    "CLF",
                    "CLP",
                    "CNY",
                    "COP",
                    "COU",
                    "CRC",
                    "CUC",
                    "CUP",
                    "CVE",
                    "CZK",
                    "DJF",
                    "DKK",
                    "DOP",
                    "DZD",
                    "EGP",
                    "ERN",
                    "ETB",
                    "EUR",
                    "FJD",
                    "FKP",
                    "GBP",
                    "GEL",
                    "GHS",
                    "GIP",
                    "GMD",
                    "GNF",
                    "GTQ",
                    "GYD",
                    "HKD",
                    "HNL",
                    "HRK",
                    "HTG",
                    "HUF",
                    "IDR",
                    "ILS",
                    "INR",
                    "IQD",
                    "IRR",
                    "ISK",
                    "JMD",
                    "JOD",
                    "JPY",
                    "KES",
                    "KGS",
                    "KHR",
                    "KMF",
                    "KPW",
                    "KRW",
                    "KWD",
                    "KYD",
                    "KZT",
                    "LAK",
                    "LBP",
                    "LKR",
                    "LRD",
                    "LSL",
                    "LYD",
                    "MAD",
                    "MDL",
                    "MGA",
                    "MKD",
                    "MMK",
                    "MNT",
                    "MOP",
                    "MRU",
                    "MUR",
                    "MVR",
                    "MWK",
                    "MXN",
                    "MXV",
                    "MYR",
                    "MZN",
                    "NAD",
                    "NGN",
                    "NIO",
                    "NOK",
                    "NPR",
                    "NZD",
                    "OMR",
                    "PAB",
                    "PEN",
                    "PGK",
                    "PHP",
                    "PKR",
                    "PLN",
                    "PYG",
                    "QAR",
                    "RON",
                    "RSD",
                    "RUB",
                    "RWF",
                    "SAR",
                    "SBD",
                    "SCR",
                    "SDG",
                    "SEK",
                    "SGD",
                    "SHP",
                    "SLL",
                    "SOS",
                    "SRD",
                    "SSP",
                    "STN",
                    "SVC",
                    "SYP",
                    "SZL",
                    "THB",
                    "TJS",
                    "TMT",
                    "TND",
                    "TOP",
                    "TRY",
                    "TTD",
                    "TWD",
                    "TZS",
                    "UAH",
                    "UGX",
                    "USD",
                    "USN",
                    "UYI",
                    "UYU",
                    "UYW",
                    "UZS",
                    "VES",
                    "VND",
                    "VUV",
                    "WST",
                    "XAF",
                    "XAG",
                    "XAU",
                    "XBA",
                    "XBB",
                    "XBC",
                    "XBD",
                    "XCD",
                    "XDR",
                    "XOF",
                    "XPD",
                    "XPF",
                    "XPT",
                    "XSU",
                    "XTS",
                    "XUA",
                    "XXX",
                    "YER",
                    "ZAR",
                    "ZMW",
                    "ZWL"
                  ]
                },
                "country": {
                  "readOnly": true,
                  "description": "ISO 3166-1 alpha-2 country code",
                  "type": "string",
                  "enum": [
                    "AF",
                    "AX",
                    "AL",
                    "DZ",
                    "AS",
                    "AD",
                    "AO",
                    "AI",
                    "AQ",
                    "AG",
                    "AR",
                    "AM",
                    "AW",
                    "AU",
                    "AT",
                    "AZ",
                    "BS",
                    "BH",
                    "BD",
                    "BB",
                    "BY",
                    "BE",
                    "BZ",
                    "BJ",
                    "BM",
                    "BT",
                    "BO",
                    "BQ",
                    "BA",
                    "BW",
                    "BV",
                    "BR",
                    "IO",
                    "BN",
                    "BG",
                    "BF",
                    "BI",
                    "KH",
                    "CM",
                    "CA",
                    "CV",
                    "KY",
                    "CF",
                    "TD",
                    "CL",
                    "CN",
                    "CX",
                    "CC",
                    "CO",
                    "KM",
                    "CG",
                    "CD",
                    "CK",
                    "CR",
                    "CI",
                    "HR",
                    "CU",
                    "CW",
                    "CY",
                    "CZ",
                    "DK",
                    "DJ",
                    "DM",
                    "DO",
                    "EC",
                    "EG",
                    "SV",
                    "GQ",
                    "ER",
                    "EE",
                    "ET",
                    "FK",
                    "FO",
                    "FJ",
                    "FI",
                    "FR",
                    "GF",
                    "PF",
                    "TF",
                    "GA",
                    "GM",
                    "GE",
                    "DE",
                    "GH",
                    "GI",
                    "GR",
                    "GL",
                    "GD",
                    "GP",
                    "GU",
                    "GT",
                    "GG",
                    "GN",
                    "GW",
                    "GY",
                    "HT",
                    "HM",
                    "VA",
                    "HN",
                    "HK",
                    "HU",
                    "IS",
                    "IN",
                    "ID",
                    "IR",
                    "IQ",
                    "IE",
                    "IM",
                    "IL",
                    "IT",
                    "JM",
                    "JP",
                    "JE",
                    "JO",
                    "KZ",
                    "KE",
                    "KI",
                    "KP",
                    "KR",
                    "XK",
                    "KW",
                    "KG",
                    "LA",
                    "LV",
                    "LB",
                    "LS",
                    "LR",
                    "LY",
                    "LI",
                    "LT",
                    "LU",
                    "MO",
                    "MK",
                    "MG",
                    "MW",
                    "MY",
                    "MV",
                    "ML",
                    "MT",
                    "MH",
                    "MQ",
                    "MR",
                    "MU",
                    "YT",
                    "MX",
                    "FM",
                    "MD",
                    "MC",
                    "MN",
                    "ME",
                    "MS",
                    "MA",
                    "MZ",
                    "MM",
                    "NA",
                    "NR",
                    "NP",
                    "NL",
                    "NC",
                    "NZ",
                    "NI",
                    "NE",
                    "NG",
                    "NU",
                    "NF",
                    "MP",
                    "NO",
                    "OM",
                    "PK",
                    "PW",
                    "PS",
                    "PA",
                    "PG",
                    "PY",
                    "PE",
                    "PH",
                    "PN",
                    "PL",
                    "PT",
                    "PR",
                    "QA",
                    "RE",
                    "RO",
                    "RU",
                    "RW",
                    "BL",
                    "SH",
                    "KN",
                    "LC",
                    "MF",
                    "PM",
                    "VC",
                    "WS",
                    "SM",
                    "ST",
                    "SA",
                    "SN",
                    "RS",
                    "SC",
                    "SL",
                    "SG",
                    "SX",
                    "SK",
                    "SI",
                    "SB",
                    "SO",
                    "ZA",
                    "GS",
                    "SS",
                    "ES",
                    "LK",
                    "SD",
                    "SR",
                    "SJ",
                    "SZ",
                    "SE",
                    "CH",
                    "SY",
                    "TW",
                    "TJ",
                    "TZ",
                    "TH",
                    "TL",
                    "TG",
                    "TK",
                    "TO",
                    "TT",
                    "TN",
                    "TR",
                    "TM",
                    "TC",
                    "TV",
                    "UG",
                    "UA",
                    "AE",
                    "GB",
                    "US",
                    "UM",
                    "UY",
                    "UZ",
                    "VU",
                    "VE",
                    "VN",
                    "VG",
                    "VI",
                    "WF",
                    "EH",
                    "YE",
                    "ZM",
                    "ZW"
                  ]
                },
                "default": {
                  "type": "boolean",
                  "readOnly": true,
                  "description": "Whether this is the default operator"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true,
                  "description": "Creation timestamp"
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true,
                  "description": "Last update timestamp"
                },
                "bankDetails": {
                  "readOnly": true,
                  "description": "Bank details of the operator. Only included when at least one bank detail field is enabled in the setting.",
                  "type": "object",
                  "properties": {
                    "bankIban": {
                      "type": "string",
                      "nullable": true,
                      "description": "IBAN of the bank account."
                    },
                    "bankCode": {
                      "type": "string",
                      "nullable": true,
                      "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                    },
                    "bankAccountNumber": {
                      "type": "string",
                      "nullable": true,
                      "description": "Bank account number."
                    },
                    "bankAccountType": {
                      "type": "string",
                      "nullable": true,
                      "description": "Type of the bank account."
                    },
                    "bankBic": {
                      "type": "string",
                      "nullable": true,
                      "description": "BIC/SWIFT code of the bank."
                    },
                    "bankName": {
                      "type": "string",
                      "nullable": true,
                      "description": "**This property is deprecated. Use `translatedBankName` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedBankName`.\n\nName of the bank.\n",
                      "deprecated": true
                    },
                    "bankAddress": {
                      "type": "string",
                      "nullable": true,
                      "description": "**This property is deprecated. Use `translatedBankAddress` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedBankAddress`.\n\nAddress of the bank.\n",
                      "deprecated": true
                    },
                    "bankAccountHolder": {
                      "type": "string",
                      "nullable": true,
                      "description": "**This property is deprecated. Use `translatedBankAccountHolder` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedBankAccountHolder`.\n\nName of the bank account holder.\n",
                      "deprecated": true
                    },
                    "translatedBankName": {
                      "readOnly": true,
                      "description": "Name of the bank in every locale it has been translated to. Empty when no translations exist.",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "translatedBankAccountHolder": {
                      "readOnly": true,
                      "description": "Name of the bank account holder in every locale it has been translated to. Empty when no translations exist.",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "translatedBankAddress": {
                      "readOnly": true,
                      "description": "Address of the bank in every locale it has been translated to. Empty when no translations exist.",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "required": [
                "id",
                "name",
                "translatedName",
                "currency",
                "default",
                "createdAt",
                "updatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "operatorRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "Operator ID"
              },
              "name": {
                "type": "string",
                "readOnly": true,
                "description": "**This property is deprecated. Use `translatedName` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedName`.\n\nOperator name\n",
                "deprecated": true
              },
              "translatedName": {
                "readOnly": true,
                "description": "Operator name in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "email": {
                "type": "string",
                "format": "email",
                "readOnly": true,
                "description": "Primary contact email"
              },
              "phone": {
                "type": "string",
                "readOnly": true,
                "description": "Primary contact phone"
              },
              "timezone": {
                "type": "string",
                "readOnly": true,
                "description": "Operator's timezone",
                "example": "Europe/Sofia"
              },
              "locale": {
                "type": "string",
                "readOnly": true,
                "description": "Default locale",
                "example": "en"
              },
              "currency": {
                "readOnly": true,
                "description": "ISO 4217 currency code",
                "type": "string",
                "enum": [
                  "AED",
                  "AFN",
                  "ALL",
                  "AMD",
                  "ANG",
                  "AOA",
                  "ARS",
                  "AUD",
                  "AWG",
                  "AZN",
                  "BAM",
                  "BBD",
                  "BDT",
                  "BGN",
                  "BHD",
                  "BIF",
                  "BMD",
                  "BND",
                  "BOB",
                  "BOV",
                  "BRL",
                  "BSD",
                  "BTN",
                  "BWP",
                  "BYN",
                  "BZD",
                  "CAD",
                  "CDF",
                  "CHE",
                  "CHF",
                  "CHW",
                  "CLF",
                  "CLP",
                  "CNY",
                  "COP",
                  "COU",
                  "CRC",
                  "CUC",
                  "CUP",
                  "CVE",
                  "CZK",
                  "DJF",
                  "DKK",
                  "DOP",
                  "DZD",
                  "EGP",
                  "ERN",
                  "ETB",
                  "EUR",
                  "FJD",
                  "FKP",
                  "GBP",
                  "GEL",
                  "GHS",
                  "GIP",
                  "GMD",
                  "GNF",
                  "GTQ",
                  "GYD",
                  "HKD",
                  "HNL",
                  "HRK",
                  "HTG",
                  "HUF",
                  "IDR",
                  "ILS",
                  "INR",
                  "IQD",
                  "IRR",
                  "ISK",
                  "JMD",
                  "JOD",
                  "JPY",
                  "KES",
                  "KGS",
                  "KHR",
                  "KMF",
                  "KPW",
                  "KRW",
                  "KWD",
                  "KYD",
                  "KZT",
                  "LAK",
                  "LBP",
                  "LKR",
                  "LRD",
                  "LSL",
                  "LYD",
                  "MAD",
                  "MDL",
                  "MGA",
                  "MKD",
                  "MMK",
                  "MNT",
                  "MOP",
                  "MRU",
                  "MUR",
                  "MVR",
                  "MWK",
                  "MXN",
                  "MXV",
                  "MYR",
                  "MZN",
                  "NAD",
                  "NGN",
                  "NIO",
                  "NOK",
                  "NPR",
                  "NZD",
                  "OMR",
                  "PAB",
                  "PEN",
                  "PGK",
                  "PHP",
                  "PKR",
                  "PLN",
                  "PYG",
                  "QAR",
                  "RON",
                  "RSD",
                  "RUB",
                  "RWF",
                  "SAR",
                  "SBD",
                  "SCR",
                  "SDG",
                  "SEK",
                  "SGD",
                  "SHP",
                  "SLL",
                  "SOS",
                  "SRD",
                  "SSP",
                  "STN",
                  "SVC",
                  "SYP",
                  "SZL",
                  "THB",
                  "TJS",
                  "TMT",
                  "TND",
                  "TOP",
                  "TRY",
                  "TTD",
                  "TWD",
                  "TZS",
                  "UAH",
                  "UGX",
                  "USD",
                  "USN",
                  "UYI",
                  "UYU",
                  "UYW",
                  "UZS",
                  "VES",
                  "VND",
                  "VUV",
                  "WST",
                  "XAF",
                  "XAG",
                  "XAU",
                  "XBA",
                  "XBB",
                  "XBC",
                  "XBD",
                  "XCD",
                  "XDR",
                  "XOF",
                  "XPD",
                  "XPF",
                  "XPT",
                  "XSU",
                  "XTS",
                  "XUA",
                  "XXX",
                  "YER",
                  "ZAR",
                  "ZMW",
                  "ZWL"
                ]
              },
              "country": {
                "readOnly": true,
                "description": "ISO 3166-1 alpha-2 country code",
                "type": "string",
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW"
                ]
              },
              "default": {
                "type": "boolean",
                "readOnly": true,
                "description": "Whether this is the default operator"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "Creation timestamp"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "Last update timestamp"
              },
              "bankDetails": {
                "readOnly": true,
                "description": "Bank details of the operator. Only included when at least one bank detail field is enabled in the setting.",
                "type": "object",
                "properties": {
                  "bankIban": {
                    "type": "string",
                    "nullable": true,
                    "description": "IBAN of the bank account."
                  },
                  "bankCode": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                  },
                  "bankAccountNumber": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank account number."
                  },
                  "bankAccountType": {
                    "type": "string",
                    "nullable": true,
                    "description": "Type of the bank account."
                  },
                  "bankBic": {
                    "type": "string",
                    "nullable": true,
                    "description": "BIC/SWIFT code of the bank."
                  },
                  "bankName": {
                    "type": "string",
                    "nullable": true,
                    "description": "**This property is deprecated. Use `translatedBankName` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedBankName`.\n\nName of the bank.\n",
                    "deprecated": true
                  },
                  "bankAddress": {
                    "type": "string",
                    "nullable": true,
                    "description": "**This property is deprecated. Use `translatedBankAddress` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedBankAddress`.\n\nAddress of the bank.\n",
                    "deprecated": true
                  },
                  "bankAccountHolder": {
                    "type": "string",
                    "nullable": true,
                    "description": "**This property is deprecated. Use `translatedBankAccountHolder` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedBankAccountHolder`.\n\nName of the bank account holder.\n",
                    "deprecated": true
                  },
                  "translatedBankName": {
                    "readOnly": true,
                    "description": "Name of the bank in every locale it has been translated to. Empty when no translations exist.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "translatedBankAccountHolder": {
                    "readOnly": true,
                    "description": "Name of the bank account holder in every locale it has been translated to. Empty when no translations exist.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "translatedBankAddress": {
                    "readOnly": true,
                    "description": "Address of the bank in every locale it has been translated to. Empty when no translations exist.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            },
            "required": [
              "id",
              "name",
              "translatedName",
              "currency",
              "default",
              "createdAt",
              "updatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "listParkingSpace": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "required": [
                "id",
                "operatorId",
                "locationId",
                "label",
                "status",
                "occupancyStatus",
                "lastUpdatedAt"
              ],
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "Unique identifier of the parking space."
                },
                "locationId": {
                  "type": "integer",
                  "description": "The ID of the location this parking space belongs to."
                },
                "label": {
                  "type": "string",
                  "description": "Display label for the parking space (max 255 characters)."
                },
                "externalId": {
                  "type": "string",
                  "description": "External system identifier for integration purposes. Unique per operator."
                },
                "latitude": {
                  "type": "number",
                  "format": "float",
                  "minimum": -90,
                  "maximum": 90,
                  "nullable": true,
                  "description": "GPS latitude coordinate (7 decimal places precision)."
                },
                "longitude": {
                  "type": "number",
                  "format": "float",
                  "minimum": -180,
                  "maximum": 180,
                  "nullable": true,
                  "description": "GPS longitude coordinate (7 decimal places precision)."
                },
                "directions": {
                  "type": "string",
                  "maxLength": 1000,
                  "nullable": true,
                  "description": "Textual navigation instructions to find the parking space."
                },
                "properties": {
                  "type": "object",
                  "description": "Physical characteristics and special features of the parking space.",
                  "properties": {
                    "width": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 500,
                      "nullable": true,
                      "description": "Width of the parking space in centimeters."
                    },
                    "length": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 2000,
                      "nullable": true,
                      "description": "Length of the parking space in centimeters."
                    },
                    "driveThrough": {
                      "type": "boolean",
                      "default": false,
                      "description": "Indicates if the parking space supports drive-through access."
                    },
                    "refrigerationOutlet": {
                      "type": "boolean",
                      "default": false,
                      "description": "Indicates if the parking space has a refrigeration outlet for auxiliary power."
                    },
                    "parkingDirection": {
                      "type": "string",
                      "enum": [
                        "parallel",
                        "perpendicular",
                        "angle"
                      ],
                      "description": "Parking space orientation relative to the street or access lane:\n- **parallel**: Vehicle parked parallel to the street or access lane\n- **perpendicular**: Vehicle parked perpendicular (90 degrees) to the street or access lane\n- **angle**: Vehicle parked at an angle to the street or access lane (typically 45-60 degrees)\n"
                    },
                    "roofed": {
                      "type": "boolean",
                      "default": false,
                      "description": "Indicates whether the parking space has overhead coverage/roof protection."
                    },
                    "lighting": {
                      "type": "boolean",
                      "default": false,
                      "description": "Indicates whether the parking space has lighting installed."
                    }
                  }
                },
                "accessibility": {
                  "type": "object",
                  "description": "Accessibility features for disabled users.",
                  "properties": {
                    "disabilitiesAccessible": {
                      "type": "boolean",
                      "default": false,
                      "description": "Indicates if the parking space is suitable but not necessarily designated or restricted only for use by people with disabilities."
                    },
                    "kerbHeightCm": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 100,
                      "default": 0,
                      "description": "Height of the kerb in centimeters."
                    },
                    "hearingLoop": {
                      "type": "boolean",
                      "default": false,
                      "description": "Indicates if a hearing loop system is available."
                    },
                    "tactilePaving": {
                      "type": "boolean",
                      "default": false,
                      "description": "Indicates if tactile paving is present for visually impaired users."
                    },
                    "brailleSignage": {
                      "type": "boolean",
                      "default": false,
                      "description": "Indicates if braille signage is available."
                    },
                    "visualSignage": {
                      "type": "boolean",
                      "default": false,
                      "description": "Indicates if clear visual signage is present."
                    },
                    "audioAnnouncements": {
                      "type": "boolean",
                      "default": false,
                      "description": "Indicates if audio announcements are available."
                    },
                    "accessiblePaymentTerminal": {
                      "type": "boolean",
                      "default": false,
                      "description": "Indicates if an accessible payment terminal is available."
                    }
                  }
                },
                "vehicleRestrictions": {
                  "type": "object",
                  "description": "Vehicle size restrictions and access rules.",
                  "properties": {
                    "maxWidth": {
                      "type": "integer",
                      "minimum": 0,
                      "nullable": true,
                      "description": "Maximum vehicle width in centimeters."
                    },
                    "maxLength": {
                      "type": "integer",
                      "minimum": 0,
                      "nullable": true,
                      "description": "Maximum vehicle length in centimeters."
                    },
                    "maxHeight": {
                      "type": "integer",
                      "minimum": 0,
                      "nullable": true,
                      "description": "Maximum vehicle height in centimeters."
                    },
                    "maxWeight": {
                      "type": "integer",
                      "minimum": 0,
                      "nullable": true,
                      "description": "Maximum vehicle weight in kilograms."
                    },
                    "supportedVehicleTypes": {
                      "type": "array",
                      "nullable": true,
                      "description": "Array of OCPI 2.3 compliant vehicle types allowed at this parking space. Send null or empty array to clear.",
                      "items": {
                        "type": "string",
                        "enum": [
                          "twoAndThreeWheelVehiclesAndQuadricycles",
                          "passengerVehicles",
                          "passengerVehiclesWithTrailer",
                          "lightDutyVans",
                          "heavyDutyTractorUnitsWithoutTrailer",
                          "heavyDutyTrucksWithoutArticulationPoint",
                          "heavyDutyTrucksWithTrailerAttached",
                          "busesOrMotorCoaches"
                        ],
                        "description": "Supported vehicle types compliant with OCPI 2.3 standard:\n- **twoAndThreeWheelVehiclesAndQuadricycles**: Motorcycles, scooters, quadricycles\n- **passengerVehicles**: Standard passenger cars\n- **passengerVehiclesWithTrailer**: Cars towing trailers\n- **lightDutyVans**: Light commercial vans\n- **heavyDutyTractorUnitsWithoutTrailer**: Tractor units (no trailer attached)\n- **heavyDutyTrucksWithoutArticulationPoint**: Rigid trucks\n- **heavyDutyTrucksWithTrailerAttached**: Articulated lorries\n- **busesOrMotorCoaches**: Buses and coaches\n"
                      }
                    },
                    "restrictedToSpecificVehicleTypes": {
                      "type": "boolean",
                      "default": false,
                      "description": "Indicates that the parking space is only allowed for the specific vehicle types."
                    },
                    "evOnly": {
                      "type": "boolean",
                      "default": false,
                      "description": "Parking space is restricted to electric vehicles only."
                    },
                    "whileChargingOnly": {
                      "type": "boolean",
                      "default": false,
                      "description": "Parking allowed only while actively charging."
                    },
                    "disabledPermitOnly": {
                      "type": "boolean",
                      "default": false,
                      "description": "Disabled parking permit required."
                    },
                    "customersOnly": {
                      "type": "boolean",
                      "default": false,
                      "description": "Restricted to customers of the operator."
                    },
                    "staffOnly": {
                      "type": "boolean",
                      "default": false,
                      "description": "Restricted to staff/employees only."
                    },
                    "deliveriesOnly": {
                      "type": "boolean",
                      "default": false,
                      "description": "Restricted to delivery vehicles only."
                    },
                    "permitRequired": {
                      "type": "boolean",
                      "default": false,
                      "description": "General parking permit required."
                    },
                    "taxisOnly": {
                      "type": "boolean",
                      "default": false,
                      "description": "Restricted to licensed taxis only."
                    },
                    "parkAndRide": {
                      "type": "boolean",
                      "default": false,
                      "description": "Designated as a park and ride facility."
                    },
                    "dangerousGoodsAllowed": {
                      "type": "boolean",
                      "default": false,
                      "description": "Indicates whether vehicles carrying dangerous goods are permitted to use this parking space."
                    },
                    "reservationRequired": {
                      "type": "boolean",
                      "default": false,
                      "description": "Indicates whether prior reservation is required to use this parking space."
                    },
                    "timeLimit": {
                      "type": "integer",
                      "minimum": 0,
                      "description": "Maximum allowed parking duration in minutes. Value of 0 indicates no time limit."
                    }
                  }
                },
                "compliance": {
                  "type": "object",
                  "description": "Compliance standards and certifications applicable to this parking space.",
                  "properties": {
                    "standards": {
                      "type": "array",
                      "description": "List of compliance standards applicable to this parking space (e.g., \"PAS 1899\", \"ISO 17438\", \"3-101/D1-26\"). Each standard identifier limited to 100 characters.\n\nKnown compliance standards:\n  * `3-101/D1-26` — Lithuanian national standard for disabled-access parking, required by the Via Lietuva NAP for wheelchair-accessible parking spaces.\n  * `PAS 1899` — BSI/Motability publicly available specification for accessible electric vehicle charging.\n  * `ISO 17438` — ITS standard family for electronic information exchange about parking facilities.\n",
                      "items": {
                        "type": "string",
                        "maxLength": 100
                      }
                    },
                    "apdsReference": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "Reference identifier for the Accessible Parking Data Standard (APDS) specification."
                    }
                  }
                },
                "disabilitiesAccessible": {
                  "deprecated": true,
                  "type": "boolean"
                },
                "evses": {
                  "deprecated": true,
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The list of EVSE IDs at the same Parking Space. EVSEs must belong to the same charging zone. Each EVSE will be auto-assigned with position \"front\" and marked as not primary."
                },
                "operatorId": {
                  "type": "integer",
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "description": "Current operational status of the parking space:\n- **enabled**: Parking space is active and can be used\n- **disabled**: Parking space is inactive and cannot be used\n"
                },
                "occupancyStatus": {
                  "type": "string",
                  "enum": [
                    "unknown",
                    "available",
                    "occupied",
                    "blocked"
                  ],
                  "description": "Current occupancy status of the parking space:\n- **unknown**: Occupancy status cannot be determined (default)\n- **available**: Parking space is free and ready for use\n- **occupied**: Parking space is currently in use\n- **blocked**: Parking space is physically blocked (roadworks, barriers, planned maintenance)\n"
                },
                "accessibleEvses": {
                  "type": "array",
                  "description": "EVSEs associated with this parking space. Contains the position of the EVSE and is the primary of the parking space when include=accessibleEvses is used.",
                  "items": {
                    "type": "object",
                    "description": "Represents how an EVSE is linked to a parking space, including its physical position and whether it's the primary EVSE for that space.",
                    "properties": {
                      "parkingSpaceId": {
                        "type": "integer",
                        "description": "The ID of the associated parking space."
                      },
                      "evseId": {
                        "type": "integer",
                        "description": "The ID of the associated EVSE."
                      },
                      "position": {
                        "description": "Physical position of the EVSE relative to the parking space:\n- **front**: EVSE at front of parking space\n- **rear**: EVSE at rear of parking space\n- **left**: EVSE on left side of parking space\n- **right**: EVSE on right side of parking space\n- **frontLeft**: EVSE at front-left corner\n- **frontRight**: EVSE at front-right corner\n- **rearLeft**: EVSE at rear-left corner\n- **rearRight**: EVSE at rear-right corner\n",
                        "type": "string",
                        "enum": [
                          "front",
                          "rear",
                          "left",
                          "right",
                          "frontLeft",
                          "frontRight",
                          "rearLeft",
                          "rearRight"
                        ]
                      },
                      "isPrimary": {
                        "type": "boolean",
                        "description": "Indicates if this is the primary EVSE for the parking space. Only one EVSE can be marked as primary per parking space."
                      }
                    },
                    "required": [
                      "parkingSpaceId",
                      "evseId",
                      "position",
                      "isPrimary"
                    ]
                  }
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "createParkingSpace": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId",
              "locationId",
              "label",
              "status",
              "occupancyStatus",
              "lastUpdatedAt"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "Unique identifier of the parking space."
              },
              "locationId": {
                "type": "integer",
                "description": "The ID of the location this parking space belongs to."
              },
              "label": {
                "type": "string",
                "description": "Display label for the parking space (max 255 characters)."
              },
              "externalId": {
                "type": "string",
                "description": "External system identifier for integration purposes. Unique per operator."
              },
              "latitude": {
                "type": "number",
                "format": "float",
                "minimum": -90,
                "maximum": 90,
                "nullable": true,
                "description": "GPS latitude coordinate (7 decimal places precision)."
              },
              "longitude": {
                "type": "number",
                "format": "float",
                "minimum": -180,
                "maximum": 180,
                "nullable": true,
                "description": "GPS longitude coordinate (7 decimal places precision)."
              },
              "directions": {
                "type": "string",
                "maxLength": 1000,
                "nullable": true,
                "description": "Textual navigation instructions to find the parking space."
              },
              "properties": {
                "type": "object",
                "description": "Physical characteristics and special features of the parking space.",
                "properties": {
                  "width": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 500,
                    "nullable": true,
                    "description": "Width of the parking space in centimeters."
                  },
                  "length": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 2000,
                    "nullable": true,
                    "description": "Length of the parking space in centimeters."
                  },
                  "driveThrough": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if the parking space supports drive-through access."
                  },
                  "refrigerationOutlet": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if the parking space has a refrigeration outlet for auxiliary power."
                  },
                  "parkingDirection": {
                    "type": "string",
                    "enum": [
                      "parallel",
                      "perpendicular",
                      "angle"
                    ],
                    "description": "Parking space orientation relative to the street or access lane:\n- **parallel**: Vehicle parked parallel to the street or access lane\n- **perpendicular**: Vehicle parked perpendicular (90 degrees) to the street or access lane\n- **angle**: Vehicle parked at an angle to the street or access lane (typically 45-60 degrees)\n"
                  },
                  "roofed": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates whether the parking space has overhead coverage/roof protection."
                  },
                  "lighting": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates whether the parking space has lighting installed."
                  }
                }
              },
              "accessibility": {
                "type": "object",
                "description": "Accessibility features for disabled users.",
                "properties": {
                  "disabilitiesAccessible": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if the parking space is suitable but not necessarily designated or restricted only for use by people with disabilities."
                  },
                  "kerbHeightCm": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 100,
                    "default": 0,
                    "description": "Height of the kerb in centimeters."
                  },
                  "hearingLoop": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if a hearing loop system is available."
                  },
                  "tactilePaving": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if tactile paving is present for visually impaired users."
                  },
                  "brailleSignage": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if braille signage is available."
                  },
                  "visualSignage": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if clear visual signage is present."
                  },
                  "audioAnnouncements": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if audio announcements are available."
                  },
                  "accessiblePaymentTerminal": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if an accessible payment terminal is available."
                  }
                }
              },
              "vehicleRestrictions": {
                "type": "object",
                "description": "Vehicle size restrictions and access rules.",
                "properties": {
                  "maxWidth": {
                    "type": "integer",
                    "minimum": 0,
                    "nullable": true,
                    "description": "Maximum vehicle width in centimeters."
                  },
                  "maxLength": {
                    "type": "integer",
                    "minimum": 0,
                    "nullable": true,
                    "description": "Maximum vehicle length in centimeters."
                  },
                  "maxHeight": {
                    "type": "integer",
                    "minimum": 0,
                    "nullable": true,
                    "description": "Maximum vehicle height in centimeters."
                  },
                  "maxWeight": {
                    "type": "integer",
                    "minimum": 0,
                    "nullable": true,
                    "description": "Maximum vehicle weight in kilograms."
                  },
                  "supportedVehicleTypes": {
                    "type": "array",
                    "nullable": true,
                    "description": "Array of OCPI 2.3 compliant vehicle types allowed at this parking space. Send null or empty array to clear.",
                    "items": {
                      "type": "string",
                      "enum": [
                        "twoAndThreeWheelVehiclesAndQuadricycles",
                        "passengerVehicles",
                        "passengerVehiclesWithTrailer",
                        "lightDutyVans",
                        "heavyDutyTractorUnitsWithoutTrailer",
                        "heavyDutyTrucksWithoutArticulationPoint",
                        "heavyDutyTrucksWithTrailerAttached",
                        "busesOrMotorCoaches"
                      ],
                      "description": "Supported vehicle types compliant with OCPI 2.3 standard:\n- **twoAndThreeWheelVehiclesAndQuadricycles**: Motorcycles, scooters, quadricycles\n- **passengerVehicles**: Standard passenger cars\n- **passengerVehiclesWithTrailer**: Cars towing trailers\n- **lightDutyVans**: Light commercial vans\n- **heavyDutyTractorUnitsWithoutTrailer**: Tractor units (no trailer attached)\n- **heavyDutyTrucksWithoutArticulationPoint**: Rigid trucks\n- **heavyDutyTrucksWithTrailerAttached**: Articulated lorries\n- **busesOrMotorCoaches**: Buses and coaches\n"
                    }
                  },
                  "restrictedToSpecificVehicleTypes": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates that the parking space is only allowed for the specific vehicle types."
                  },
                  "evOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Parking space is restricted to electric vehicles only."
                  },
                  "whileChargingOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Parking allowed only while actively charging."
                  },
                  "disabledPermitOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Disabled parking permit required."
                  },
                  "customersOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Restricted to customers of the operator."
                  },
                  "staffOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Restricted to staff/employees only."
                  },
                  "deliveriesOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Restricted to delivery vehicles only."
                  },
                  "permitRequired": {
                    "type": "boolean",
                    "default": false,
                    "description": "General parking permit required."
                  },
                  "taxisOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Restricted to licensed taxis only."
                  },
                  "parkAndRide": {
                    "type": "boolean",
                    "default": false,
                    "description": "Designated as a park and ride facility."
                  },
                  "dangerousGoodsAllowed": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates whether vehicles carrying dangerous goods are permitted to use this parking space."
                  },
                  "reservationRequired": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates whether prior reservation is required to use this parking space."
                  },
                  "timeLimit": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Maximum allowed parking duration in minutes. Value of 0 indicates no time limit."
                  }
                }
              },
              "compliance": {
                "type": "object",
                "description": "Compliance standards and certifications applicable to this parking space.",
                "properties": {
                  "standards": {
                    "type": "array",
                    "description": "List of compliance standards applicable to this parking space (e.g., \"PAS 1899\", \"ISO 17438\", \"3-101/D1-26\"). Each standard identifier limited to 100 characters.\n\nKnown compliance standards:\n  * `3-101/D1-26` — Lithuanian national standard for disabled-access parking, required by the Via Lietuva NAP for wheelchair-accessible parking spaces.\n  * `PAS 1899` — BSI/Motability publicly available specification for accessible electric vehicle charging.\n  * `ISO 17438` — ITS standard family for electronic information exchange about parking facilities.\n",
                    "items": {
                      "type": "string",
                      "maxLength": 100
                    }
                  },
                  "apdsReference": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "Reference identifier for the Accessible Parking Data Standard (APDS) specification."
                  }
                }
              },
              "disabilitiesAccessible": {
                "deprecated": true,
                "type": "boolean"
              },
              "evses": {
                "deprecated": true,
                "type": "array",
                "items": {
                  "type": "integer"
                },
                "description": "The list of EVSE IDs at the same Parking Space. EVSEs must belong to the same charging zone. Each EVSE will be auto-assigned with position \"front\" and marked as not primary."
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "description": "Current operational status of the parking space:\n- **enabled**: Parking space is active and can be used\n- **disabled**: Parking space is inactive and cannot be used\n"
              },
              "occupancyStatus": {
                "type": "string",
                "enum": [
                  "unknown",
                  "available",
                  "occupied",
                  "blocked"
                ],
                "description": "Current occupancy status of the parking space:\n- **unknown**: Occupancy status cannot be determined (default)\n- **available**: Parking space is free and ready for use\n- **occupied**: Parking space is currently in use\n- **blocked**: Parking space is physically blocked (roadworks, barriers, planned maintenance)\n"
              },
              "accessibleEvses": {
                "type": "array",
                "description": "EVSEs associated with this parking space. Contains the position of the EVSE and is the primary of the parking space when include=accessibleEvses is used.",
                "items": {
                  "type": "object",
                  "description": "Represents how an EVSE is linked to a parking space, including its physical position and whether it's the primary EVSE for that space.",
                  "properties": {
                    "parkingSpaceId": {
                      "type": "integer",
                      "description": "The ID of the associated parking space."
                    },
                    "evseId": {
                      "type": "integer",
                      "description": "The ID of the associated EVSE."
                    },
                    "position": {
                      "description": "Physical position of the EVSE relative to the parking space:\n- **front**: EVSE at front of parking space\n- **rear**: EVSE at rear of parking space\n- **left**: EVSE on left side of parking space\n- **right**: EVSE on right side of parking space\n- **frontLeft**: EVSE at front-left corner\n- **frontRight**: EVSE at front-right corner\n- **rearLeft**: EVSE at rear-left corner\n- **rearRight**: EVSE at rear-right corner\n",
                      "type": "string",
                      "enum": [
                        "front",
                        "rear",
                        "left",
                        "right",
                        "frontLeft",
                        "frontRight",
                        "rearLeft",
                        "rearRight"
                      ]
                    },
                    "isPrimary": {
                      "type": "boolean",
                      "description": "Indicates if this is the primary EVSE for the parking space. Only one EVSE can be marked as primary per parking space."
                    }
                  },
                  "required": [
                    "parkingSpaceId",
                    "evseId",
                    "position",
                    "isPrimary"
                  ]
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getParkingSpace": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId",
              "locationId",
              "label",
              "status",
              "occupancyStatus",
              "lastUpdatedAt"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "Unique identifier of the parking space."
              },
              "locationId": {
                "type": "integer",
                "description": "The ID of the location this parking space belongs to."
              },
              "label": {
                "type": "string",
                "description": "Display label for the parking space (max 255 characters)."
              },
              "externalId": {
                "type": "string",
                "description": "External system identifier for integration purposes. Unique per operator."
              },
              "latitude": {
                "type": "number",
                "format": "float",
                "minimum": -90,
                "maximum": 90,
                "nullable": true,
                "description": "GPS latitude coordinate (7 decimal places precision)."
              },
              "longitude": {
                "type": "number",
                "format": "float",
                "minimum": -180,
                "maximum": 180,
                "nullable": true,
                "description": "GPS longitude coordinate (7 decimal places precision)."
              },
              "directions": {
                "type": "string",
                "maxLength": 1000,
                "nullable": true,
                "description": "Textual navigation instructions to find the parking space."
              },
              "properties": {
                "type": "object",
                "description": "Physical characteristics and special features of the parking space.",
                "properties": {
                  "width": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 500,
                    "nullable": true,
                    "description": "Width of the parking space in centimeters."
                  },
                  "length": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 2000,
                    "nullable": true,
                    "description": "Length of the parking space in centimeters."
                  },
                  "driveThrough": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if the parking space supports drive-through access."
                  },
                  "refrigerationOutlet": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if the parking space has a refrigeration outlet for auxiliary power."
                  },
                  "parkingDirection": {
                    "type": "string",
                    "enum": [
                      "parallel",
                      "perpendicular",
                      "angle"
                    ],
                    "description": "Parking space orientation relative to the street or access lane:\n- **parallel**: Vehicle parked parallel to the street or access lane\n- **perpendicular**: Vehicle parked perpendicular (90 degrees) to the street or access lane\n- **angle**: Vehicle parked at an angle to the street or access lane (typically 45-60 degrees)\n"
                  },
                  "roofed": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates whether the parking space has overhead coverage/roof protection."
                  },
                  "lighting": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates whether the parking space has lighting installed."
                  }
                }
              },
              "accessibility": {
                "type": "object",
                "description": "Accessibility features for disabled users.",
                "properties": {
                  "disabilitiesAccessible": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if the parking space is suitable but not necessarily designated or restricted only for use by people with disabilities."
                  },
                  "kerbHeightCm": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 100,
                    "default": 0,
                    "description": "Height of the kerb in centimeters."
                  },
                  "hearingLoop": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if a hearing loop system is available."
                  },
                  "tactilePaving": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if tactile paving is present for visually impaired users."
                  },
                  "brailleSignage": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if braille signage is available."
                  },
                  "visualSignage": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if clear visual signage is present."
                  },
                  "audioAnnouncements": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if audio announcements are available."
                  },
                  "accessiblePaymentTerminal": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if an accessible payment terminal is available."
                  }
                }
              },
              "vehicleRestrictions": {
                "type": "object",
                "description": "Vehicle size restrictions and access rules.",
                "properties": {
                  "maxWidth": {
                    "type": "integer",
                    "minimum": 0,
                    "nullable": true,
                    "description": "Maximum vehicle width in centimeters."
                  },
                  "maxLength": {
                    "type": "integer",
                    "minimum": 0,
                    "nullable": true,
                    "description": "Maximum vehicle length in centimeters."
                  },
                  "maxHeight": {
                    "type": "integer",
                    "minimum": 0,
                    "nullable": true,
                    "description": "Maximum vehicle height in centimeters."
                  },
                  "maxWeight": {
                    "type": "integer",
                    "minimum": 0,
                    "nullable": true,
                    "description": "Maximum vehicle weight in kilograms."
                  },
                  "supportedVehicleTypes": {
                    "type": "array",
                    "nullable": true,
                    "description": "Array of OCPI 2.3 compliant vehicle types allowed at this parking space. Send null or empty array to clear.",
                    "items": {
                      "type": "string",
                      "enum": [
                        "twoAndThreeWheelVehiclesAndQuadricycles",
                        "passengerVehicles",
                        "passengerVehiclesWithTrailer",
                        "lightDutyVans",
                        "heavyDutyTractorUnitsWithoutTrailer",
                        "heavyDutyTrucksWithoutArticulationPoint",
                        "heavyDutyTrucksWithTrailerAttached",
                        "busesOrMotorCoaches"
                      ],
                      "description": "Supported vehicle types compliant with OCPI 2.3 standard:\n- **twoAndThreeWheelVehiclesAndQuadricycles**: Motorcycles, scooters, quadricycles\n- **passengerVehicles**: Standard passenger cars\n- **passengerVehiclesWithTrailer**: Cars towing trailers\n- **lightDutyVans**: Light commercial vans\n- **heavyDutyTractorUnitsWithoutTrailer**: Tractor units (no trailer attached)\n- **heavyDutyTrucksWithoutArticulationPoint**: Rigid trucks\n- **heavyDutyTrucksWithTrailerAttached**: Articulated lorries\n- **busesOrMotorCoaches**: Buses and coaches\n"
                    }
                  },
                  "restrictedToSpecificVehicleTypes": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates that the parking space is only allowed for the specific vehicle types."
                  },
                  "evOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Parking space is restricted to electric vehicles only."
                  },
                  "whileChargingOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Parking allowed only while actively charging."
                  },
                  "disabledPermitOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Disabled parking permit required."
                  },
                  "customersOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Restricted to customers of the operator."
                  },
                  "staffOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Restricted to staff/employees only."
                  },
                  "deliveriesOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Restricted to delivery vehicles only."
                  },
                  "permitRequired": {
                    "type": "boolean",
                    "default": false,
                    "description": "General parking permit required."
                  },
                  "taxisOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Restricted to licensed taxis only."
                  },
                  "parkAndRide": {
                    "type": "boolean",
                    "default": false,
                    "description": "Designated as a park and ride facility."
                  },
                  "dangerousGoodsAllowed": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates whether vehicles carrying dangerous goods are permitted to use this parking space."
                  },
                  "reservationRequired": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates whether prior reservation is required to use this parking space."
                  },
                  "timeLimit": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Maximum allowed parking duration in minutes. Value of 0 indicates no time limit."
                  }
                }
              },
              "compliance": {
                "type": "object",
                "description": "Compliance standards and certifications applicable to this parking space.",
                "properties": {
                  "standards": {
                    "type": "array",
                    "description": "List of compliance standards applicable to this parking space (e.g., \"PAS 1899\", \"ISO 17438\", \"3-101/D1-26\"). Each standard identifier limited to 100 characters.\n\nKnown compliance standards:\n  * `3-101/D1-26` — Lithuanian national standard for disabled-access parking, required by the Via Lietuva NAP for wheelchair-accessible parking spaces.\n  * `PAS 1899` — BSI/Motability publicly available specification for accessible electric vehicle charging.\n  * `ISO 17438` — ITS standard family for electronic information exchange about parking facilities.\n",
                    "items": {
                      "type": "string",
                      "maxLength": 100
                    }
                  },
                  "apdsReference": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "Reference identifier for the Accessible Parking Data Standard (APDS) specification."
                  }
                }
              },
              "disabilitiesAccessible": {
                "deprecated": true,
                "type": "boolean"
              },
              "evses": {
                "deprecated": true,
                "type": "array",
                "items": {
                  "type": "integer"
                },
                "description": "The list of EVSE IDs at the same Parking Space. EVSEs must belong to the same charging zone. Each EVSE will be auto-assigned with position \"front\" and marked as not primary."
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "description": "Current operational status of the parking space:\n- **enabled**: Parking space is active and can be used\n- **disabled**: Parking space is inactive and cannot be used\n"
              },
              "occupancyStatus": {
                "type": "string",
                "enum": [
                  "unknown",
                  "available",
                  "occupied",
                  "blocked"
                ],
                "description": "Current occupancy status of the parking space:\n- **unknown**: Occupancy status cannot be determined (default)\n- **available**: Parking space is free and ready for use\n- **occupied**: Parking space is currently in use\n- **blocked**: Parking space is physically blocked (roadworks, barriers, planned maintenance)\n"
              },
              "accessibleEvses": {
                "type": "array",
                "description": "EVSEs associated with this parking space. Contains the position of the EVSE and is the primary of the parking space when include=accessibleEvses is used.",
                "items": {
                  "type": "object",
                  "description": "Represents how an EVSE is linked to a parking space, including its physical position and whether it's the primary EVSE for that space.",
                  "properties": {
                    "parkingSpaceId": {
                      "type": "integer",
                      "description": "The ID of the associated parking space."
                    },
                    "evseId": {
                      "type": "integer",
                      "description": "The ID of the associated EVSE."
                    },
                    "position": {
                      "description": "Physical position of the EVSE relative to the parking space:\n- **front**: EVSE at front of parking space\n- **rear**: EVSE at rear of parking space\n- **left**: EVSE on left side of parking space\n- **right**: EVSE on right side of parking space\n- **frontLeft**: EVSE at front-left corner\n- **frontRight**: EVSE at front-right corner\n- **rearLeft**: EVSE at rear-left corner\n- **rearRight**: EVSE at rear-right corner\n",
                      "type": "string",
                      "enum": [
                        "front",
                        "rear",
                        "left",
                        "right",
                        "frontLeft",
                        "frontRight",
                        "rearLeft",
                        "rearRight"
                      ]
                    },
                    "isPrimary": {
                      "type": "boolean",
                      "description": "Indicates if this is the primary EVSE for the parking space. Only one EVSE can be marked as primary per parking space."
                    }
                  },
                  "required": [
                    "parkingSpaceId",
                    "evseId",
                    "position",
                    "isPrimary"
                  ]
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "updateParkingSpace": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId",
              "locationId",
              "label",
              "status",
              "occupancyStatus",
              "lastUpdatedAt"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "Unique identifier of the parking space."
              },
              "locationId": {
                "type": "integer",
                "description": "The ID of the location this parking space belongs to."
              },
              "label": {
                "type": "string",
                "description": "Display label for the parking space (max 255 characters)."
              },
              "externalId": {
                "type": "string",
                "description": "External system identifier for integration purposes. Unique per operator."
              },
              "latitude": {
                "type": "number",
                "format": "float",
                "minimum": -90,
                "maximum": 90,
                "nullable": true,
                "description": "GPS latitude coordinate (7 decimal places precision)."
              },
              "longitude": {
                "type": "number",
                "format": "float",
                "minimum": -180,
                "maximum": 180,
                "nullable": true,
                "description": "GPS longitude coordinate (7 decimal places precision)."
              },
              "directions": {
                "type": "string",
                "maxLength": 1000,
                "nullable": true,
                "description": "Textual navigation instructions to find the parking space."
              },
              "properties": {
                "type": "object",
                "description": "Physical characteristics and special features of the parking space.",
                "properties": {
                  "width": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 500,
                    "nullable": true,
                    "description": "Width of the parking space in centimeters."
                  },
                  "length": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 2000,
                    "nullable": true,
                    "description": "Length of the parking space in centimeters."
                  },
                  "driveThrough": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if the parking space supports drive-through access."
                  },
                  "refrigerationOutlet": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if the parking space has a refrigeration outlet for auxiliary power."
                  },
                  "parkingDirection": {
                    "type": "string",
                    "enum": [
                      "parallel",
                      "perpendicular",
                      "angle"
                    ],
                    "description": "Parking space orientation relative to the street or access lane:\n- **parallel**: Vehicle parked parallel to the street or access lane\n- **perpendicular**: Vehicle parked perpendicular (90 degrees) to the street or access lane\n- **angle**: Vehicle parked at an angle to the street or access lane (typically 45-60 degrees)\n"
                  },
                  "roofed": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates whether the parking space has overhead coverage/roof protection."
                  },
                  "lighting": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates whether the parking space has lighting installed."
                  }
                }
              },
              "accessibility": {
                "type": "object",
                "description": "Accessibility features for disabled users.",
                "properties": {
                  "disabilitiesAccessible": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if the parking space is suitable but not necessarily designated or restricted only for use by people with disabilities."
                  },
                  "kerbHeightCm": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 100,
                    "default": 0,
                    "description": "Height of the kerb in centimeters."
                  },
                  "hearingLoop": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if a hearing loop system is available."
                  },
                  "tactilePaving": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if tactile paving is present for visually impaired users."
                  },
                  "brailleSignage": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if braille signage is available."
                  },
                  "visualSignage": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if clear visual signage is present."
                  },
                  "audioAnnouncements": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if audio announcements are available."
                  },
                  "accessiblePaymentTerminal": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if an accessible payment terminal is available."
                  }
                }
              },
              "vehicleRestrictions": {
                "type": "object",
                "description": "Vehicle size restrictions and access rules.",
                "properties": {
                  "maxWidth": {
                    "type": "integer",
                    "minimum": 0,
                    "nullable": true,
                    "description": "Maximum vehicle width in centimeters."
                  },
                  "maxLength": {
                    "type": "integer",
                    "minimum": 0,
                    "nullable": true,
                    "description": "Maximum vehicle length in centimeters."
                  },
                  "maxHeight": {
                    "type": "integer",
                    "minimum": 0,
                    "nullable": true,
                    "description": "Maximum vehicle height in centimeters."
                  },
                  "maxWeight": {
                    "type": "integer",
                    "minimum": 0,
                    "nullable": true,
                    "description": "Maximum vehicle weight in kilograms."
                  },
                  "supportedVehicleTypes": {
                    "type": "array",
                    "nullable": true,
                    "description": "Array of OCPI 2.3 compliant vehicle types allowed at this parking space. Send null or empty array to clear.",
                    "items": {
                      "type": "string",
                      "enum": [
                        "twoAndThreeWheelVehiclesAndQuadricycles",
                        "passengerVehicles",
                        "passengerVehiclesWithTrailer",
                        "lightDutyVans",
                        "heavyDutyTractorUnitsWithoutTrailer",
                        "heavyDutyTrucksWithoutArticulationPoint",
                        "heavyDutyTrucksWithTrailerAttached",
                        "busesOrMotorCoaches"
                      ],
                      "description": "Supported vehicle types compliant with OCPI 2.3 standard:\n- **twoAndThreeWheelVehiclesAndQuadricycles**: Motorcycles, scooters, quadricycles\n- **passengerVehicles**: Standard passenger cars\n- **passengerVehiclesWithTrailer**: Cars towing trailers\n- **lightDutyVans**: Light commercial vans\n- **heavyDutyTractorUnitsWithoutTrailer**: Tractor units (no trailer attached)\n- **heavyDutyTrucksWithoutArticulationPoint**: Rigid trucks\n- **heavyDutyTrucksWithTrailerAttached**: Articulated lorries\n- **busesOrMotorCoaches**: Buses and coaches\n"
                    }
                  },
                  "restrictedToSpecificVehicleTypes": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates that the parking space is only allowed for the specific vehicle types."
                  },
                  "evOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Parking space is restricted to electric vehicles only."
                  },
                  "whileChargingOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Parking allowed only while actively charging."
                  },
                  "disabledPermitOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Disabled parking permit required."
                  },
                  "customersOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Restricted to customers of the operator."
                  },
                  "staffOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Restricted to staff/employees only."
                  },
                  "deliveriesOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Restricted to delivery vehicles only."
                  },
                  "permitRequired": {
                    "type": "boolean",
                    "default": false,
                    "description": "General parking permit required."
                  },
                  "taxisOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Restricted to licensed taxis only."
                  },
                  "parkAndRide": {
                    "type": "boolean",
                    "default": false,
                    "description": "Designated as a park and ride facility."
                  },
                  "dangerousGoodsAllowed": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates whether vehicles carrying dangerous goods are permitted to use this parking space."
                  },
                  "reservationRequired": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates whether prior reservation is required to use this parking space."
                  },
                  "timeLimit": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Maximum allowed parking duration in minutes. Value of 0 indicates no time limit."
                  }
                }
              },
              "compliance": {
                "type": "object",
                "description": "Compliance standards and certifications applicable to this parking space.",
                "properties": {
                  "standards": {
                    "type": "array",
                    "description": "List of compliance standards applicable to this parking space (e.g., \"PAS 1899\", \"ISO 17438\", \"3-101/D1-26\"). Each standard identifier limited to 100 characters.\n\nKnown compliance standards:\n  * `3-101/D1-26` — Lithuanian national standard for disabled-access parking, required by the Via Lietuva NAP for wheelchair-accessible parking spaces.\n  * `PAS 1899` — BSI/Motability publicly available specification for accessible electric vehicle charging.\n  * `ISO 17438` — ITS standard family for electronic information exchange about parking facilities.\n",
                    "items": {
                      "type": "string",
                      "maxLength": 100
                    }
                  },
                  "apdsReference": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "Reference identifier for the Accessible Parking Data Standard (APDS) specification."
                  }
                }
              },
              "disabilitiesAccessible": {
                "deprecated": true,
                "type": "boolean"
              },
              "evses": {
                "deprecated": true,
                "type": "array",
                "items": {
                  "type": "integer"
                },
                "description": "The list of EVSE IDs at the same Parking Space. EVSEs must belong to the same charging zone. Each EVSE will be auto-assigned with position \"front\" and marked as not primary."
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "description": "Current operational status of the parking space:\n- **enabled**: Parking space is active and can be used\n- **disabled**: Parking space is inactive and cannot be used\n"
              },
              "occupancyStatus": {
                "type": "string",
                "enum": [
                  "unknown",
                  "available",
                  "occupied",
                  "blocked"
                ],
                "description": "Current occupancy status of the parking space:\n- **unknown**: Occupancy status cannot be determined (default)\n- **available**: Parking space is free and ready for use\n- **occupied**: Parking space is currently in use\n- **blocked**: Parking space is physically blocked (roadworks, barriers, planned maintenance)\n"
              },
              "accessibleEvses": {
                "type": "array",
                "description": "EVSEs associated with this parking space. Contains the position of the EVSE and is the primary of the parking space when include=accessibleEvses is used.",
                "items": {
                  "type": "object",
                  "description": "Represents how an EVSE is linked to a parking space, including its physical position and whether it's the primary EVSE for that space.",
                  "properties": {
                    "parkingSpaceId": {
                      "type": "integer",
                      "description": "The ID of the associated parking space."
                    },
                    "evseId": {
                      "type": "integer",
                      "description": "The ID of the associated EVSE."
                    },
                    "position": {
                      "description": "Physical position of the EVSE relative to the parking space:\n- **front**: EVSE at front of parking space\n- **rear**: EVSE at rear of parking space\n- **left**: EVSE on left side of parking space\n- **right**: EVSE on right side of parking space\n- **frontLeft**: EVSE at front-left corner\n- **frontRight**: EVSE at front-right corner\n- **rearLeft**: EVSE at rear-left corner\n- **rearRight**: EVSE at rear-right corner\n",
                      "type": "string",
                      "enum": [
                        "front",
                        "rear",
                        "left",
                        "right",
                        "frontLeft",
                        "frontRight",
                        "rearLeft",
                        "rearRight"
                      ]
                    },
                    "isPrimary": {
                      "type": "boolean",
                      "description": "Indicates if this is the primary EVSE for the parking space. Only one EVSE can be marked as primary per parking space."
                    }
                  },
                  "required": [
                    "parkingSpaceId",
                    "evseId",
                    "position",
                    "isPrimary"
                  ]
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "deleteParkingSpace": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "parkingSpaceUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId",
              "locationId",
              "label",
              "status",
              "occupancyStatus",
              "lastUpdatedAt"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "Unique identifier of the parking space."
              },
              "locationId": {
                "type": "integer",
                "description": "The ID of the location this parking space belongs to."
              },
              "label": {
                "type": "string",
                "description": "Display label for the parking space (max 255 characters)."
              },
              "externalId": {
                "type": "string",
                "description": "External system identifier for integration purposes. Unique per operator."
              },
              "latitude": {
                "type": "number",
                "format": "float",
                "minimum": -90,
                "maximum": 90,
                "nullable": true,
                "description": "GPS latitude coordinate (7 decimal places precision)."
              },
              "longitude": {
                "type": "number",
                "format": "float",
                "minimum": -180,
                "maximum": 180,
                "nullable": true,
                "description": "GPS longitude coordinate (7 decimal places precision)."
              },
              "directions": {
                "type": "string",
                "maxLength": 1000,
                "nullable": true,
                "description": "Textual navigation instructions to find the parking space."
              },
              "properties": {
                "type": "object",
                "description": "Physical characteristics and special features of the parking space.",
                "properties": {
                  "width": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 500,
                    "nullable": true,
                    "description": "Width of the parking space in centimeters."
                  },
                  "length": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 2000,
                    "nullable": true,
                    "description": "Length of the parking space in centimeters."
                  },
                  "driveThrough": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if the parking space supports drive-through access."
                  },
                  "refrigerationOutlet": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if the parking space has a refrigeration outlet for auxiliary power."
                  },
                  "parkingDirection": {
                    "type": "string",
                    "enum": [
                      "parallel",
                      "perpendicular",
                      "angle"
                    ],
                    "description": "Parking space orientation relative to the street or access lane:\n- **parallel**: Vehicle parked parallel to the street or access lane\n- **perpendicular**: Vehicle parked perpendicular (90 degrees) to the street or access lane\n- **angle**: Vehicle parked at an angle to the street or access lane (typically 45-60 degrees)\n"
                  },
                  "roofed": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates whether the parking space has overhead coverage/roof protection."
                  },
                  "lighting": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates whether the parking space has lighting installed."
                  }
                }
              },
              "accessibility": {
                "type": "object",
                "description": "Accessibility features for disabled users.",
                "properties": {
                  "disabilitiesAccessible": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if the parking space is suitable but not necessarily designated or restricted only for use by people with disabilities."
                  },
                  "kerbHeightCm": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 100,
                    "default": 0,
                    "description": "Height of the kerb in centimeters."
                  },
                  "hearingLoop": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if a hearing loop system is available."
                  },
                  "tactilePaving": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if tactile paving is present for visually impaired users."
                  },
                  "brailleSignage": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if braille signage is available."
                  },
                  "visualSignage": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if clear visual signage is present."
                  },
                  "audioAnnouncements": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if audio announcements are available."
                  },
                  "accessiblePaymentTerminal": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates if an accessible payment terminal is available."
                  }
                }
              },
              "vehicleRestrictions": {
                "type": "object",
                "description": "Vehicle size restrictions and access rules.",
                "properties": {
                  "maxWidth": {
                    "type": "integer",
                    "minimum": 0,
                    "nullable": true,
                    "description": "Maximum vehicle width in centimeters."
                  },
                  "maxLength": {
                    "type": "integer",
                    "minimum": 0,
                    "nullable": true,
                    "description": "Maximum vehicle length in centimeters."
                  },
                  "maxHeight": {
                    "type": "integer",
                    "minimum": 0,
                    "nullable": true,
                    "description": "Maximum vehicle height in centimeters."
                  },
                  "maxWeight": {
                    "type": "integer",
                    "minimum": 0,
                    "nullable": true,
                    "description": "Maximum vehicle weight in kilograms."
                  },
                  "supportedVehicleTypes": {
                    "type": "array",
                    "nullable": true,
                    "description": "Array of OCPI 2.3 compliant vehicle types allowed at this parking space. Send null or empty array to clear.",
                    "items": {
                      "type": "string",
                      "enum": [
                        "twoAndThreeWheelVehiclesAndQuadricycles",
                        "passengerVehicles",
                        "passengerVehiclesWithTrailer",
                        "lightDutyVans",
                        "heavyDutyTractorUnitsWithoutTrailer",
                        "heavyDutyTrucksWithoutArticulationPoint",
                        "heavyDutyTrucksWithTrailerAttached",
                        "busesOrMotorCoaches"
                      ],
                      "description": "Supported vehicle types compliant with OCPI 2.3 standard:\n- **twoAndThreeWheelVehiclesAndQuadricycles**: Motorcycles, scooters, quadricycles\n- **passengerVehicles**: Standard passenger cars\n- **passengerVehiclesWithTrailer**: Cars towing trailers\n- **lightDutyVans**: Light commercial vans\n- **heavyDutyTractorUnitsWithoutTrailer**: Tractor units (no trailer attached)\n- **heavyDutyTrucksWithoutArticulationPoint**: Rigid trucks\n- **heavyDutyTrucksWithTrailerAttached**: Articulated lorries\n- **busesOrMotorCoaches**: Buses and coaches\n"
                    }
                  },
                  "restrictedToSpecificVehicleTypes": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates that the parking space is only allowed for the specific vehicle types."
                  },
                  "evOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Parking space is restricted to electric vehicles only."
                  },
                  "whileChargingOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Parking allowed only while actively charging."
                  },
                  "disabledPermitOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Disabled parking permit required."
                  },
                  "customersOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Restricted to customers of the operator."
                  },
                  "staffOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Restricted to staff/employees only."
                  },
                  "deliveriesOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Restricted to delivery vehicles only."
                  },
                  "permitRequired": {
                    "type": "boolean",
                    "default": false,
                    "description": "General parking permit required."
                  },
                  "taxisOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "Restricted to licensed taxis only."
                  },
                  "parkAndRide": {
                    "type": "boolean",
                    "default": false,
                    "description": "Designated as a park and ride facility."
                  },
                  "dangerousGoodsAllowed": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates whether vehicles carrying dangerous goods are permitted to use this parking space."
                  },
                  "reservationRequired": {
                    "type": "boolean",
                    "default": false,
                    "description": "Indicates whether prior reservation is required to use this parking space."
                  },
                  "timeLimit": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Maximum allowed parking duration in minutes. Value of 0 indicates no time limit."
                  }
                }
              },
              "compliance": {
                "type": "object",
                "description": "Compliance standards and certifications applicable to this parking space.",
                "properties": {
                  "standards": {
                    "type": "array",
                    "description": "List of compliance standards applicable to this parking space (e.g., \"PAS 1899\", \"ISO 17438\", \"3-101/D1-26\"). Each standard identifier limited to 100 characters.\n\nKnown compliance standards:\n  * `3-101/D1-26` — Lithuanian national standard for disabled-access parking, required by the Via Lietuva NAP for wheelchair-accessible parking spaces.\n  * `PAS 1899` — BSI/Motability publicly available specification for accessible electric vehicle charging.\n  * `ISO 17438` — ITS standard family for electronic information exchange about parking facilities.\n",
                    "items": {
                      "type": "string",
                      "maxLength": 100
                    }
                  },
                  "apdsReference": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "Reference identifier for the Accessible Parking Data Standard (APDS) specification."
                  }
                }
              },
              "disabilitiesAccessible": {
                "deprecated": true,
                "type": "boolean"
              },
              "evses": {
                "deprecated": true,
                "type": "array",
                "items": {
                  "type": "integer"
                },
                "description": "The list of EVSE IDs at the same Parking Space. EVSEs must belong to the same charging zone. Each EVSE will be auto-assigned with position \"front\" and marked as not primary."
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "description": "Current operational status of the parking space:\n- **enabled**: Parking space is active and can be used\n- **disabled**: Parking space is inactive and cannot be used\n"
              },
              "occupancyStatus": {
                "type": "string",
                "enum": [
                  "unknown",
                  "available",
                  "occupied",
                  "blocked"
                ],
                "description": "Current occupancy status of the parking space:\n- **unknown**: Occupancy status cannot be determined (default)\n- **available**: Parking space is free and ready for use\n- **occupied**: Parking space is currently in use\n- **blocked**: Parking space is physically blocked (roadworks, barriers, planned maintenance)\n"
              },
              "accessibleEvses": {
                "type": "array",
                "description": "EVSEs associated with this parking space. Contains the position of the EVSE and is the primary of the parking space when include=accessibleEvses is used.",
                "items": {
                  "type": "object",
                  "description": "Represents how an EVSE is linked to a parking space, including its physical position and whether it's the primary EVSE for that space.",
                  "properties": {
                    "parkingSpaceId": {
                      "type": "integer",
                      "description": "The ID of the associated parking space."
                    },
                    "evseId": {
                      "type": "integer",
                      "description": "The ID of the associated EVSE."
                    },
                    "position": {
                      "description": "Physical position of the EVSE relative to the parking space:\n- **front**: EVSE at front of parking space\n- **rear**: EVSE at rear of parking space\n- **left**: EVSE on left side of parking space\n- **right**: EVSE on right side of parking space\n- **frontLeft**: EVSE at front-left corner\n- **frontRight**: EVSE at front-right corner\n- **rearLeft**: EVSE at rear-left corner\n- **rearRight**: EVSE at rear-right corner\n",
                      "type": "string",
                      "enum": [
                        "front",
                        "rear",
                        "left",
                        "right",
                        "frontLeft",
                        "frontRight",
                        "rearLeft",
                        "rearRight"
                      ]
                    },
                    "isPrimary": {
                      "type": "boolean",
                      "description": "Indicates if this is the primary EVSE for the parking space. Only one EVSE can be marked as primary per parking space."
                    }
                  },
                  "required": [
                    "parkingSpaceId",
                    "evseId",
                    "position",
                    "isPrimary"
                  ]
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "parkingSpacesEvsesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "description": "EVSEs associated with this parking space.",
            "items": {
              "type": "object",
              "description": "Represents how an EVSE is linked to a parking space, including its physical position and whether it's the primary EVSE for that space.",
              "properties": {
                "parkingSpaceId": {
                  "type": "integer",
                  "description": "The ID of the associated parking space."
                },
                "evseId": {
                  "type": "integer",
                  "description": "The ID of the associated EVSE."
                },
                "position": {
                  "description": "Physical position of the EVSE relative to the parking space:\n- **front**: EVSE at front of parking space\n- **rear**: EVSE at rear of parking space\n- **left**: EVSE on left side of parking space\n- **right**: EVSE on right side of parking space\n- **frontLeft**: EVSE at front-left corner\n- **frontRight**: EVSE at front-right corner\n- **rearLeft**: EVSE at rear-left corner\n- **rearRight**: EVSE at rear-right corner\n",
                  "type": "string",
                  "enum": [
                    "front",
                    "rear",
                    "left",
                    "right",
                    "frontLeft",
                    "frontRight",
                    "rearLeft",
                    "rearRight"
                  ]
                },
                "isPrimary": {
                  "type": "boolean",
                  "description": "Indicates if this is the primary EVSE for the parking space. Only one EVSE can be marked as primary per parking space."
                }
              },
              "required": [
                "parkingSpaceId",
                "evseId",
                "position",
                "isPrimary"
              ]
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "parkingSpacesEvsesSync": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "partnerContractsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "title": {
                  "type": "string"
                },
                "partnerId": {
                  "type": "integer"
                },
                "contractType": {
                  "type": "string",
                  "enum": [
                    "revenueSharing",
                    "paymentFacilitation"
                  ],
                  "description": "Indicates the business relationship model for the contract. `revenueSharing` means the operator is the supplier and remits a share to the partner. `paymentFacilitation` means the partner is the supplier and the operator acts as payment facilitator."
                },
                "startDate": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The contract is effective from the first of the selected month."
                },
                "endDate": {
                  "type": "string",
                  "format": "date-time",
                  "nullable": true,
                  "description": "The contract expires at the last day of the selected month. If nothing is selected, there is no expiration date."
                },
                "autoRenewal": {
                  "type": "boolean"
                },
                "externalId": {
                  "type": "string",
                  "description": "Used to store custom information, usually used for external references or metadata to the resource.",
                  "maxLength": 255
                },
                "accessAndPermissions": {
                  "type": "object",
                  "properties": {
                    "sessionsRemoteControl": {
                      "type": "boolean",
                      "description": "Allows the partner to start/stop session, unlock connector, trigger message, set a charging profile and get the composite schedule."
                    },
                    "startReservation": {
                      "type": "boolean",
                      "description": "Allows the partner to make reservations."
                    },
                    "stopReservation": {
                      "type": "boolean",
                      "description": "Allows the partner to cancel reservations."
                    },
                    "resetChargePoint": {
                      "type": "boolean",
                      "description": "Allows the partner to reset charge points."
                    },
                    "firmwareUpdate": {
                      "type": "boolean",
                      "description": "Allows the partner to make firmware updates to the charge points."
                    },
                    "createFromTemplate": {
                      "type": "boolean",
                      "description": "Allows the partner to create charge points from templates."
                    },
                    "changeSystemStatus": {
                      "type": "boolean",
                      "description": "Allows the partner to change the system status of charge points."
                    }
                  }
                },
                "revenueSharing": {
                  "type": "object",
                  "properties": {
                    "partnerSharePercentageAcEvse": {
                      "type": "number",
                      "format": "float",
                      "minimum": 0,
                      "maximum": 100
                    },
                    "partnerSharePercentageDcEvse": {
                      "type": "number",
                      "format": "float",
                      "minimum": 0,
                      "maximum": 100
                    },
                    "excludeConnectionFee": {
                      "type": "boolean",
                      "description": "If the tariff has a Connection fee, this fee would not be included in the revenue sharing with the Partner and will remain entirely for the Operator."
                    },
                    "deductElectricityCost": {
                      "type": "boolean",
                      "description": "The cost of the electricity would first be deducted from the collected revenue and then the Revenue sharing rules will be applied."
                    },
                    "reimburseForElectricityCost": {
                      "type": "boolean",
                      "description": "If set to true, the Partner would receive not only their share of the revenue but also a reimbursement for the cost of the electricity. The formula to calculate the amount to be received by the Partner is (Revenue - Electricity cost) x Partner percentage + Electricity cost. It could be supplied only if deductElectricityCost is set to true."
                    },
                    "fixedFeePerSessionAc": {
                      "type": "number",
                      "format": "float",
                      "nullable": true,
                      "description": "Additional flat fee that is applied for every billed session and subtracted from the Partner's share of the revenue for each session on AC Charging Station."
                    },
                    "fixedFeePerSessionDc": {
                      "type": "number",
                      "format": "float",
                      "nullable": true,
                      "description": "Additional flat fee that is applied for every billed session and subtracted from the Partner's share of the revenue for each session on DC Charging Station."
                    },
                    "feePerKwhAc": {
                      "type": "number",
                      "format": "float",
                      "nullable": true,
                      "description": "Additional flat fee that is applied for every billed kWh and subtracted from the Partner's share of the revenue for each kWh billed on AC Charging Station."
                    },
                    "feePerKwhDc": {
                      "type": "number",
                      "format": "float",
                      "nullable": true,
                      "description": "Additional flat fee that is applied for every billed kWh and subtracted from the Partner's share of the revenue for each kWh billed on DC Charging Station."
                    },
                    "handlingFee": {
                      "type": "number",
                      "format": "float",
                      "minimum": 0,
                      "maximum": 100,
                      "nullable": true,
                      "description": "Additional percentage fee to be applied on the total amount paid by the user for the session. This fee is then subtracted from the Partner's share of the revenue."
                    }
                  }
                },
                "monthlyPlatformFees": {
                  "type": "object",
                  "properties": {
                    "perChargePoint": {
                      "type": "number",
                      "format": "float",
                      "description": "The provided amount should be excluding VAT."
                    },
                    "perAcEvse": {
                      "type": "number",
                      "format": "float",
                      "description": "The provided amount should be excluding VAT."
                    },
                    "perDcEvse": {
                      "type": "number",
                      "format": "float",
                      "description": "The provided amount should be excluding VAT."
                    }
                  }
                },
                "reimbursementFees": {
                  "type": "object",
                  "description": "Home-charging reimbursement fees configured on the contract itself and charged to the partner for reimbursed charging sessions and reimbursement periods. Only available when the home-charging reimbursement feature is enabled for the operator. All other home-charging reimbursement settings are managed on the partner resource.\n",
                  "properties": {
                    "perSession": {
                      "type": "number",
                      "format": "float",
                      "minimum": 0,
                      "description": "Flat fee charged for every reimbursed charging session, in the contract's currency."
                    },
                    "perPeriod": {
                      "type": "number",
                      "format": "float",
                      "minimum": 0,
                      "description": "Flat fee charged for every reimbursement period, in the contract's currency."
                    }
                  }
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "settlementOverrides": {
                  "type": "array",
                  "description": "⚠️ Experimental — not yet a stable contract. The embedded settlement override objects may change without a version bump, including breaking changes within `v1.0` itself. Consume them for evaluation only, or coordinate adoption with your account manager so changes can be sequenced with you.\n\nActive settlement overrides of the contract, newest first. Returned only by `GET /public-api/resources/partner-contracts/v1.0/{partnerContract}` and only when requested through `include[]=settlementOverrides`. The listing, create and update responses never carry this property, because they do not accept the `include` parameter — read the overrides of a contract through `GET /public-api/resources/partner-contracts/v1.0/{partnerContract}/settlement-overrides` instead.\n",
                  "items": {
                    "description": "⚠️ Experimental endpoint — not yet a stable contract. This resource ships as experimental / beta. While experimental, its schema and behaviour may change without a version bump — including breaking changes within v1.0 itself. Anyone consuming it does so for evaluation only, or by coordinating adoption with their account manager so changes can be sequenced with them. It graduates to a stable, version-locked contract (where the normal breaking-change rules apply) only when this experimental notice is removed.\n\nSettlement override read schema. Each record scopes an AC / DC partner share percentage to one driver population on the partner contract; the contract's own settlement fields remain the default rule.\n",
                    "type": "object",
                    "required": [
                      "id",
                      "name",
                      "priority",
                      "restriction",
                      "acPercent",
                      "dcPercent"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "maxLength": 255,
                        "description": "Name of the settlement override, unique among the active overrides of the partner contract.",
                        "example": "Fleet drivers"
                      },
                      "priority": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 4294967295,
                        "description": "Evaluation priority of the override, unique among the active overrides of the partner contract.\nThe lowest value that matches a session wins.\n",
                        "example": 1
                      },
                      "id": {
                        "type": "integer",
                        "description": "Unique identifier for the settlement override",
                        "example": 123
                      },
                      "restriction": {
                        "type": "object",
                        "description": "Which users of the partner contract the override applies to. `type` is the discriminator and\ndetermines what `targetIds` references.\n",
                        "required": [
                          "type"
                        ],
                        "properties": {
                          "type": {
                            "type": "string",
                            "description": "Which users of the partner contract the settlement override applies to.\n\nAllowed values:\n- `users_of_the_partner` - Applies to sessions of users belonging to the contract's partner.\n- `user_groups` - Applies to sessions of users in the listed user groups. Requires `userGroupIds`.\n- `ad_hoc_users` - Applies to sessions of ad hoc (unregistered) users.\n- `users_of_specific_partners` - Applies to sessions of users belonging to the listed partners. Requires `partnerIds`.\n",
                            "enum": [
                              "users_of_the_partner",
                              "user_groups",
                              "ad_hoc_users",
                              "users_of_specific_partners"
                            ]
                          },
                          "targetIds": {
                            "type": "array",
                            "description": "Identifiers of the records the override applies to, as determined by `type`: user group IDs\nfor `user_groups` and partner IDs for `users_of_specific_partners`. Required for those two\ntypes and omitted for every other type.\n",
                            "items": {
                              "type": "integer"
                            },
                            "example": [
                              12,
                              34
                            ]
                          }
                        }
                      },
                      "acPercent": {
                        "type": "number",
                        "format": "float",
                        "nullable": true,
                        "minimum": 0,
                        "maximum": 100,
                        "description": "Partner share percentage applied to AC sessions matched by this override.\n`null` means the value is inherited from the partner contract.\n",
                        "example": 70.5
                      },
                      "dcPercent": {
                        "type": "number",
                        "format": "float",
                        "nullable": true,
                        "minimum": 0,
                        "maximum": 100,
                        "description": "Partner share percentage applied to DC sessions matched by this override.\n`null` means the value is inherited from the partner contract.\n",
                        "example": 60
                      }
                    }
                  }
                }
              },
              "required": [
                "id",
                "operatorId",
                "title",
                "partnerId",
                "startDate"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerContractCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "title": {
                "type": "string"
              },
              "partnerId": {
                "type": "integer"
              },
              "contractType": {
                "type": "string",
                "enum": [
                  "revenueSharing",
                  "paymentFacilitation"
                ],
                "description": "Indicates the business relationship model for the contract. `revenueSharing` means the operator is the supplier and remits a share to the partner. `paymentFacilitation` means the partner is the supplier and the operator acts as payment facilitator."
              },
              "startDate": {
                "type": "string",
                "format": "date-time",
                "description": "The contract is effective from the first of the selected month."
              },
              "endDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "description": "The contract expires at the last day of the selected month. If nothing is selected, there is no expiration date."
              },
              "autoRenewal": {
                "type": "boolean"
              },
              "externalId": {
                "type": "string",
                "description": "Used to store custom information, usually used for external references or metadata to the resource.",
                "maxLength": 255
              },
              "accessAndPermissions": {
                "type": "object",
                "properties": {
                  "sessionsRemoteControl": {
                    "type": "boolean",
                    "description": "Allows the partner to start/stop session, unlock connector, trigger message, set a charging profile and get the composite schedule."
                  },
                  "startReservation": {
                    "type": "boolean",
                    "description": "Allows the partner to make reservations."
                  },
                  "stopReservation": {
                    "type": "boolean",
                    "description": "Allows the partner to cancel reservations."
                  },
                  "resetChargePoint": {
                    "type": "boolean",
                    "description": "Allows the partner to reset charge points."
                  },
                  "firmwareUpdate": {
                    "type": "boolean",
                    "description": "Allows the partner to make firmware updates to the charge points."
                  },
                  "createFromTemplate": {
                    "type": "boolean",
                    "description": "Allows the partner to create charge points from templates."
                  },
                  "changeSystemStatus": {
                    "type": "boolean",
                    "description": "Allows the partner to change the system status of charge points."
                  }
                }
              },
              "revenueSharing": {
                "type": "object",
                "properties": {
                  "partnerSharePercentageAcEvse": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "maximum": 100
                  },
                  "partnerSharePercentageDcEvse": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "maximum": 100
                  },
                  "excludeConnectionFee": {
                    "type": "boolean",
                    "description": "If the tariff has a Connection fee, this fee would not be included in the revenue sharing with the Partner and will remain entirely for the Operator."
                  },
                  "deductElectricityCost": {
                    "type": "boolean",
                    "description": "The cost of the electricity would first be deducted from the collected revenue and then the Revenue sharing rules will be applied."
                  },
                  "reimburseForElectricityCost": {
                    "type": "boolean",
                    "description": "If set to true, the Partner would receive not only their share of the revenue but also a reimbursement for the cost of the electricity. The formula to calculate the amount to be received by the Partner is (Revenue - Electricity cost) x Partner percentage + Electricity cost. It could be supplied only if deductElectricityCost is set to true."
                  },
                  "fixedFeePerSessionAc": {
                    "type": "number",
                    "format": "float",
                    "nullable": true,
                    "description": "Additional flat fee that is applied for every billed session and subtracted from the Partner's share of the revenue for each session on AC Charging Station."
                  },
                  "fixedFeePerSessionDc": {
                    "type": "number",
                    "format": "float",
                    "nullable": true,
                    "description": "Additional flat fee that is applied for every billed session and subtracted from the Partner's share of the revenue for each session on DC Charging Station."
                  },
                  "feePerKwhAc": {
                    "type": "number",
                    "format": "float",
                    "nullable": true,
                    "description": "Additional flat fee that is applied for every billed kWh and subtracted from the Partner's share of the revenue for each kWh billed on AC Charging Station."
                  },
                  "feePerKwhDc": {
                    "type": "number",
                    "format": "float",
                    "nullable": true,
                    "description": "Additional flat fee that is applied for every billed kWh and subtracted from the Partner's share of the revenue for each kWh billed on DC Charging Station."
                  },
                  "handlingFee": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "maximum": 100,
                    "nullable": true,
                    "description": "Additional percentage fee to be applied on the total amount paid by the user for the session. This fee is then subtracted from the Partner's share of the revenue."
                  }
                }
              },
              "monthlyPlatformFees": {
                "type": "object",
                "properties": {
                  "perChargePoint": {
                    "type": "number",
                    "format": "float",
                    "description": "The provided amount should be excluding VAT."
                  },
                  "perAcEvse": {
                    "type": "number",
                    "format": "float",
                    "description": "The provided amount should be excluding VAT."
                  },
                  "perDcEvse": {
                    "type": "number",
                    "format": "float",
                    "description": "The provided amount should be excluding VAT."
                  }
                }
              },
              "reimbursementFees": {
                "type": "object",
                "description": "Home-charging reimbursement fees configured on the contract itself and charged to the partner for reimbursed charging sessions and reimbursement periods. Only available when the home-charging reimbursement feature is enabled for the operator. All other home-charging reimbursement settings are managed on the partner resource.\n",
                "properties": {
                  "perSession": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "description": "Flat fee charged for every reimbursed charging session, in the contract's currency."
                  },
                  "perPeriod": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "description": "Flat fee charged for every reimbursement period, in the contract's currency."
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "settlementOverrides": {
                "type": "array",
                "description": "⚠️ Experimental — not yet a stable contract. The embedded settlement override objects may change without a version bump, including breaking changes within `v1.0` itself. Consume them for evaluation only, or coordinate adoption with your account manager so changes can be sequenced with you.\n\nActive settlement overrides of the contract, newest first. Returned only by `GET /public-api/resources/partner-contracts/v1.0/{partnerContract}` and only when requested through `include[]=settlementOverrides`. The listing, create and update responses never carry this property, because they do not accept the `include` parameter — read the overrides of a contract through `GET /public-api/resources/partner-contracts/v1.0/{partnerContract}/settlement-overrides` instead.\n",
                "items": {
                  "description": "⚠️ Experimental endpoint — not yet a stable contract. This resource ships as experimental / beta. While experimental, its schema and behaviour may change without a version bump — including breaking changes within v1.0 itself. Anyone consuming it does so for evaluation only, or by coordinating adoption with their account manager so changes can be sequenced with them. It graduates to a stable, version-locked contract (where the normal breaking-change rules apply) only when this experimental notice is removed.\n\nSettlement override read schema. Each record scopes an AC / DC partner share percentage to one driver population on the partner contract; the contract's own settlement fields remain the default rule.\n",
                  "type": "object",
                  "required": [
                    "id",
                    "name",
                    "priority",
                    "restriction",
                    "acPercent",
                    "dcPercent"
                  ],
                  "properties": {
                    "name": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "Name of the settlement override, unique among the active overrides of the partner contract.",
                      "example": "Fleet drivers"
                    },
                    "priority": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 4294967295,
                      "description": "Evaluation priority of the override, unique among the active overrides of the partner contract.\nThe lowest value that matches a session wins.\n",
                      "example": 1
                    },
                    "id": {
                      "type": "integer",
                      "description": "Unique identifier for the settlement override",
                      "example": 123
                    },
                    "restriction": {
                      "type": "object",
                      "description": "Which users of the partner contract the override applies to. `type` is the discriminator and\ndetermines what `targetIds` references.\n",
                      "required": [
                        "type"
                      ],
                      "properties": {
                        "type": {
                          "type": "string",
                          "description": "Which users of the partner contract the settlement override applies to.\n\nAllowed values:\n- `users_of_the_partner` - Applies to sessions of users belonging to the contract's partner.\n- `user_groups` - Applies to sessions of users in the listed user groups. Requires `userGroupIds`.\n- `ad_hoc_users` - Applies to sessions of ad hoc (unregistered) users.\n- `users_of_specific_partners` - Applies to sessions of users belonging to the listed partners. Requires `partnerIds`.\n",
                          "enum": [
                            "users_of_the_partner",
                            "user_groups",
                            "ad_hoc_users",
                            "users_of_specific_partners"
                          ]
                        },
                        "targetIds": {
                          "type": "array",
                          "description": "Identifiers of the records the override applies to, as determined by `type`: user group IDs\nfor `user_groups` and partner IDs for `users_of_specific_partners`. Required for those two\ntypes and omitted for every other type.\n",
                          "items": {
                            "type": "integer"
                          },
                          "example": [
                            12,
                            34
                          ]
                        }
                      }
                    },
                    "acPercent": {
                      "type": "number",
                      "format": "float",
                      "nullable": true,
                      "minimum": 0,
                      "maximum": 100,
                      "description": "Partner share percentage applied to AC sessions matched by this override.\n`null` means the value is inherited from the partner contract.\n",
                      "example": 70.5
                    },
                    "dcPercent": {
                      "type": "number",
                      "format": "float",
                      "nullable": true,
                      "minimum": 0,
                      "maximum": 100,
                      "description": "Partner share percentage applied to DC sessions matched by this override.\n`null` means the value is inherited from the partner contract.\n",
                      "example": 60
                    }
                  }
                }
              }
            },
            "required": [
              "id",
              "operatorId",
              "title",
              "partnerId",
              "startDate"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerContractRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "title": {
                "type": "string"
              },
              "partnerId": {
                "type": "integer"
              },
              "contractType": {
                "type": "string",
                "enum": [
                  "revenueSharing",
                  "paymentFacilitation"
                ],
                "description": "Indicates the business relationship model for the contract. `revenueSharing` means the operator is the supplier and remits a share to the partner. `paymentFacilitation` means the partner is the supplier and the operator acts as payment facilitator."
              },
              "startDate": {
                "type": "string",
                "format": "date-time",
                "description": "The contract is effective from the first of the selected month."
              },
              "endDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "description": "The contract expires at the last day of the selected month. If nothing is selected, there is no expiration date."
              },
              "autoRenewal": {
                "type": "boolean"
              },
              "externalId": {
                "type": "string",
                "description": "Used to store custom information, usually used for external references or metadata to the resource.",
                "maxLength": 255
              },
              "accessAndPermissions": {
                "type": "object",
                "properties": {
                  "sessionsRemoteControl": {
                    "type": "boolean",
                    "description": "Allows the partner to start/stop session, unlock connector, trigger message, set a charging profile and get the composite schedule."
                  },
                  "startReservation": {
                    "type": "boolean",
                    "description": "Allows the partner to make reservations."
                  },
                  "stopReservation": {
                    "type": "boolean",
                    "description": "Allows the partner to cancel reservations."
                  },
                  "resetChargePoint": {
                    "type": "boolean",
                    "description": "Allows the partner to reset charge points."
                  },
                  "firmwareUpdate": {
                    "type": "boolean",
                    "description": "Allows the partner to make firmware updates to the charge points."
                  },
                  "createFromTemplate": {
                    "type": "boolean",
                    "description": "Allows the partner to create charge points from templates."
                  },
                  "changeSystemStatus": {
                    "type": "boolean",
                    "description": "Allows the partner to change the system status of charge points."
                  }
                }
              },
              "revenueSharing": {
                "type": "object",
                "properties": {
                  "partnerSharePercentageAcEvse": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "maximum": 100
                  },
                  "partnerSharePercentageDcEvse": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "maximum": 100
                  },
                  "excludeConnectionFee": {
                    "type": "boolean",
                    "description": "If the tariff has a Connection fee, this fee would not be included in the revenue sharing with the Partner and will remain entirely for the Operator."
                  },
                  "deductElectricityCost": {
                    "type": "boolean",
                    "description": "The cost of the electricity would first be deducted from the collected revenue and then the Revenue sharing rules will be applied."
                  },
                  "reimburseForElectricityCost": {
                    "type": "boolean",
                    "description": "If set to true, the Partner would receive not only their share of the revenue but also a reimbursement for the cost of the electricity. The formula to calculate the amount to be received by the Partner is (Revenue - Electricity cost) x Partner percentage + Electricity cost. It could be supplied only if deductElectricityCost is set to true."
                  },
                  "fixedFeePerSessionAc": {
                    "type": "number",
                    "format": "float",
                    "nullable": true,
                    "description": "Additional flat fee that is applied for every billed session and subtracted from the Partner's share of the revenue for each session on AC Charging Station."
                  },
                  "fixedFeePerSessionDc": {
                    "type": "number",
                    "format": "float",
                    "nullable": true,
                    "description": "Additional flat fee that is applied for every billed session and subtracted from the Partner's share of the revenue for each session on DC Charging Station."
                  },
                  "feePerKwhAc": {
                    "type": "number",
                    "format": "float",
                    "nullable": true,
                    "description": "Additional flat fee that is applied for every billed kWh and subtracted from the Partner's share of the revenue for each kWh billed on AC Charging Station."
                  },
                  "feePerKwhDc": {
                    "type": "number",
                    "format": "float",
                    "nullable": true,
                    "description": "Additional flat fee that is applied for every billed kWh and subtracted from the Partner's share of the revenue for each kWh billed on DC Charging Station."
                  },
                  "handlingFee": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "maximum": 100,
                    "nullable": true,
                    "description": "Additional percentage fee to be applied on the total amount paid by the user for the session. This fee is then subtracted from the Partner's share of the revenue."
                  }
                }
              },
              "monthlyPlatformFees": {
                "type": "object",
                "properties": {
                  "perChargePoint": {
                    "type": "number",
                    "format": "float",
                    "description": "The provided amount should be excluding VAT."
                  },
                  "perAcEvse": {
                    "type": "number",
                    "format": "float",
                    "description": "The provided amount should be excluding VAT."
                  },
                  "perDcEvse": {
                    "type": "number",
                    "format": "float",
                    "description": "The provided amount should be excluding VAT."
                  }
                }
              },
              "reimbursementFees": {
                "type": "object",
                "description": "Home-charging reimbursement fees configured on the contract itself and charged to the partner for reimbursed charging sessions and reimbursement periods. Only available when the home-charging reimbursement feature is enabled for the operator. All other home-charging reimbursement settings are managed on the partner resource.\n",
                "properties": {
                  "perSession": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "description": "Flat fee charged for every reimbursed charging session, in the contract's currency."
                  },
                  "perPeriod": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "description": "Flat fee charged for every reimbursement period, in the contract's currency."
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "settlementOverrides": {
                "type": "array",
                "description": "⚠️ Experimental — not yet a stable contract. The embedded settlement override objects may change without a version bump, including breaking changes within `v1.0` itself. Consume them for evaluation only, or coordinate adoption with your account manager so changes can be sequenced with you.\n\nActive settlement overrides of the contract, newest first. Returned only by `GET /public-api/resources/partner-contracts/v1.0/{partnerContract}` and only when requested through `include[]=settlementOverrides`. The listing, create and update responses never carry this property, because they do not accept the `include` parameter — read the overrides of a contract through `GET /public-api/resources/partner-contracts/v1.0/{partnerContract}/settlement-overrides` instead.\n",
                "items": {
                  "description": "⚠️ Experimental endpoint — not yet a stable contract. This resource ships as experimental / beta. While experimental, its schema and behaviour may change without a version bump — including breaking changes within v1.0 itself. Anyone consuming it does so for evaluation only, or by coordinating adoption with their account manager so changes can be sequenced with them. It graduates to a stable, version-locked contract (where the normal breaking-change rules apply) only when this experimental notice is removed.\n\nSettlement override read schema. Each record scopes an AC / DC partner share percentage to one driver population on the partner contract; the contract's own settlement fields remain the default rule.\n",
                  "type": "object",
                  "required": [
                    "id",
                    "name",
                    "priority",
                    "restriction",
                    "acPercent",
                    "dcPercent"
                  ],
                  "properties": {
                    "name": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "Name of the settlement override, unique among the active overrides of the partner contract.",
                      "example": "Fleet drivers"
                    },
                    "priority": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 4294967295,
                      "description": "Evaluation priority of the override, unique among the active overrides of the partner contract.\nThe lowest value that matches a session wins.\n",
                      "example": 1
                    },
                    "id": {
                      "type": "integer",
                      "description": "Unique identifier for the settlement override",
                      "example": 123
                    },
                    "restriction": {
                      "type": "object",
                      "description": "Which users of the partner contract the override applies to. `type` is the discriminator and\ndetermines what `targetIds` references.\n",
                      "required": [
                        "type"
                      ],
                      "properties": {
                        "type": {
                          "type": "string",
                          "description": "Which users of the partner contract the settlement override applies to.\n\nAllowed values:\n- `users_of_the_partner` - Applies to sessions of users belonging to the contract's partner.\n- `user_groups` - Applies to sessions of users in the listed user groups. Requires `userGroupIds`.\n- `ad_hoc_users` - Applies to sessions of ad hoc (unregistered) users.\n- `users_of_specific_partners` - Applies to sessions of users belonging to the listed partners. Requires `partnerIds`.\n",
                          "enum": [
                            "users_of_the_partner",
                            "user_groups",
                            "ad_hoc_users",
                            "users_of_specific_partners"
                          ]
                        },
                        "targetIds": {
                          "type": "array",
                          "description": "Identifiers of the records the override applies to, as determined by `type`: user group IDs\nfor `user_groups` and partner IDs for `users_of_specific_partners`. Required for those two\ntypes and omitted for every other type.\n",
                          "items": {
                            "type": "integer"
                          },
                          "example": [
                            12,
                            34
                          ]
                        }
                      }
                    },
                    "acPercent": {
                      "type": "number",
                      "format": "float",
                      "nullable": true,
                      "minimum": 0,
                      "maximum": 100,
                      "description": "Partner share percentage applied to AC sessions matched by this override.\n`null` means the value is inherited from the partner contract.\n",
                      "example": 70.5
                    },
                    "dcPercent": {
                      "type": "number",
                      "format": "float",
                      "nullable": true,
                      "minimum": 0,
                      "maximum": 100,
                      "description": "Partner share percentage applied to DC sessions matched by this override.\n`null` means the value is inherited from the partner contract.\n",
                      "example": 60
                    }
                  }
                }
              }
            },
            "required": [
              "id",
              "operatorId",
              "title",
              "partnerId",
              "startDate"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerContractUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "title": {
                "type": "string"
              },
              "partnerId": {
                "type": "integer"
              },
              "contractType": {
                "type": "string",
                "enum": [
                  "revenueSharing",
                  "paymentFacilitation"
                ],
                "description": "Indicates the business relationship model for the contract. `revenueSharing` means the operator is the supplier and remits a share to the partner. `paymentFacilitation` means the partner is the supplier and the operator acts as payment facilitator."
              },
              "startDate": {
                "type": "string",
                "format": "date-time",
                "description": "The contract is effective from the first of the selected month."
              },
              "endDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "description": "The contract expires at the last day of the selected month. If nothing is selected, there is no expiration date."
              },
              "autoRenewal": {
                "type": "boolean"
              },
              "externalId": {
                "type": "string",
                "description": "Used to store custom information, usually used for external references or metadata to the resource.",
                "maxLength": 255
              },
              "accessAndPermissions": {
                "type": "object",
                "properties": {
                  "sessionsRemoteControl": {
                    "type": "boolean",
                    "description": "Allows the partner to start/stop session, unlock connector, trigger message, set a charging profile and get the composite schedule."
                  },
                  "startReservation": {
                    "type": "boolean",
                    "description": "Allows the partner to make reservations."
                  },
                  "stopReservation": {
                    "type": "boolean",
                    "description": "Allows the partner to cancel reservations."
                  },
                  "resetChargePoint": {
                    "type": "boolean",
                    "description": "Allows the partner to reset charge points."
                  },
                  "firmwareUpdate": {
                    "type": "boolean",
                    "description": "Allows the partner to make firmware updates to the charge points."
                  },
                  "createFromTemplate": {
                    "type": "boolean",
                    "description": "Allows the partner to create charge points from templates."
                  },
                  "changeSystemStatus": {
                    "type": "boolean",
                    "description": "Allows the partner to change the system status of charge points."
                  }
                }
              },
              "revenueSharing": {
                "type": "object",
                "properties": {
                  "partnerSharePercentageAcEvse": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "maximum": 100
                  },
                  "partnerSharePercentageDcEvse": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "maximum": 100
                  },
                  "excludeConnectionFee": {
                    "type": "boolean",
                    "description": "If the tariff has a Connection fee, this fee would not be included in the revenue sharing with the Partner and will remain entirely for the Operator."
                  },
                  "deductElectricityCost": {
                    "type": "boolean",
                    "description": "The cost of the electricity would first be deducted from the collected revenue and then the Revenue sharing rules will be applied."
                  },
                  "reimburseForElectricityCost": {
                    "type": "boolean",
                    "description": "If set to true, the Partner would receive not only their share of the revenue but also a reimbursement for the cost of the electricity. The formula to calculate the amount to be received by the Partner is (Revenue - Electricity cost) x Partner percentage + Electricity cost. It could be supplied only if deductElectricityCost is set to true."
                  },
                  "fixedFeePerSessionAc": {
                    "type": "number",
                    "format": "float",
                    "nullable": true,
                    "description": "Additional flat fee that is applied for every billed session and subtracted from the Partner's share of the revenue for each session on AC Charging Station."
                  },
                  "fixedFeePerSessionDc": {
                    "type": "number",
                    "format": "float",
                    "nullable": true,
                    "description": "Additional flat fee that is applied for every billed session and subtracted from the Partner's share of the revenue for each session on DC Charging Station."
                  },
                  "feePerKwhAc": {
                    "type": "number",
                    "format": "float",
                    "nullable": true,
                    "description": "Additional flat fee that is applied for every billed kWh and subtracted from the Partner's share of the revenue for each kWh billed on AC Charging Station."
                  },
                  "feePerKwhDc": {
                    "type": "number",
                    "format": "float",
                    "nullable": true,
                    "description": "Additional flat fee that is applied for every billed kWh and subtracted from the Partner's share of the revenue for each kWh billed on DC Charging Station."
                  },
                  "handlingFee": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "maximum": 100,
                    "nullable": true,
                    "description": "Additional percentage fee to be applied on the total amount paid by the user for the session. This fee is then subtracted from the Partner's share of the revenue."
                  }
                }
              },
              "monthlyPlatformFees": {
                "type": "object",
                "properties": {
                  "perChargePoint": {
                    "type": "number",
                    "format": "float",
                    "description": "The provided amount should be excluding VAT."
                  },
                  "perAcEvse": {
                    "type": "number",
                    "format": "float",
                    "description": "The provided amount should be excluding VAT."
                  },
                  "perDcEvse": {
                    "type": "number",
                    "format": "float",
                    "description": "The provided amount should be excluding VAT."
                  }
                }
              },
              "reimbursementFees": {
                "type": "object",
                "description": "Home-charging reimbursement fees configured on the contract itself and charged to the partner for reimbursed charging sessions and reimbursement periods. Only available when the home-charging reimbursement feature is enabled for the operator. All other home-charging reimbursement settings are managed on the partner resource.\n",
                "properties": {
                  "perSession": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "description": "Flat fee charged for every reimbursed charging session, in the contract's currency."
                  },
                  "perPeriod": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "description": "Flat fee charged for every reimbursement period, in the contract's currency."
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "settlementOverrides": {
                "type": "array",
                "description": "⚠️ Experimental — not yet a stable contract. The embedded settlement override objects may change without a version bump, including breaking changes within `v1.0` itself. Consume them for evaluation only, or coordinate adoption with your account manager so changes can be sequenced with you.\n\nActive settlement overrides of the contract, newest first. Returned only by `GET /public-api/resources/partner-contracts/v1.0/{partnerContract}` and only when requested through `include[]=settlementOverrides`. The listing, create and update responses never carry this property, because they do not accept the `include` parameter — read the overrides of a contract through `GET /public-api/resources/partner-contracts/v1.0/{partnerContract}/settlement-overrides` instead.\n",
                "items": {
                  "description": "⚠️ Experimental endpoint — not yet a stable contract. This resource ships as experimental / beta. While experimental, its schema and behaviour may change without a version bump — including breaking changes within v1.0 itself. Anyone consuming it does so for evaluation only, or by coordinating adoption with their account manager so changes can be sequenced with them. It graduates to a stable, version-locked contract (where the normal breaking-change rules apply) only when this experimental notice is removed.\n\nSettlement override read schema. Each record scopes an AC / DC partner share percentage to one driver population on the partner contract; the contract's own settlement fields remain the default rule.\n",
                  "type": "object",
                  "required": [
                    "id",
                    "name",
                    "priority",
                    "restriction",
                    "acPercent",
                    "dcPercent"
                  ],
                  "properties": {
                    "name": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "Name of the settlement override, unique among the active overrides of the partner contract.",
                      "example": "Fleet drivers"
                    },
                    "priority": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 4294967295,
                      "description": "Evaluation priority of the override, unique among the active overrides of the partner contract.\nThe lowest value that matches a session wins.\n",
                      "example": 1
                    },
                    "id": {
                      "type": "integer",
                      "description": "Unique identifier for the settlement override",
                      "example": 123
                    },
                    "restriction": {
                      "type": "object",
                      "description": "Which users of the partner contract the override applies to. `type` is the discriminator and\ndetermines what `targetIds` references.\n",
                      "required": [
                        "type"
                      ],
                      "properties": {
                        "type": {
                          "type": "string",
                          "description": "Which users of the partner contract the settlement override applies to.\n\nAllowed values:\n- `users_of_the_partner` - Applies to sessions of users belonging to the contract's partner.\n- `user_groups` - Applies to sessions of users in the listed user groups. Requires `userGroupIds`.\n- `ad_hoc_users` - Applies to sessions of ad hoc (unregistered) users.\n- `users_of_specific_partners` - Applies to sessions of users belonging to the listed partners. Requires `partnerIds`.\n",
                          "enum": [
                            "users_of_the_partner",
                            "user_groups",
                            "ad_hoc_users",
                            "users_of_specific_partners"
                          ]
                        },
                        "targetIds": {
                          "type": "array",
                          "description": "Identifiers of the records the override applies to, as determined by `type`: user group IDs\nfor `user_groups` and partner IDs for `users_of_specific_partners`. Required for those two\ntypes and omitted for every other type.\n",
                          "items": {
                            "type": "integer"
                          },
                          "example": [
                            12,
                            34
                          ]
                        }
                      }
                    },
                    "acPercent": {
                      "type": "number",
                      "format": "float",
                      "nullable": true,
                      "minimum": 0,
                      "maximum": 100,
                      "description": "Partner share percentage applied to AC sessions matched by this override.\n`null` means the value is inherited from the partner contract.\n",
                      "example": 70.5
                    },
                    "dcPercent": {
                      "type": "number",
                      "format": "float",
                      "nullable": true,
                      "minimum": 0,
                      "maximum": 100,
                      "description": "Partner share percentage applied to DC sessions matched by this override.\n`null` means the value is inherited from the partner contract.\n",
                      "example": 60
                    }
                  }
                }
              }
            },
            "required": [
              "id",
              "operatorId",
              "title",
              "partnerId",
              "startDate"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerContractDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerContractPatch": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "title": {
                "type": "string"
              },
              "partnerId": {
                "type": "integer"
              },
              "contractType": {
                "type": "string",
                "enum": [
                  "revenueSharing",
                  "paymentFacilitation"
                ],
                "description": "Indicates the business relationship model for the contract. `revenueSharing` means the operator is the supplier and remits a share to the partner. `paymentFacilitation` means the partner is the supplier and the operator acts as payment facilitator."
              },
              "startDate": {
                "type": "string",
                "format": "date-time",
                "description": "The contract is effective from the first of the selected month."
              },
              "endDate": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "description": "The contract expires at the last day of the selected month. If nothing is selected, there is no expiration date."
              },
              "autoRenewal": {
                "type": "boolean"
              },
              "externalId": {
                "type": "string",
                "description": "Used to store custom information, usually used for external references or metadata to the resource.",
                "maxLength": 255
              },
              "accessAndPermissions": {
                "type": "object",
                "properties": {
                  "sessionsRemoteControl": {
                    "type": "boolean",
                    "description": "Allows the partner to start/stop session, unlock connector, trigger message, set a charging profile and get the composite schedule."
                  },
                  "startReservation": {
                    "type": "boolean",
                    "description": "Allows the partner to make reservations."
                  },
                  "stopReservation": {
                    "type": "boolean",
                    "description": "Allows the partner to cancel reservations."
                  },
                  "resetChargePoint": {
                    "type": "boolean",
                    "description": "Allows the partner to reset charge points."
                  },
                  "firmwareUpdate": {
                    "type": "boolean",
                    "description": "Allows the partner to make firmware updates to the charge points."
                  },
                  "createFromTemplate": {
                    "type": "boolean",
                    "description": "Allows the partner to create charge points from templates."
                  },
                  "changeSystemStatus": {
                    "type": "boolean",
                    "description": "Allows the partner to change the system status of charge points."
                  }
                }
              },
              "revenueSharing": {
                "type": "object",
                "properties": {
                  "partnerSharePercentageAcEvse": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "maximum": 100
                  },
                  "partnerSharePercentageDcEvse": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "maximum": 100
                  },
                  "excludeConnectionFee": {
                    "type": "boolean",
                    "description": "If the tariff has a Connection fee, this fee would not be included in the revenue sharing with the Partner and will remain entirely for the Operator."
                  },
                  "deductElectricityCost": {
                    "type": "boolean",
                    "description": "The cost of the electricity would first be deducted from the collected revenue and then the Revenue sharing rules will be applied."
                  },
                  "reimburseForElectricityCost": {
                    "type": "boolean",
                    "description": "If set to true, the Partner would receive not only their share of the revenue but also a reimbursement for the cost of the electricity. The formula to calculate the amount to be received by the Partner is (Revenue - Electricity cost) x Partner percentage + Electricity cost. It could be supplied only if deductElectricityCost is set to true."
                  },
                  "fixedFeePerSessionAc": {
                    "type": "number",
                    "format": "float",
                    "nullable": true,
                    "description": "Additional flat fee that is applied for every billed session and subtracted from the Partner's share of the revenue for each session on AC Charging Station."
                  },
                  "fixedFeePerSessionDc": {
                    "type": "number",
                    "format": "float",
                    "nullable": true,
                    "description": "Additional flat fee that is applied for every billed session and subtracted from the Partner's share of the revenue for each session on DC Charging Station."
                  },
                  "feePerKwhAc": {
                    "type": "number",
                    "format": "float",
                    "nullable": true,
                    "description": "Additional flat fee that is applied for every billed kWh and subtracted from the Partner's share of the revenue for each kWh billed on AC Charging Station."
                  },
                  "feePerKwhDc": {
                    "type": "number",
                    "format": "float",
                    "nullable": true,
                    "description": "Additional flat fee that is applied for every billed kWh and subtracted from the Partner's share of the revenue for each kWh billed on DC Charging Station."
                  },
                  "handlingFee": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "maximum": 100,
                    "nullable": true,
                    "description": "Additional percentage fee to be applied on the total amount paid by the user for the session. This fee is then subtracted from the Partner's share of the revenue."
                  }
                }
              },
              "monthlyPlatformFees": {
                "type": "object",
                "properties": {
                  "perChargePoint": {
                    "type": "number",
                    "format": "float",
                    "description": "The provided amount should be excluding VAT."
                  },
                  "perAcEvse": {
                    "type": "number",
                    "format": "float",
                    "description": "The provided amount should be excluding VAT."
                  },
                  "perDcEvse": {
                    "type": "number",
                    "format": "float",
                    "description": "The provided amount should be excluding VAT."
                  }
                }
              },
              "reimbursementFees": {
                "type": "object",
                "description": "Home-charging reimbursement fees configured on the contract itself and charged to the partner for reimbursed charging sessions and reimbursement periods. Only available when the home-charging reimbursement feature is enabled for the operator. All other home-charging reimbursement settings are managed on the partner resource.\n",
                "properties": {
                  "perSession": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "description": "Flat fee charged for every reimbursed charging session, in the contract's currency."
                  },
                  "perPeriod": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "description": "Flat fee charged for every reimbursement period, in the contract's currency."
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "settlementOverrides": {
                "type": "array",
                "description": "⚠️ Experimental — not yet a stable contract. The embedded settlement override objects may change without a version bump, including breaking changes within `v1.0` itself. Consume them for evaluation only, or coordinate adoption with your account manager so changes can be sequenced with you.\n\nActive settlement overrides of the contract, newest first. Returned only by `GET /public-api/resources/partner-contracts/v1.0/{partnerContract}` and only when requested through `include[]=settlementOverrides`. The listing, create and update responses never carry this property, because they do not accept the `include` parameter — read the overrides of a contract through `GET /public-api/resources/partner-contracts/v1.0/{partnerContract}/settlement-overrides` instead.\n",
                "items": {
                  "description": "⚠️ Experimental endpoint — not yet a stable contract. This resource ships as experimental / beta. While experimental, its schema and behaviour may change without a version bump — including breaking changes within v1.0 itself. Anyone consuming it does so for evaluation only, or by coordinating adoption with their account manager so changes can be sequenced with them. It graduates to a stable, version-locked contract (where the normal breaking-change rules apply) only when this experimental notice is removed.\n\nSettlement override read schema. Each record scopes an AC / DC partner share percentage to one driver population on the partner contract; the contract's own settlement fields remain the default rule.\n",
                  "type": "object",
                  "required": [
                    "id",
                    "name",
                    "priority",
                    "restriction",
                    "acPercent",
                    "dcPercent"
                  ],
                  "properties": {
                    "name": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "Name of the settlement override, unique among the active overrides of the partner contract.",
                      "example": "Fleet drivers"
                    },
                    "priority": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 4294967295,
                      "description": "Evaluation priority of the override, unique among the active overrides of the partner contract.\nThe lowest value that matches a session wins.\n",
                      "example": 1
                    },
                    "id": {
                      "type": "integer",
                      "description": "Unique identifier for the settlement override",
                      "example": 123
                    },
                    "restriction": {
                      "type": "object",
                      "description": "Which users of the partner contract the override applies to. `type` is the discriminator and\ndetermines what `targetIds` references.\n",
                      "required": [
                        "type"
                      ],
                      "properties": {
                        "type": {
                          "type": "string",
                          "description": "Which users of the partner contract the settlement override applies to.\n\nAllowed values:\n- `users_of_the_partner` - Applies to sessions of users belonging to the contract's partner.\n- `user_groups` - Applies to sessions of users in the listed user groups. Requires `userGroupIds`.\n- `ad_hoc_users` - Applies to sessions of ad hoc (unregistered) users.\n- `users_of_specific_partners` - Applies to sessions of users belonging to the listed partners. Requires `partnerIds`.\n",
                          "enum": [
                            "users_of_the_partner",
                            "user_groups",
                            "ad_hoc_users",
                            "users_of_specific_partners"
                          ]
                        },
                        "targetIds": {
                          "type": "array",
                          "description": "Identifiers of the records the override applies to, as determined by `type`: user group IDs\nfor `user_groups` and partner IDs for `users_of_specific_partners`. Required for those two\ntypes and omitted for every other type.\n",
                          "items": {
                            "type": "integer"
                          },
                          "example": [
                            12,
                            34
                          ]
                        }
                      }
                    },
                    "acPercent": {
                      "type": "number",
                      "format": "float",
                      "nullable": true,
                      "minimum": 0,
                      "maximum": 100,
                      "description": "Partner share percentage applied to AC sessions matched by this override.\n`null` means the value is inherited from the partner contract.\n",
                      "example": 70.5
                    },
                    "dcPercent": {
                      "type": "number",
                      "format": "float",
                      "nullable": true,
                      "minimum": 0,
                      "maximum": 100,
                      "description": "Partner share percentage applied to DC sessions matched by this override.\n`null` means the value is inherited from the partner contract.\n",
                      "example": 60
                    }
                  }
                }
              }
            },
            "required": [
              "id",
              "operatorId",
              "title",
              "partnerId",
              "startDate"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerContractSettlementOverridesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "description": "⚠️ Experimental endpoint — not yet a stable contract. This resource ships as experimental / beta. While experimental, its schema and behaviour may change without a version bump — including breaking changes within v1.0 itself. Anyone consuming it does so for evaluation only, or by coordinating adoption with their account manager so changes can be sequenced with them. It graduates to a stable, version-locked contract (where the normal breaking-change rules apply) only when this experimental notice is removed.\n\nSettlement override read schema. Each record scopes an AC / DC partner share percentage to one driver population on the partner contract; the contract's own settlement fields remain the default rule.\n",
              "type": "object",
              "required": [
                "id",
                "name",
                "priority",
                "restriction",
                "acPercent",
                "dcPercent"
              ],
              "properties": {
                "name": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "Name of the settlement override, unique among the active overrides of the partner contract.",
                  "example": "Fleet drivers"
                },
                "priority": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 4294967295,
                  "description": "Evaluation priority of the override, unique among the active overrides of the partner contract.\nThe lowest value that matches a session wins.\n",
                  "example": 1
                },
                "id": {
                  "type": "integer",
                  "description": "Unique identifier for the settlement override",
                  "example": 123
                },
                "restriction": {
                  "type": "object",
                  "description": "Which users of the partner contract the override applies to. `type` is the discriminator and\ndetermines what `targetIds` references.\n",
                  "required": [
                    "type"
                  ],
                  "properties": {
                    "type": {
                      "type": "string",
                      "description": "Which users of the partner contract the settlement override applies to.\n\nAllowed values:\n- `users_of_the_partner` - Applies to sessions of users belonging to the contract's partner.\n- `user_groups` - Applies to sessions of users in the listed user groups. Requires `userGroupIds`.\n- `ad_hoc_users` - Applies to sessions of ad hoc (unregistered) users.\n- `users_of_specific_partners` - Applies to sessions of users belonging to the listed partners. Requires `partnerIds`.\n",
                      "enum": [
                        "users_of_the_partner",
                        "user_groups",
                        "ad_hoc_users",
                        "users_of_specific_partners"
                      ]
                    },
                    "targetIds": {
                      "type": "array",
                      "description": "Identifiers of the records the override applies to, as determined by `type`: user group IDs\nfor `user_groups` and partner IDs for `users_of_specific_partners`. Required for those two\ntypes and omitted for every other type.\n",
                      "items": {
                        "type": "integer"
                      },
                      "example": [
                        12,
                        34
                      ]
                    }
                  }
                },
                "acPercent": {
                  "type": "number",
                  "format": "float",
                  "nullable": true,
                  "minimum": 0,
                  "maximum": 100,
                  "description": "Partner share percentage applied to AC sessions matched by this override.\n`null` means the value is inherited from the partner contract.\n",
                  "example": 70.5
                },
                "dcPercent": {
                  "type": "number",
                  "format": "float",
                  "nullable": true,
                  "minimum": 0,
                  "maximum": 100,
                  "description": "Partner share percentage applied to DC sessions matched by this override.\n`null` means the value is inherited from the partner contract.\n",
                  "example": 60
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerContractSettlementOverrideCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "description": "⚠️ Experimental endpoint — not yet a stable contract. This resource ships as experimental / beta. While experimental, its schema and behaviour may change without a version bump — including breaking changes within v1.0 itself. Anyone consuming it does so for evaluation only, or by coordinating adoption with their account manager so changes can be sequenced with them. It graduates to a stable, version-locked contract (where the normal breaking-change rules apply) only when this experimental notice is removed.\n\nSettlement override read schema. Each record scopes an AC / DC partner share percentage to one driver population on the partner contract; the contract's own settlement fields remain the default rule.\n",
            "type": "object",
            "required": [
              "id",
              "name",
              "priority",
              "restriction",
              "acPercent",
              "dcPercent"
            ],
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 255,
                "description": "Name of the settlement override, unique among the active overrides of the partner contract.",
                "example": "Fleet drivers"
              },
              "priority": {
                "type": "integer",
                "minimum": 1,
                "maximum": 4294967295,
                "description": "Evaluation priority of the override, unique among the active overrides of the partner contract.\nThe lowest value that matches a session wins.\n",
                "example": 1
              },
              "id": {
                "type": "integer",
                "description": "Unique identifier for the settlement override",
                "example": 123
              },
              "restriction": {
                "type": "object",
                "description": "Which users of the partner contract the override applies to. `type` is the discriminator and\ndetermines what `targetIds` references.\n",
                "required": [
                  "type"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "description": "Which users of the partner contract the settlement override applies to.\n\nAllowed values:\n- `users_of_the_partner` - Applies to sessions of users belonging to the contract's partner.\n- `user_groups` - Applies to sessions of users in the listed user groups. Requires `userGroupIds`.\n- `ad_hoc_users` - Applies to sessions of ad hoc (unregistered) users.\n- `users_of_specific_partners` - Applies to sessions of users belonging to the listed partners. Requires `partnerIds`.\n",
                    "enum": [
                      "users_of_the_partner",
                      "user_groups",
                      "ad_hoc_users",
                      "users_of_specific_partners"
                    ]
                  },
                  "targetIds": {
                    "type": "array",
                    "description": "Identifiers of the records the override applies to, as determined by `type`: user group IDs\nfor `user_groups` and partner IDs for `users_of_specific_partners`. Required for those two\ntypes and omitted for every other type.\n",
                    "items": {
                      "type": "integer"
                    },
                    "example": [
                      12,
                      34
                    ]
                  }
                }
              },
              "acPercent": {
                "type": "number",
                "format": "float",
                "nullable": true,
                "minimum": 0,
                "maximum": 100,
                "description": "Partner share percentage applied to AC sessions matched by this override.\n`null` means the value is inherited from the partner contract.\n",
                "example": 70.5
              },
              "dcPercent": {
                "type": "number",
                "format": "float",
                "nullable": true,
                "minimum": 0,
                "maximum": 100,
                "description": "Partner share percentage applied to DC sessions matched by this override.\n`null` means the value is inherited from the partner contract.\n",
                "example": 60
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "required": [
          "errorCode"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errorCode": {
            "type": "string",
            "description": "Machine-readable error code describing the conflict.\n\nAllowed values:\n- `override_priority_taken` - Another active override on the same partner contract already uses the requested priority.\n",
            "enum": [
              "override_priority_taken"
            ]
          }
        }
      }
    },
    "412": {
      "schema": {
        "type": "object",
        "required": [
          "errorCode"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errorCode": {
            "type": "string",
            "description": "Machine-readable error code describing the unmet precondition.\n\nAllowed values:\n- `settlement_overrides_not_enabled` - Settlement overrides are not enabled for the operator owning the partner contract.\n",
            "enum": [
              "settlement_overrides_not_enabled"
            ]
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerContractSettlementOverrideRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "description": "⚠️ Experimental endpoint — not yet a stable contract. This resource ships as experimental / beta. While experimental, its schema and behaviour may change without a version bump — including breaking changes within v1.0 itself. Anyone consuming it does so for evaluation only, or by coordinating adoption with their account manager so changes can be sequenced with them. It graduates to a stable, version-locked contract (where the normal breaking-change rules apply) only when this experimental notice is removed.\n\nSettlement override read schema. Each record scopes an AC / DC partner share percentage to one driver population on the partner contract; the contract's own settlement fields remain the default rule.\n",
            "type": "object",
            "required": [
              "id",
              "name",
              "priority",
              "restriction",
              "acPercent",
              "dcPercent"
            ],
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 255,
                "description": "Name of the settlement override, unique among the active overrides of the partner contract.",
                "example": "Fleet drivers"
              },
              "priority": {
                "type": "integer",
                "minimum": 1,
                "maximum": 4294967295,
                "description": "Evaluation priority of the override, unique among the active overrides of the partner contract.\nThe lowest value that matches a session wins.\n",
                "example": 1
              },
              "id": {
                "type": "integer",
                "description": "Unique identifier for the settlement override",
                "example": 123
              },
              "restriction": {
                "type": "object",
                "description": "Which users of the partner contract the override applies to. `type` is the discriminator and\ndetermines what `targetIds` references.\n",
                "required": [
                  "type"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "description": "Which users of the partner contract the settlement override applies to.\n\nAllowed values:\n- `users_of_the_partner` - Applies to sessions of users belonging to the contract's partner.\n- `user_groups` - Applies to sessions of users in the listed user groups. Requires `userGroupIds`.\n- `ad_hoc_users` - Applies to sessions of ad hoc (unregistered) users.\n- `users_of_specific_partners` - Applies to sessions of users belonging to the listed partners. Requires `partnerIds`.\n",
                    "enum": [
                      "users_of_the_partner",
                      "user_groups",
                      "ad_hoc_users",
                      "users_of_specific_partners"
                    ]
                  },
                  "targetIds": {
                    "type": "array",
                    "description": "Identifiers of the records the override applies to, as determined by `type`: user group IDs\nfor `user_groups` and partner IDs for `users_of_specific_partners`. Required for those two\ntypes and omitted for every other type.\n",
                    "items": {
                      "type": "integer"
                    },
                    "example": [
                      12,
                      34
                    ]
                  }
                }
              },
              "acPercent": {
                "type": "number",
                "format": "float",
                "nullable": true,
                "minimum": 0,
                "maximum": 100,
                "description": "Partner share percentage applied to AC sessions matched by this override.\n`null` means the value is inherited from the partner contract.\n",
                "example": 70.5
              },
              "dcPercent": {
                "type": "number",
                "format": "float",
                "nullable": true,
                "minimum": 0,
                "maximum": 100,
                "description": "Partner share percentage applied to DC sessions matched by this override.\n`null` means the value is inherited from the partner contract.\n",
                "example": 60
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerContractSettlementOverrideDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "412": {
      "schema": {
        "type": "object",
        "required": [
          "errorCode"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errorCode": {
            "type": "string",
            "description": "Machine-readable error code describing the unmet precondition.\n\nAllowed values:\n- `settlement_overrides_not_enabled` - Settlement overrides are not enabled for the operator owning the partner contract.\n",
            "enum": [
              "settlement_overrides_not_enabled"
            ]
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerContractSettlementOverrideUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "description": "⚠️ Experimental endpoint — not yet a stable contract. This resource ships as experimental / beta. While experimental, its schema and behaviour may change without a version bump — including breaking changes within v1.0 itself. Anyone consuming it does so for evaluation only, or by coordinating adoption with their account manager so changes can be sequenced with them. It graduates to a stable, version-locked contract (where the normal breaking-change rules apply) only when this experimental notice is removed.\n\nSettlement override read schema. Each record scopes an AC / DC partner share percentage to one driver population on the partner contract; the contract's own settlement fields remain the default rule.\n",
            "type": "object",
            "required": [
              "id",
              "name",
              "priority",
              "restriction",
              "acPercent",
              "dcPercent"
            ],
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 255,
                "description": "Name of the settlement override, unique among the active overrides of the partner contract.",
                "example": "Fleet drivers"
              },
              "priority": {
                "type": "integer",
                "minimum": 1,
                "maximum": 4294967295,
                "description": "Evaluation priority of the override, unique among the active overrides of the partner contract.\nThe lowest value that matches a session wins.\n",
                "example": 1
              },
              "id": {
                "type": "integer",
                "description": "Unique identifier for the settlement override",
                "example": 123
              },
              "restriction": {
                "type": "object",
                "description": "Which users of the partner contract the override applies to. `type` is the discriminator and\ndetermines what `targetIds` references.\n",
                "required": [
                  "type"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "description": "Which users of the partner contract the settlement override applies to.\n\nAllowed values:\n- `users_of_the_partner` - Applies to sessions of users belonging to the contract's partner.\n- `user_groups` - Applies to sessions of users in the listed user groups. Requires `userGroupIds`.\n- `ad_hoc_users` - Applies to sessions of ad hoc (unregistered) users.\n- `users_of_specific_partners` - Applies to sessions of users belonging to the listed partners. Requires `partnerIds`.\n",
                    "enum": [
                      "users_of_the_partner",
                      "user_groups",
                      "ad_hoc_users",
                      "users_of_specific_partners"
                    ]
                  },
                  "targetIds": {
                    "type": "array",
                    "description": "Identifiers of the records the override applies to, as determined by `type`: user group IDs\nfor `user_groups` and partner IDs for `users_of_specific_partners`. Required for those two\ntypes and omitted for every other type.\n",
                    "items": {
                      "type": "integer"
                    },
                    "example": [
                      12,
                      34
                    ]
                  }
                }
              },
              "acPercent": {
                "type": "number",
                "format": "float",
                "nullable": true,
                "minimum": 0,
                "maximum": 100,
                "description": "Partner share percentage applied to AC sessions matched by this override.\n`null` means the value is inherited from the partner contract.\n",
                "example": 70.5
              },
              "dcPercent": {
                "type": "number",
                "format": "float",
                "nullable": true,
                "minimum": 0,
                "maximum": 100,
                "description": "Partner share percentage applied to DC sessions matched by this override.\n`null` means the value is inherited from the partner contract.\n",
                "example": 60
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "required": [
          "errorCode"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errorCode": {
            "type": "string",
            "description": "Machine-readable error code describing the conflict.\n\nAllowed values:\n- `override_priority_taken` - Another active override on the same partner contract already uses the requested priority.\n",
            "enum": [
              "override_priority_taken"
            ]
          }
        }
      }
    },
    "412": {
      "schema": {
        "type": "object",
        "required": [
          "errorCode"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errorCode": {
            "type": "string",
            "description": "Machine-readable error code describing the unmet precondition.\n\nAllowed values:\n- `settlement_overrides_not_enabled` - Settlement overrides are not enabled for the operator owning the partner contract.\n",
            "enum": [
              "settlement_overrides_not_enabled"
            ]
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "expensesListingDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "partnerId": {
                  "type": "integer"
                },
                "partnerName": {
                  "type": "string"
                },
                "date": {
                  "type": "string",
                  "format": "date-time"
                },
                "origin": {
                  "type": "string"
                },
                "period": {
                  "type": "string",
                  "description": "Month and year the expense refers to"
                },
                "totalAmount": {
                  "type": "number"
                },
                "chargingSessionId": {
                  "type": "integer",
                  "nullable": true
                },
                "startedAt": {
                  "type": "string",
                  "format": "date-time",
                  "nullable": true
                },
                "duration": {
                  "type": "string",
                  "nullable": true,
                  "description": "Charging Session duration"
                },
                "chargePointName": {
                  "type": "string",
                  "nullable": true
                },
                "authorization": {
                  "type": "string",
                  "nullable": true,
                  "description": "Source of authorisation"
                },
                "subtotal": {
                  "type": "number",
                  "nullable": true
                },
                "operatorDiscountPercentage": {
                  "type": "number",
                  "format": "decimal",
                  "nullable": true
                },
                "operatorDiscountAmount": {
                  "type": "number",
                  "format": "decimal",
                  "nullable": true
                },
                "currency": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 3,
                  "description": "The ISO 4217 3-letter code of the currency"
                },
                "breakdown": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "description": "Expense Breakdown",
                    "properties": {
                      "partnerContractId": {
                        "type": "integer"
                      },
                      "numberOfChargePoints": {
                        "type": "integer"
                      },
                      "totalPlatformFeeChargePoints": {
                        "type": "number"
                      },
                      "numberOfAcEvses": {
                        "type": "integer"
                      },
                      "totalPlatformFeeAcEvses": {
                        "type": "number"
                      },
                      "numberOfDcEvses": {
                        "type": "integer"
                      },
                      "totalPlatformFeeDcEvses": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "partnerContractId",
                      "numberOfChargePoints",
                      "totalPlatformFeeChargePoints",
                      "numberOfAcEvses",
                      "totalPlatformFeeAcEvses",
                      "numberOfDcEvses",
                      "totalPlatformFeeDcEvses"
                    ]
                  }
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "partnerId",
                "partnerName",
                "date",
                "origin",
                "totalAmount",
                "currency"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "expensesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "partnerId": {
                  "type": "integer"
                },
                "partnerName": {
                  "type": "string"
                },
                "date": {
                  "type": "string",
                  "format": "date-time"
                },
                "origin": {
                  "type": "string",
                  "enum": [
                    "platform-fee-emsp",
                    "platform-fee-cpo",
                    "private-evse-access-fee",
                    "user-custom-fee",
                    "session-emsp"
                  ]
                },
                "period": {
                  "type": "string",
                  "description": "Month and year the expense refers to. Applicable for records with platform-fee-emsp, platform-fee-cpo, or private-evse-access-fee origin",
                  "example": "November 2025"
                },
                "totalAmount": {
                  "type": "object",
                  "properties": {
                    "withoutTax": {
                      "type": "number"
                    },
                    "withTax": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "withoutTax"
                  ]
                },
                "currencyCode": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 3,
                  "description": "The ISO 4217 3-letter code of the currency"
                },
                "settlementReportId": {
                  "type": "integer",
                  "nullable": true
                },
                "chargingSessionId": {
                  "type": "integer",
                  "nullable": true
                },
                "startedAt": {
                  "type": "string",
                  "format": "date-time",
                  "nullable": true
                },
                "duration": {
                  "type": "string",
                  "nullable": true,
                  "description": "Charging Session duration"
                },
                "chargePointName": {
                  "type": "string",
                  "nullable": true
                },
                "chargePointId": {
                  "type": "integer",
                  "description": "Charge point ID. Only applicable for records with private-evse-access-fee origin"
                },
                "evseCount": {
                  "type": "integer",
                  "description": "Number of EVSEs accessed on this charge point. Only applicable for records with private-evse-access-fee origin"
                },
                "authorization": {
                  "type": "string",
                  "nullable": true,
                  "description": "Source of authorisation"
                },
                "operatorDiscountPercentage": {
                  "type": "number",
                  "format": "decimal",
                  "nullable": true
                },
                "operatorDiscountAmount": {
                  "type": "number",
                  "format": "decimal",
                  "nullable": true
                },
                "breakdown": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "description": "Expense Breakdown",
                    "properties": {
                      "partnerContractId": {
                        "type": "integer"
                      },
                      "numberOfChargePoints": {
                        "type": "integer"
                      },
                      "totalPlatformFeeChargePoints": {
                        "type": "number"
                      },
                      "numberOfAcEvses": {
                        "type": "integer"
                      },
                      "totalPlatformFeeAcEvses": {
                        "type": "number"
                      },
                      "numberOfDcEvses": {
                        "type": "integer"
                      },
                      "totalPlatformFeeDcEvses": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "partnerContractId",
                      "numberOfChargePoints",
                      "totalPlatformFeeChargePoints",
                      "numberOfAcEvses",
                      "totalPlatformFeeAcEvses",
                      "numberOfDcEvses",
                      "totalPlatformFeeDcEvses"
                    ]
                  }
                }
              },
              "required": [
                "id",
                "partnerId",
                "partnerName",
                "date",
                "origin",
                "totalAmount",
                "currencyCode",
                "settlementReportId"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "expensesV1_2Listing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "partnerId": {
                  "type": "integer"
                },
                "date": {
                  "type": "string",
                  "format": "date-time"
                },
                "origin": {
                  "type": "string",
                  "description": "The origin type of the expense record:\n- `session-emsp` - Expense billed to a partner for a charging session(s) completed by its associated users, where the partner pays for its users' sessions.\n- `platform-fee-cpo-flat` - Per-charge-point platform fee incurred by the partner. Replaces the aggregated platform-fee-cpo used in v1.0 and v1.1.\n- `platform-fee-emsp` - Platform fee incurred by a partner per billing period.\n- `private-evse-access-fee` - Expense incurred by a partner when it is granted access to another partner's private EVSEs.\n- `user-custom-fee` - Custom fee defined by the operator and applied to a specific user, billed to the partner. Used for ad-hoc charges such as administrative, onboarding, or service fees that fall outside the standard platform and session fees.\n",
                  "enum": [
                    "platform-fee-emsp",
                    "platform-fee-cpo-flat",
                    "private-evse-access-fee",
                    "user-custom-fee",
                    "session-emsp"
                  ]
                },
                "period": {
                  "type": "string",
                  "description": "Month and year the expense refers to. Applicable for records with platform-fee-emsp, platform-fee-cpo-flat, or private-evse-access-fee origin",
                  "example": "November 2025"
                },
                "totalAmount": {
                  "type": "object",
                  "properties": {
                    "withoutTax": {
                      "type": "number"
                    },
                    "withTax": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "withoutTax"
                  ]
                },
                "currencyCode": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 3,
                  "description": "The ISO 4217 3-letter code of the currency"
                },
                "settlementReportId": {
                  "type": "integer",
                  "nullable": true
                },
                "chargingSessionId": {
                  "type": "integer"
                },
                "startedAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "duration": {
                  "type": "string",
                  "description": "Charging Session duration"
                },
                "chargePointId": {
                  "type": "integer",
                  "description": "ID of the associated charge point"
                },
                "locationId": {
                  "type": "integer",
                  "description": "ID of the associated location"
                },
                "partnerContractId": {
                  "type": "integer",
                  "description": "ID of the associated partner contract"
                },
                "evseCount": {
                  "type": "integer",
                  "description": "Number of EVSEs accessed on this charge point. Only applicable for records with private-evse-access-fee origin"
                },
                "authorization": {
                  "type": "string",
                  "description": "Source of authorisation"
                },
                "operatorDiscountPercentage": {
                  "type": "number",
                  "format": "decimal"
                },
                "operatorDiscountAmount": {
                  "type": "number",
                  "format": "decimal"
                },
                "breakdown": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "description": "Expense Breakdown",
                    "properties": {
                      "partnerContractId": {
                        "type": "integer"
                      },
                      "numberOfChargePoints": {
                        "type": "integer"
                      },
                      "totalPlatformFeeChargePoints": {
                        "type": "number"
                      },
                      "numberOfAcEvses": {
                        "type": "integer"
                      },
                      "totalPlatformFeeAcEvses": {
                        "type": "number"
                      },
                      "numberOfDcEvses": {
                        "type": "integer"
                      },
                      "totalPlatformFeeDcEvses": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "partnerContractId",
                      "numberOfChargePoints",
                      "totalPlatformFeeChargePoints",
                      "numberOfAcEvses",
                      "totalPlatformFeeAcEvses",
                      "numberOfDcEvses",
                      "totalPlatformFeeDcEvses"
                    ]
                  }
                }
              },
              "required": [
                "id",
                "partnerId",
                "date",
                "origin",
                "totalAmount",
                "currencyCode",
                "settlementReportId"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "partnerInviteAccessPoliciesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Partner invite access policy",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "description": "The operator ID. Omitted for global policies such as the system-created default policy."
                },
                "name": {
                  "type": "string",
                  "maxLength": 255
                },
                "partnerAccess": {
                  "type": "object",
                  "description": "Controls which partners can use this policy when creating invites.\n- `none` — no partner restriction; any partner under the operator can use the policy, including future partners\n- `allow` — only the specified partners (`partnerIds` is required)\n",
                  "properties": {
                    "type": {
                      "type": "string",
                      "description": "Controls which partners can use the access policy when creating invites.\n- `none` — no partner restriction; any partner under the operator can use the policy, including future partners\n- `allow` — only the specified partners can use the policy\n",
                      "enum": [
                        "none",
                        "allow"
                      ]
                    },
                    "partnerIds": {
                      "type": "array",
                      "description": "The IDs of partners who can use the policy. Required when `type` is `allow`, prohibited when `type` is `none`.\nIn responses the field is present only when `type` is `allow`.\n",
                      "items": {
                        "type": "integer"
                      }
                    }
                  },
                  "required": [
                    "type"
                  ]
                },
                "restrictions": {
                  "type": "object",
                  "description": "Defines which of the partner's charge points invited users can access.\nEach sub-restriction is optional on input — an omitted sub-restriction is treated as `none`.\nAt most one sub-restriction can use `allow` or `deny`; providing more than one active sub-restriction is a validation error.\nAn empty object, or all sub-restrictions set to `none`, grants access to all of the partner's charge points.\nTo grant access to no charge points, set `locations.type` to `allow` with an empty `locationIds` list.\nLocation tag restrictions use `locationTagIds`; charge point tag restrictions use `chargePointTagIds`.\nIn responses all four sub-restrictions are always present.\n",
                  "properties": {
                    "locations": {
                      "type": "object",
                      "description": "Controls access to the partner's charge points by the location they belong to. `none` means no location restriction, `allow` limits access to charge points at the listed locations, and `deny` excludes charge points at the listed locations.",
                      "properties": {
                        "type": {
                          "type": "string",
                          "description": "Restriction type.\n- `none` — no restriction for this target type\n- `allow` — allow only the listed target IDs\n- `deny` — deny the listed target IDs\n",
                          "enum": [
                            "none",
                            "allow",
                            "deny"
                          ]
                        },
                        "locationIds": {
                          "type": "array",
                          "description": "Required when `type` is `allow` or `deny`. When `type` is `none` the list is not needed — an empty list is accepted and ignored, a non-empty list is rejected. An empty `allow` list represents no accessible charge points.",
                          "items": {
                            "type": "integer"
                          }
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    "chargePoints": {
                      "type": "object",
                      "description": "Controls access to the partner's charge points by explicit charge point IDs. `none` means no charge point ID restriction, `allow` limits access to the listed charge points, and `deny` excludes the listed charge points.",
                      "properties": {
                        "type": {
                          "$ref": "#/paths/~1public-api~1resources~1partner-invite-access-policies~1v1.0/post/responses/201/content/application~1json/schema/properties/data"
                        },
                        "chargePointIds": {
                          "type": "array",
                          "description": "Required when `type` is `allow` or `deny`. When `type` is `none` the list is not needed — an empty list is accepted and ignored, a non-empty list is rejected.",
                          "items": {
                            "type": "integer"
                          }
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    "locationTags": {
                      "type": "object",
                      "description": "Controls access to the partner's charge points by the tags assigned to their locations. `none` means no location tag restriction, `allow` limits access to charge points at locations carrying the listed tags, and `deny` excludes charge points at locations carrying the listed tags.",
                      "properties": {
                        "type": {
                          "$ref": "#/paths/~1public-api~1resources~1partner-invite-access-policies~1v1.0/post/responses/201/content/application~1json/schema/properties/data"
                        },
                        "locationTagIds": {
                          "type": "array",
                          "description": "Required when `type` is `allow` or `deny`. When `type` is `none` the list is not needed — an empty list is accepted and ignored, a non-empty list is rejected.",
                          "items": {
                            "type": "integer"
                          }
                        }
                      },
                      "required": [
                        "type"
                      ]
                    },
                    "chargePointTags": {
                      "type": "object",
                      "description": "Controls access to the partner's charge points by the tags assigned to the charge points. `none` means no charge point tag restriction, `allow` limits access to charge points carrying the listed tags, and `deny` excludes charge points carrying the listed tags.",
                      "properties": {
                        "type": {
                          "$ref": "#/paths/~1public-api~1resources~1partner-invite-access-policies~1v1.0/post/responses/201/content/application~1json/schema/properties/data"
                        },
                        "chargePointTagIds": {
                          "type": "array",
                          "description": "Required when `type` is `allow` or `deny`. When `type` is `none` the list is not needed — an empty list is accepted and ignored, a non-empty list is rejected.",
                          "items": {
                            "type": "integer"
                          }
                        }
                      },
                      "required": [
                        "type"
                      ]
                    }
                  }
                },
                "includeSharedChargePoints": {
                  "type": "boolean",
                  "description": "When `true`, invited users also have access to charge points of other partners that are shared with the inviting partner."
                },
                "isDefault": {
                  "type": "boolean",
                  "description": "`true` for the system-created default policy.",
                  "readOnly": true
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "name",
                "partnerAccess",
                "restrictions",
                "includeSharedChargePoints",
                "isDefault",
                "createdAt",
                "lastUpdatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInviteAccessPolicyCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Partner invite access policy",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The operator ID. Omitted for global policies such as the system-created default policy."
              },
              "name": {
                "type": "string",
                "maxLength": 255
              },
              "partnerAccess": {
                "type": "object",
                "description": "Controls which partners can use this policy when creating invites.\n- `none` — no partner restriction; any partner under the operator can use the policy, including future partners\n- `allow` — only the specified partners (`partnerIds` is required)\n",
                "properties": {
                  "type": {
                    "type": "string",
                    "description": "Controls which partners can use the access policy when creating invites.\n- `none` — no partner restriction; any partner under the operator can use the policy, including future partners\n- `allow` — only the specified partners can use the policy\n",
                    "enum": [
                      "none",
                      "allow"
                    ]
                  },
                  "partnerIds": {
                    "type": "array",
                    "description": "The IDs of partners who can use the policy. Required when `type` is `allow`, prohibited when `type` is `none`.\nIn responses the field is present only when `type` is `allow`.\n",
                    "items": {
                      "type": "integer"
                    }
                  }
                },
                "required": [
                  "type"
                ]
              },
              "restrictions": {
                "type": "object",
                "description": "Defines which of the partner's charge points invited users can access.\nEach sub-restriction is optional on input — an omitted sub-restriction is treated as `none`.\nAt most one sub-restriction can use `allow` or `deny`; providing more than one active sub-restriction is a validation error.\nAn empty object, or all sub-restrictions set to `none`, grants access to all of the partner's charge points.\nTo grant access to no charge points, set `locations.type` to `allow` with an empty `locationIds` list.\nLocation tag restrictions use `locationTagIds`; charge point tag restrictions use `chargePointTagIds`.\nIn responses all four sub-restrictions are always present.\n",
                "properties": {
                  "locations": {
                    "type": "object",
                    "description": "Controls access to the partner's charge points by the location they belong to. `none` means no location restriction, `allow` limits access to charge points at the listed locations, and `deny` excludes charge points at the listed locations.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "description": "Restriction type.\n- `none` — no restriction for this target type\n- `allow` — allow only the listed target IDs\n- `deny` — deny the listed target IDs\n",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ]
                      },
                      "locationIds": {
                        "type": "array",
                        "description": "Required when `type` is `allow` or `deny`. When `type` is `none` the list is not needed — an empty list is accepted and ignored, a non-empty list is rejected. An empty `allow` list represents no accessible charge points.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "chargePoints": {
                    "type": "object",
                    "description": "Controls access to the partner's charge points by explicit charge point IDs. `none` means no charge point ID restriction, `allow` limits access to the listed charge points, and `deny` excludes the listed charge points.",
                    "properties": {
                      "type": {
                        "$ref": "#/paths/~1public-api~1resources~1partner-invite-access-policies~1v1.0/post/requestBody/content/application~1json/schema/properties/restrictions"
                      },
                      "chargePointIds": {
                        "type": "array",
                        "description": "Required when `type` is `allow` or `deny`. When `type` is `none` the list is not needed — an empty list is accepted and ignored, a non-empty list is rejected.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "locationTags": {
                    "type": "object",
                    "description": "Controls access to the partner's charge points by the tags assigned to their locations. `none` means no location tag restriction, `allow` limits access to charge points at locations carrying the listed tags, and `deny` excludes charge points at locations carrying the listed tags.",
                    "properties": {
                      "type": {
                        "$ref": "#/paths/~1public-api~1resources~1partner-invite-access-policies~1v1.0/post/requestBody/content/application~1json/schema/properties/restrictions"
                      },
                      "locationTagIds": {
                        "type": "array",
                        "description": "Required when `type` is `allow` or `deny`. When `type` is `none` the list is not needed — an empty list is accepted and ignored, a non-empty list is rejected.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "chargePointTags": {
                    "type": "object",
                    "description": "Controls access to the partner's charge points by the tags assigned to the charge points. `none` means no charge point tag restriction, `allow` limits access to charge points carrying the listed tags, and `deny` excludes charge points carrying the listed tags.",
                    "properties": {
                      "type": {
                        "$ref": "#/paths/~1public-api~1resources~1partner-invite-access-policies~1v1.0/post/requestBody/content/application~1json/schema/properties/restrictions"
                      },
                      "chargePointTagIds": {
                        "type": "array",
                        "description": "Required when `type` is `allow` or `deny`. When `type` is `none` the list is not needed — an empty list is accepted and ignored, a non-empty list is rejected.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    },
                    "required": [
                      "type"
                    ]
                  }
                }
              },
              "includeSharedChargePoints": {
                "type": "boolean",
                "description": "When `true`, invited users also have access to charge points of other partners that are shared with the inviting partner."
              },
              "isDefault": {
                "type": "boolean",
                "description": "`true` for the system-created default policy.",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "name",
              "partnerAccess",
              "restrictions",
              "includeSharedChargePoints",
              "isDefault",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInviteAccessPolicyRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Partner invite access policy",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The operator ID. Omitted for global policies such as the system-created default policy."
              },
              "name": {
                "type": "string",
                "maxLength": 255
              },
              "partnerAccess": {
                "type": "object",
                "description": "Controls which partners can use this policy when creating invites.\n- `none` — no partner restriction; any partner under the operator can use the policy, including future partners\n- `allow` — only the specified partners (`partnerIds` is required)\n",
                "properties": {
                  "type": {
                    "type": "string",
                    "description": "Controls which partners can use the access policy when creating invites.\n- `none` — no partner restriction; any partner under the operator can use the policy, including future partners\n- `allow` — only the specified partners can use the policy\n",
                    "enum": [
                      "none",
                      "allow"
                    ]
                  },
                  "partnerIds": {
                    "type": "array",
                    "description": "The IDs of partners who can use the policy. Required when `type` is `allow`, prohibited when `type` is `none`.\nIn responses the field is present only when `type` is `allow`.\n",
                    "items": {
                      "type": "integer"
                    }
                  }
                },
                "required": [
                  "type"
                ]
              },
              "restrictions": {
                "type": "object",
                "description": "Defines which of the partner's charge points invited users can access.\nEach sub-restriction is optional on input — an omitted sub-restriction is treated as `none`.\nAt most one sub-restriction can use `allow` or `deny`; providing more than one active sub-restriction is a validation error.\nAn empty object, or all sub-restrictions set to `none`, grants access to all of the partner's charge points.\nTo grant access to no charge points, set `locations.type` to `allow` with an empty `locationIds` list.\nLocation tag restrictions use `locationTagIds`; charge point tag restrictions use `chargePointTagIds`.\nIn responses all four sub-restrictions are always present.\n",
                "properties": {
                  "locations": {
                    "type": "object",
                    "description": "Controls access to the partner's charge points by the location they belong to. `none` means no location restriction, `allow` limits access to charge points at the listed locations, and `deny` excludes charge points at the listed locations.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "description": "Restriction type.\n- `none` — no restriction for this target type\n- `allow` — allow only the listed target IDs\n- `deny` — deny the listed target IDs\n",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ]
                      },
                      "locationIds": {
                        "type": "array",
                        "description": "Required when `type` is `allow` or `deny`. When `type` is `none` the list is not needed — an empty list is accepted and ignored, a non-empty list is rejected. An empty `allow` list represents no accessible charge points.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "chargePoints": {
                    "type": "object",
                    "description": "Controls access to the partner's charge points by explicit charge point IDs. `none` means no charge point ID restriction, `allow` limits access to the listed charge points, and `deny` excludes the listed charge points.",
                    "properties": {
                      "type": {
                        "$ref": "#/paths/~1public-api~1resources~1partner-invite-access-policies~1v1.0/post/responses/201/content/application~1json/schema/properties/data"
                      },
                      "chargePointIds": {
                        "type": "array",
                        "description": "Required when `type` is `allow` or `deny`. When `type` is `none` the list is not needed — an empty list is accepted and ignored, a non-empty list is rejected.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "locationTags": {
                    "type": "object",
                    "description": "Controls access to the partner's charge points by the tags assigned to their locations. `none` means no location tag restriction, `allow` limits access to charge points at locations carrying the listed tags, and `deny` excludes charge points at locations carrying the listed tags.",
                    "properties": {
                      "type": {
                        "$ref": "#/paths/~1public-api~1resources~1partner-invite-access-policies~1v1.0/post/responses/201/content/application~1json/schema/properties/data"
                      },
                      "locationTagIds": {
                        "type": "array",
                        "description": "Required when `type` is `allow` or `deny`. When `type` is `none` the list is not needed — an empty list is accepted and ignored, a non-empty list is rejected.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "chargePointTags": {
                    "type": "object",
                    "description": "Controls access to the partner's charge points by the tags assigned to the charge points. `none` means no charge point tag restriction, `allow` limits access to charge points carrying the listed tags, and `deny` excludes charge points carrying the listed tags.",
                    "properties": {
                      "type": {
                        "$ref": "#/paths/~1public-api~1resources~1partner-invite-access-policies~1v1.0/post/responses/201/content/application~1json/schema/properties/data"
                      },
                      "chargePointTagIds": {
                        "type": "array",
                        "description": "Required when `type` is `allow` or `deny`. When `type` is `none` the list is not needed — an empty list is accepted and ignored, a non-empty list is rejected.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    },
                    "required": [
                      "type"
                    ]
                  }
                }
              },
              "includeSharedChargePoints": {
                "type": "boolean",
                "description": "When `true`, invited users also have access to charge points of other partners that are shared with the inviting partner."
              },
              "isDefault": {
                "type": "boolean",
                "description": "`true` for the system-created default policy.",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "name",
              "partnerAccess",
              "restrictions",
              "includeSharedChargePoints",
              "isDefault",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInviteAccessPolicyDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInviteAccessPolicyUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Partner invite access policy",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The operator ID. Omitted for global policies such as the system-created default policy."
              },
              "name": {
                "type": "string",
                "maxLength": 255
              },
              "partnerAccess": {
                "type": "object",
                "description": "Controls which partners can use this policy when creating invites.\n- `none` — no partner restriction; any partner under the operator can use the policy, including future partners\n- `allow` — only the specified partners (`partnerIds` is required)\n",
                "properties": {
                  "type": {
                    "type": "string",
                    "description": "Controls which partners can use the access policy when creating invites.\n- `none` — no partner restriction; any partner under the operator can use the policy, including future partners\n- `allow` — only the specified partners can use the policy\n",
                    "enum": [
                      "none",
                      "allow"
                    ]
                  },
                  "partnerIds": {
                    "type": "array",
                    "description": "The IDs of partners who can use the policy. Required when `type` is `allow`, prohibited when `type` is `none`.\nIn responses the field is present only when `type` is `allow`.\n",
                    "items": {
                      "type": "integer"
                    }
                  }
                },
                "required": [
                  "type"
                ]
              },
              "restrictions": {
                "type": "object",
                "description": "Defines which of the partner's charge points invited users can access.\nEach sub-restriction is optional on input — an omitted sub-restriction is treated as `none`.\nAt most one sub-restriction can use `allow` or `deny`; providing more than one active sub-restriction is a validation error.\nAn empty object, or all sub-restrictions set to `none`, grants access to all of the partner's charge points.\nTo grant access to no charge points, set `locations.type` to `allow` with an empty `locationIds` list.\nLocation tag restrictions use `locationTagIds`; charge point tag restrictions use `chargePointTagIds`.\nIn responses all four sub-restrictions are always present.\n",
                "properties": {
                  "locations": {
                    "type": "object",
                    "description": "Controls access to the partner's charge points by the location they belong to. `none` means no location restriction, `allow` limits access to charge points at the listed locations, and `deny` excludes charge points at the listed locations.",
                    "properties": {
                      "type": {
                        "type": "string",
                        "description": "Restriction type.\n- `none` — no restriction for this target type\n- `allow` — allow only the listed target IDs\n- `deny` — deny the listed target IDs\n",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ]
                      },
                      "locationIds": {
                        "type": "array",
                        "description": "Required when `type` is `allow` or `deny`. When `type` is `none` the list is not needed — an empty list is accepted and ignored, a non-empty list is rejected. An empty `allow` list represents no accessible charge points.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "chargePoints": {
                    "type": "object",
                    "description": "Controls access to the partner's charge points by explicit charge point IDs. `none` means no charge point ID restriction, `allow` limits access to the listed charge points, and `deny` excludes the listed charge points.",
                    "properties": {
                      "type": {
                        "$ref": "#/paths/~1public-api~1resources~1partner-invite-access-policies~1v1.0/post/responses/201/content/application~1json/schema/properties/data"
                      },
                      "chargePointIds": {
                        "type": "array",
                        "description": "Required when `type` is `allow` or `deny`. When `type` is `none` the list is not needed — an empty list is accepted and ignored, a non-empty list is rejected.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "locationTags": {
                    "type": "object",
                    "description": "Controls access to the partner's charge points by the tags assigned to their locations. `none` means no location tag restriction, `allow` limits access to charge points at locations carrying the listed tags, and `deny` excludes charge points at locations carrying the listed tags.",
                    "properties": {
                      "type": {
                        "$ref": "#/paths/~1public-api~1resources~1partner-invite-access-policies~1v1.0/post/responses/201/content/application~1json/schema/properties/data"
                      },
                      "locationTagIds": {
                        "type": "array",
                        "description": "Required when `type` is `allow` or `deny`. When `type` is `none` the list is not needed — an empty list is accepted and ignored, a non-empty list is rejected.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "chargePointTags": {
                    "type": "object",
                    "description": "Controls access to the partner's charge points by the tags assigned to the charge points. `none` means no charge point tag restriction, `allow` limits access to charge points carrying the listed tags, and `deny` excludes charge points carrying the listed tags.",
                    "properties": {
                      "type": {
                        "$ref": "#/paths/~1public-api~1resources~1partner-invite-access-policies~1v1.0/post/responses/201/content/application~1json/schema/properties/data"
                      },
                      "chargePointTagIds": {
                        "type": "array",
                        "description": "Required when `type` is `allow` or `deny`. When `type` is `none` the list is not needed — an empty list is accepted and ignored, a non-empty list is rejected.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    },
                    "required": [
                      "type"
                    ]
                  }
                }
              },
              "includeSharedChargePoints": {
                "type": "boolean",
                "description": "When `true`, invited users also have access to charge points of other partners that are shared with the inviting partner."
              },
              "isDefault": {
                "type": "boolean",
                "description": "`true` for the system-created default policy.",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "name",
              "partnerAccess",
              "restrictions",
              "includeSharedChargePoints",
              "isDefault",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInviteCorporateBillingPoliciesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "description": "⚠️ Experimental endpoint — not yet a stable contract. This resource ships as experimental / beta. While experimental, its schema and behaviour may change without a version bump — including breaking changes within v1.0 itself. Anyone consuming it does so for evaluation only, or by coordinating adoption with their account manager so changes can be sequenced with them. It graduates to a stable, version-locked contract (where the normal breaking-change rules apply) only when this experimental notice is removed.\n\nPartner invite corporate billing policy read schema. The policy defines when corporate billing covers a driver's session costs and which limits, restrictions, and charger-type rules apply.\n",
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "partnerId": {
                  "type": "integer"
                },
                "name": {
                  "type": "string",
                  "maxLength": 255
                },
                "isActive": {
                  "type": "boolean",
                  "readOnly": true
                },
                "coverageType": {
                  "type": "string",
                  "enum": [
                    "full_coverage",
                    "limited_coverage"
                  ],
                  "description": "Corporate billing policy coverage type:\n- **full_coverage**: The policy covers eligible session costs without tariff thresholds\n- **limited_coverage**: The policy covers eligible session costs only within configured limits\n"
                },
                "individualSpendingLimit": {
                  "type": "number",
                  "format": "float",
                  "minimum": 0,
                  "exclusiveMinimum": true,
                  "description": "Authorization-time spending threshold for a driver's accumulated corporate-billed cost on the corporate account within the billing period. Once the accumulated cost reaches the limit, the policy stops covering that driver's subsequent sessions until the period resets. The session in which the limit is reached is still covered in full. Omitted when no per-driver spending limit is set."
                },
                "externalId": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "An optional external identifier for integration purposes"
                },
                "period": {
                  "readOnly": true,
                  "description": "Corporate billing period:\n- **monthly**: Spending limits reset every month.\n- **quarterly**: Spending limits reset every three months.\n- **semi_annually**: Spending limits reset every six months.\n- **annually**: Spending limits reset every year.\n",
                  "type": "string",
                  "enum": [
                    "monthly",
                    "quarterly",
                    "semi_annually",
                    "annually"
                  ]
                },
                "restrictions": {
                  "type": "object",
                  "description": "Restrictions that determine whether a session is eligible for corporate billing. Allow-list modes cover only the listed values, deny-list modes withhold coverage for the listed values, and no-restriction modes leave that dimension unrestricted. A session must pass every restriction dimension; when any dimension excludes it, corporate billing is withheld and the policy does not cover the session.",
                  "properties": {
                    "partner": {
                      "type": "object",
                      "description": "Constrains coverage by partner. `partnerIds` is interpreted together with the selected `type`; for list-based modes it contains the partner IDs to allow or deny.",
                      "required": [
                        "type"
                      ],
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "none",
                            "own_only",
                            "allow",
                            "deny"
                          ],
                          "description": "Partner restriction mode:\n- **none**: No partner restriction applies.\n- **own_only**: Only the operator's own charge points are eligible.\n- **allow**: Only listed partner IDs are eligible.\n- **deny**: Listed partner IDs are excluded.\n"
                        },
                        "partnerIds": {
                          "type": "array",
                          "description": "Partner IDs used by list-based partner restriction modes.",
                          "items": {
                            "type": "integer"
                          }
                        }
                      }
                    },
                    "country": {
                      "type": "object",
                      "description": "Constrains coverage by country. `countries` is interpreted together with the selected `type`; for list-based modes it contains the countries to allow or deny.",
                      "required": [
                        "type"
                      ],
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "none",
                            "allow",
                            "deny"
                          ],
                          "description": "Restriction mode:\n- **none**: No restriction applies.\n- **allow**: Only listed values are eligible.\n- **deny**: Listed values are excluded.\n"
                        },
                        "countries": {
                          "type": "array",
                          "description": "Country codes used by list-based country restriction modes.",
                          "items": {
                            "type": "string",
                            "enum": [
                              "AF",
                              "AX",
                              "AL",
                              "DZ",
                              "AS",
                              "AD",
                              "AO",
                              "AI",
                              "AQ",
                              "AG",
                              "AR",
                              "AM",
                              "AW",
                              "AU",
                              "AT",
                              "AZ",
                              "BS",
                              "BH",
                              "BD",
                              "BB",
                              "BY",
                              "BE",
                              "BZ",
                              "BJ",
                              "BM",
                              "BT",
                              "BO",
                              "BQ",
                              "BA",
                              "BW",
                              "BV",
                              "BR",
                              "IO",
                              "BN",
                              "BG",
                              "BF",
                              "BI",
                              "KH",
                              "CM",
                              "CA",
                              "CV",
                              "KY",
                              "CF",
                              "TD",
                              "CL",
                              "CN",
                              "CX",
                              "CC",
                              "CO",
                              "KM",
                              "CG",
                              "CD",
                              "CK",
                              "CR",
                              "CI",
                              "HR",
                              "CU",
                              "CW",
                              "CY",
                              "CZ",
                              "DK",
                              "DJ",
                              "DM",
                              "DO",
                              "EC",
                              "EG",
                              "SV",
                              "GQ",
                              "ER",
                              "EE",
                              "ET",
                              "FK",
                              "FO",
                              "FJ",
                              "FI",
                              "FR",
                              "GF",
                              "PF",
                              "TF",
                              "GA",
                              "GM",
                              "GE",
                              "DE",
                              "GH",
                              "GI",
                              "GR",
                              "GL",
                              "GD",
                              "GP",
                              "GU",
                              "GT",
                              "GG",
                              "GN",
                              "GW",
                              "GY",
                              "HT",
                              "HM",
                              "VA",
                              "HN",
                              "HK",
                              "HU",
                              "IS",
                              "IN",
                              "ID",
                              "IR",
                              "IQ",
                              "IE",
                              "IM",
                              "IL",
                              "IT",
                              "JM",
                              "JP",
                              "JE",
                              "JO",
                              "KZ",
                              "KE",
                              "KI",
                              "KP",
                              "KR",
                              "XK",
                              "KW",
                              "KG",
                              "LA",
                              "LV",
                              "LB",
                              "LS",
                              "LR",
                              "LY",
                              "LI",
                              "LT",
                              "LU",
                              "MO",
                              "MK",
                              "MG",
                              "MW",
                              "MY",
                              "MV",
                              "ML",
                              "MT",
                              "MH",
                              "MQ",
                              "MR",
                              "MU",
                              "YT",
                              "MX",
                              "FM",
                              "MD",
                              "MC",
                              "MN",
                              "ME",
                              "MS",
                              "MA",
                              "MZ",
                              "MM",
                              "NA",
                              "NR",
                              "NP",
                              "NL",
                              "NC",
                              "NZ",
                              "NI",
                              "NE",
                              "NG",
                              "NU",
                              "NF",
                              "MP",
                              "NO",
                              "OM",
                              "PK",
                              "PW",
                              "PS",
                              "PA",
                              "PG",
                              "PY",
                              "PE",
                              "PH",
                              "PN",
                              "PL",
                              "PT",
                              "PR",
                              "QA",
                              "RE",
                              "RO",
                              "RU",
                              "RW",
                              "BL",
                              "SH",
                              "KN",
                              "LC",
                              "MF",
                              "PM",
                              "VC",
                              "WS",
                              "SM",
                              "ST",
                              "SA",
                              "SN",
                              "RS",
                              "SC",
                              "SL",
                              "SG",
                              "SX",
                              "SK",
                              "SI",
                              "SB",
                              "SO",
                              "ZA",
                              "GS",
                              "SS",
                              "ES",
                              "LK",
                              "SD",
                              "SR",
                              "SJ",
                              "SZ",
                              "SE",
                              "CH",
                              "SY",
                              "TW",
                              "TJ",
                              "TZ",
                              "TH",
                              "TL",
                              "TG",
                              "TK",
                              "TO",
                              "TT",
                              "TN",
                              "TR",
                              "TM",
                              "TC",
                              "TV",
                              "UG",
                              "UA",
                              "AE",
                              "GB",
                              "US",
                              "UM",
                              "UY",
                              "UZ",
                              "VU",
                              "VE",
                              "VN",
                              "VG",
                              "VI",
                              "WF",
                              "EH",
                              "YE",
                              "ZM",
                              "ZW"
                            ]
                          }
                        }
                      }
                    },
                    "location": {
                      "type": "object",
                      "description": "Constrains coverage by location. `locationIds` is interpreted together with the selected `type`; for list-based modes it contains the location IDs to allow or deny.",
                      "required": [
                        "type"
                      ],
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "none",
                            "allow",
                            "deny"
                          ],
                          "description": "Restriction mode:\n- **none**: No restriction applies.\n- **allow**: Only listed values are eligible.\n- **deny**: Listed values are excluded.\n"
                        },
                        "locationIds": {
                          "type": "array",
                          "description": "Location IDs used by list-based location restriction modes.",
                          "items": {
                            "type": "integer"
                          }
                        }
                      }
                    },
                    "locationTag": {
                      "type": "object",
                      "description": "Constrains coverage by location tag. `locationTagIds` is interpreted together with the selected `type`; for list-based modes it contains the location tag IDs to allow or deny.",
                      "required": [
                        "type"
                      ],
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "none",
                            "allow",
                            "deny"
                          ],
                          "description": "Restriction mode:\n- **none**: No restriction applies.\n- **allow**: Only listed values are eligible.\n- **deny**: Listed values are excluded.\n"
                        },
                        "locationTagIds": {
                          "type": "array",
                          "description": "Location tag IDs used by list-based location tag restriction modes.",
                          "items": {
                            "type": "integer"
                          }
                        }
                      }
                    },
                    "roaming": {
                      "type": "object",
                      "description": "Constrains coverage by roaming operator. `roamingOperatorIds` is interpreted together with the selected `type`; for list-based modes it contains the roaming operator IDs to allow or deny.",
                      "required": [
                        "type"
                      ],
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "none",
                            "deny_all",
                            "allow",
                            "deny"
                          ],
                          "description": "Roaming restriction mode:\n- **none**: No roaming restriction applies.\n- **deny_all**: Roaming sessions are not eligible.\n- **allow**: Only listed roaming partners are eligible.\n- **deny**: Listed roaming partners are excluded.\n"
                        },
                        "roamingOperatorIds": {
                          "type": "array",
                          "description": "Roaming operator IDs used by list-based roaming restriction modes.",
                          "items": {
                            "type": "integer"
                          }
                        }
                      }
                    }
                  },
                  "required": [
                    "partner",
                    "country",
                    "location",
                    "locationTag",
                    "roaming"
                  ]
                },
                "tariffThresholds": {
                  "type": "object",
                  "description": "Per-component limits on the costs the policy covers. Costs above the configured limits are the driver's responsibility. Omitted limit fields mean that the policy has no limit for that dimension.",
                  "properties": {
                    "energy": {
                      "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "description": "Whether the policy covers this tariff component."
                        },
                        "maxUnitPrice": {
                          "type": "number",
                          "format": "float",
                          "minimum": 0,
                          "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                        },
                        "maxQuantity": {
                          "type": "number",
                          "format": "float",
                          "minimum": 0,
                          "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                        },
                        "maxAmount": {
                          "type": "number",
                          "format": "float",
                          "minimum": 0,
                          "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                        }
                      },
                      "required": [
                        "enabled"
                      ]
                    },
                    "idleTime": {
                      "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "description": "Whether the policy covers this tariff component."
                        },
                        "maxUnitPrice": {
                          "type": "number",
                          "format": "float",
                          "minimum": 0,
                          "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                        },
                        "maxQuantity": {
                          "type": "number",
                          "format": "float",
                          "minimum": 0,
                          "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                        },
                        "maxAmount": {
                          "type": "number",
                          "format": "float",
                          "minimum": 0,
                          "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                        }
                      },
                      "required": [
                        "enabled"
                      ]
                    },
                    "connection": {
                      "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "description": "Whether the policy covers this tariff component."
                        },
                        "maxUnitPrice": {
                          "type": "number",
                          "format": "float",
                          "minimum": 0,
                          "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                        },
                        "maxQuantity": {
                          "type": "number",
                          "format": "float",
                          "minimum": 0,
                          "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                        },
                        "maxAmount": {
                          "type": "number",
                          "format": "float",
                          "minimum": 0,
                          "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                        }
                      },
                      "required": [
                        "enabled"
                      ]
                    },
                    "chargingTime": {
                      "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "description": "Whether the policy covers this tariff component."
                        },
                        "maxUnitPrice": {
                          "type": "number",
                          "format": "float",
                          "minimum": 0,
                          "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                        },
                        "maxQuantity": {
                          "type": "number",
                          "format": "float",
                          "minimum": 0,
                          "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                        },
                        "maxAmount": {
                          "type": "number",
                          "format": "float",
                          "minimum": 0,
                          "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                        }
                      },
                      "required": [
                        "enabled"
                      ]
                    }
                  }
                },
                "overallCostCap": {
                  "type": "object",
                  "description": "Caps the amount the policy covers at `maxCostPerKwh` for each kWh charged. When the covered cost exceeds `maxCostPerKwh` multiplied by the energy charged, coverage is reduced to that maximum and the remainder is the driver's responsibility.",
                  "properties": {
                    "enabled": {
                      "type": "boolean",
                      "description": "Whether the overall cost cap applies."
                    },
                    "maxCostPerKwh": {
                      "type": "number",
                      "format": "float",
                      "minimum": 0,
                      "description": "Required when `enabled` is `true`."
                    }
                  },
                  "required": [
                    "enabled"
                  ]
                },
                "chargerTypeConfig": {
                  "type": "object",
                  "description": "Defines separate AC and DC coverage. Each charger type has its own coverage type for full coverage, limited coverage, or no coverage. Both `ac` and `dc` are required when this object is provided. When `chargerTypeConfig` is present, coverage is resolved per charger type from this object, and the top-level `coverageType`, `tariffThresholds`, and `overallCostCap` are ignored.",
                  "properties": {
                    "ac": {
                      "description": "Coverage settings for one charger type. `coverageType` defines whether eligible sessions on this charger type are fully covered, covered only within configured limits, or not covered. The nested limits are used only for limited coverage.",
                      "type": "object",
                      "properties": {
                        "coverageType": {
                          "type": "string",
                          "enum": [
                            "full_coverage",
                            "limited_coverage",
                            "not_covered"
                          ],
                          "description": "Charger type coverage type:\n- **full_coverage**: The policy covers eligible costs for this charger type without tariff thresholds\n- **limited_coverage**: The policy covers eligible costs for this charger type only within configured limits\n- **not_covered**: The policy does not cover sessions on this charger type\n"
                        },
                        "tariffThresholds": {
                          "description": "Per-component limits on the costs the policy covers. Costs above the configured limits are the driver's responsibility. Omitted limit fields mean that the policy has no limit for that dimension.",
                          "type": "object",
                          "properties": {
                            "energy": {
                              "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "Whether the policy covers this tariff component."
                                },
                                "maxUnitPrice": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                                },
                                "maxQuantity": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                                },
                                "maxAmount": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                                }
                              },
                              "required": [
                                "enabled"
                              ]
                            },
                            "idleTime": {
                              "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "Whether the policy covers this tariff component."
                                },
                                "maxUnitPrice": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                                },
                                "maxQuantity": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                                },
                                "maxAmount": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                                }
                              },
                              "required": [
                                "enabled"
                              ]
                            },
                            "connection": {
                              "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "Whether the policy covers this tariff component."
                                },
                                "maxUnitPrice": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                                },
                                "maxQuantity": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                                },
                                "maxAmount": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                                }
                              },
                              "required": [
                                "enabled"
                              ]
                            },
                            "chargingTime": {
                              "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "Whether the policy covers this tariff component."
                                },
                                "maxUnitPrice": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                                },
                                "maxQuantity": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                                },
                                "maxAmount": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                                }
                              },
                              "required": [
                                "enabled"
                              ]
                            }
                          }
                        },
                        "overallCostCap": {
                          "description": "Caps the amount the policy covers at `maxCostPerKwh` for each kWh charged. When the covered cost exceeds `maxCostPerKwh` multiplied by the energy charged, coverage is reduced to that maximum and the remainder is the driver's responsibility.",
                          "type": "object",
                          "properties": {
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether the overall cost cap applies."
                            },
                            "maxCostPerKwh": {
                              "type": "number",
                              "format": "float",
                              "minimum": 0,
                              "description": "Required when `enabled` is `true`."
                            }
                          },
                          "required": [
                            "enabled"
                          ]
                        }
                      },
                      "required": [
                        "coverageType"
                      ]
                    },
                    "dc": {
                      "description": "Coverage settings for one charger type. `coverageType` defines whether eligible sessions on this charger type are fully covered, covered only within configured limits, or not covered. The nested limits are used only for limited coverage.",
                      "type": "object",
                      "properties": {
                        "coverageType": {
                          "type": "string",
                          "enum": [
                            "full_coverage",
                            "limited_coverage",
                            "not_covered"
                          ],
                          "description": "Charger type coverage type:\n- **full_coverage**: The policy covers eligible costs for this charger type without tariff thresholds\n- **limited_coverage**: The policy covers eligible costs for this charger type only within configured limits\n- **not_covered**: The policy does not cover sessions on this charger type\n"
                        },
                        "tariffThresholds": {
                          "description": "Per-component limits on the costs the policy covers. Costs above the configured limits are the driver's responsibility. Omitted limit fields mean that the policy has no limit for that dimension.",
                          "type": "object",
                          "properties": {
                            "energy": {
                              "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "Whether the policy covers this tariff component."
                                },
                                "maxUnitPrice": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                                },
                                "maxQuantity": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                                },
                                "maxAmount": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                                }
                              },
                              "required": [
                                "enabled"
                              ]
                            },
                            "idleTime": {
                              "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "Whether the policy covers this tariff component."
                                },
                                "maxUnitPrice": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                                },
                                "maxQuantity": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                                },
                                "maxAmount": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                                }
                              },
                              "required": [
                                "enabled"
                              ]
                            },
                            "connection": {
                              "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "Whether the policy covers this tariff component."
                                },
                                "maxUnitPrice": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                                },
                                "maxQuantity": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                                },
                                "maxAmount": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                                }
                              },
                              "required": [
                                "enabled"
                              ]
                            },
                            "chargingTime": {
                              "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                              "type": "object",
                              "properties": {
                                "enabled": {
                                  "type": "boolean",
                                  "description": "Whether the policy covers this tariff component."
                                },
                                "maxUnitPrice": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                                },
                                "maxQuantity": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                                },
                                "maxAmount": {
                                  "type": "number",
                                  "format": "float",
                                  "minimum": 0,
                                  "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                                }
                              },
                              "required": [
                                "enabled"
                              ]
                            }
                          }
                        },
                        "overallCostCap": {
                          "description": "Caps the amount the policy covers at `maxCostPerKwh` for each kWh charged. When the covered cost exceeds `maxCostPerKwh` multiplied by the energy charged, coverage is reduced to that maximum and the remainder is the driver's responsibility.",
                          "type": "object",
                          "properties": {
                            "enabled": {
                              "type": "boolean",
                              "description": "Whether the overall cost cap applies."
                            },
                            "maxCostPerKwh": {
                              "type": "number",
                              "format": "float",
                              "minimum": 0,
                              "description": "Required when `enabled` is `true`."
                            }
                          },
                          "required": [
                            "enabled"
                          ]
                        }
                      },
                      "required": [
                        "coverageType"
                      ]
                    }
                  },
                  "required": [
                    "ac",
                    "dc"
                  ]
                },
                "latestSnapshotId": {
                  "type": "integer",
                  "readOnly": true
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "partnerId",
                "name",
                "isActive",
                "coverageType",
                "period",
                "createdAt",
                "updatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInviteCorporateBillingPolicyCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "description": "⚠️ Experimental endpoint — not yet a stable contract. This resource ships as experimental / beta. While experimental, its schema and behaviour may change without a version bump — including breaking changes within v1.0 itself. Anyone consuming it does so for evaluation only, or by coordinating adoption with their account manager so changes can be sequenced with them. It graduates to a stable, version-locked contract (where the normal breaking-change rules apply) only when this experimental notice is removed.\n\nPartner invite corporate billing policy read schema. The policy defines when corporate billing covers a driver's session costs and which limits, restrictions, and charger-type rules apply.\n",
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "partnerId": {
                "type": "integer"
              },
              "name": {
                "type": "string",
                "maxLength": 255
              },
              "isActive": {
                "type": "boolean",
                "readOnly": true
              },
              "coverageType": {
                "type": "string",
                "enum": [
                  "full_coverage",
                  "limited_coverage"
                ],
                "description": "Corporate billing policy coverage type:\n- **full_coverage**: The policy covers eligible session costs without tariff thresholds\n- **limited_coverage**: The policy covers eligible session costs only within configured limits\n"
              },
              "individualSpendingLimit": {
                "type": "number",
                "format": "float",
                "minimum": 0,
                "exclusiveMinimum": true,
                "description": "Authorization-time spending threshold for a driver's accumulated corporate-billed cost on the corporate account within the billing period. Once the accumulated cost reaches the limit, the policy stops covering that driver's subsequent sessions until the period resets. The session in which the limit is reached is still covered in full. Omitted when no per-driver spending limit is set."
              },
              "externalId": {
                "type": "string",
                "maxLength": 255,
                "description": "An optional external identifier for integration purposes"
              },
              "period": {
                "readOnly": true,
                "description": "Corporate billing period:\n- **monthly**: Spending limits reset every month.\n- **quarterly**: Spending limits reset every three months.\n- **semi_annually**: Spending limits reset every six months.\n- **annually**: Spending limits reset every year.\n",
                "type": "string",
                "enum": [
                  "monthly",
                  "quarterly",
                  "semi_annually",
                  "annually"
                ]
              },
              "restrictions": {
                "type": "object",
                "description": "Restrictions that determine whether a session is eligible for corporate billing. Allow-list modes cover only the listed values, deny-list modes withhold coverage for the listed values, and no-restriction modes leave that dimension unrestricted. A session must pass every restriction dimension; when any dimension excludes it, corporate billing is withheld and the policy does not cover the session.",
                "properties": {
                  "partner": {
                    "type": "object",
                    "description": "Constrains coverage by partner. `partnerIds` is interpreted together with the selected `type`; for list-based modes it contains the partner IDs to allow or deny.",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "own_only",
                          "allow",
                          "deny"
                        ],
                        "description": "Partner restriction mode:\n- **none**: No partner restriction applies.\n- **own_only**: Only the operator's own charge points are eligible.\n- **allow**: Only listed partner IDs are eligible.\n- **deny**: Listed partner IDs are excluded.\n"
                      },
                      "partnerIds": {
                        "type": "array",
                        "description": "Partner IDs used by list-based partner restriction modes.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    }
                  },
                  "country": {
                    "type": "object",
                    "description": "Constrains coverage by country. `countries` is interpreted together with the selected `type`; for list-based modes it contains the countries to allow or deny.",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "Restriction mode:\n- **none**: No restriction applies.\n- **allow**: Only listed values are eligible.\n- **deny**: Listed values are excluded.\n"
                      },
                      "countries": {
                        "type": "array",
                        "description": "Country codes used by list-based country restriction modes.",
                        "items": {
                          "type": "string",
                          "enum": [
                            "AF",
                            "AX",
                            "AL",
                            "DZ",
                            "AS",
                            "AD",
                            "AO",
                            "AI",
                            "AQ",
                            "AG",
                            "AR",
                            "AM",
                            "AW",
                            "AU",
                            "AT",
                            "AZ",
                            "BS",
                            "BH",
                            "BD",
                            "BB",
                            "BY",
                            "BE",
                            "BZ",
                            "BJ",
                            "BM",
                            "BT",
                            "BO",
                            "BQ",
                            "BA",
                            "BW",
                            "BV",
                            "BR",
                            "IO",
                            "BN",
                            "BG",
                            "BF",
                            "BI",
                            "KH",
                            "CM",
                            "CA",
                            "CV",
                            "KY",
                            "CF",
                            "TD",
                            "CL",
                            "CN",
                            "CX",
                            "CC",
                            "CO",
                            "KM",
                            "CG",
                            "CD",
                            "CK",
                            "CR",
                            "CI",
                            "HR",
                            "CU",
                            "CW",
                            "CY",
                            "CZ",
                            "DK",
                            "DJ",
                            "DM",
                            "DO",
                            "EC",
                            "EG",
                            "SV",
                            "GQ",
                            "ER",
                            "EE",
                            "ET",
                            "FK",
                            "FO",
                            "FJ",
                            "FI",
                            "FR",
                            "GF",
                            "PF",
                            "TF",
                            "GA",
                            "GM",
                            "GE",
                            "DE",
                            "GH",
                            "GI",
                            "GR",
                            "GL",
                            "GD",
                            "GP",
                            "GU",
                            "GT",
                            "GG",
                            "GN",
                            "GW",
                            "GY",
                            "HT",
                            "HM",
                            "VA",
                            "HN",
                            "HK",
                            "HU",
                            "IS",
                            "IN",
                            "ID",
                            "IR",
                            "IQ",
                            "IE",
                            "IM",
                            "IL",
                            "IT",
                            "JM",
                            "JP",
                            "JE",
                            "JO",
                            "KZ",
                            "KE",
                            "KI",
                            "KP",
                            "KR",
                            "XK",
                            "KW",
                            "KG",
                            "LA",
                            "LV",
                            "LB",
                            "LS",
                            "LR",
                            "LY",
                            "LI",
                            "LT",
                            "LU",
                            "MO",
                            "MK",
                            "MG",
                            "MW",
                            "MY",
                            "MV",
                            "ML",
                            "MT",
                            "MH",
                            "MQ",
                            "MR",
                            "MU",
                            "YT",
                            "MX",
                            "FM",
                            "MD",
                            "MC",
                            "MN",
                            "ME",
                            "MS",
                            "MA",
                            "MZ",
                            "MM",
                            "NA",
                            "NR",
                            "NP",
                            "NL",
                            "NC",
                            "NZ",
                            "NI",
                            "NE",
                            "NG",
                            "NU",
                            "NF",
                            "MP",
                            "NO",
                            "OM",
                            "PK",
                            "PW",
                            "PS",
                            "PA",
                            "PG",
                            "PY",
                            "PE",
                            "PH",
                            "PN",
                            "PL",
                            "PT",
                            "PR",
                            "QA",
                            "RE",
                            "RO",
                            "RU",
                            "RW",
                            "BL",
                            "SH",
                            "KN",
                            "LC",
                            "MF",
                            "PM",
                            "VC",
                            "WS",
                            "SM",
                            "ST",
                            "SA",
                            "SN",
                            "RS",
                            "SC",
                            "SL",
                            "SG",
                            "SX",
                            "SK",
                            "SI",
                            "SB",
                            "SO",
                            "ZA",
                            "GS",
                            "SS",
                            "ES",
                            "LK",
                            "SD",
                            "SR",
                            "SJ",
                            "SZ",
                            "SE",
                            "CH",
                            "SY",
                            "TW",
                            "TJ",
                            "TZ",
                            "TH",
                            "TL",
                            "TG",
                            "TK",
                            "TO",
                            "TT",
                            "TN",
                            "TR",
                            "TM",
                            "TC",
                            "TV",
                            "UG",
                            "UA",
                            "AE",
                            "GB",
                            "US",
                            "UM",
                            "UY",
                            "UZ",
                            "VU",
                            "VE",
                            "VN",
                            "VG",
                            "VI",
                            "WF",
                            "EH",
                            "YE",
                            "ZM",
                            "ZW"
                          ]
                        }
                      }
                    }
                  },
                  "location": {
                    "type": "object",
                    "description": "Constrains coverage by location. `locationIds` is interpreted together with the selected `type`; for list-based modes it contains the location IDs to allow or deny.",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "Restriction mode:\n- **none**: No restriction applies.\n- **allow**: Only listed values are eligible.\n- **deny**: Listed values are excluded.\n"
                      },
                      "locationIds": {
                        "type": "array",
                        "description": "Location IDs used by list-based location restriction modes.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    }
                  },
                  "locationTag": {
                    "type": "object",
                    "description": "Constrains coverage by location tag. `locationTagIds` is interpreted together with the selected `type`; for list-based modes it contains the location tag IDs to allow or deny.",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "Restriction mode:\n- **none**: No restriction applies.\n- **allow**: Only listed values are eligible.\n- **deny**: Listed values are excluded.\n"
                      },
                      "locationTagIds": {
                        "type": "array",
                        "description": "Location tag IDs used by list-based location tag restriction modes.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    }
                  },
                  "roaming": {
                    "type": "object",
                    "description": "Constrains coverage by roaming operator. `roamingOperatorIds` is interpreted together with the selected `type`; for list-based modes it contains the roaming operator IDs to allow or deny.",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "deny_all",
                          "allow",
                          "deny"
                        ],
                        "description": "Roaming restriction mode:\n- **none**: No roaming restriction applies.\n- **deny_all**: Roaming sessions are not eligible.\n- **allow**: Only listed roaming partners are eligible.\n- **deny**: Listed roaming partners are excluded.\n"
                      },
                      "roamingOperatorIds": {
                        "type": "array",
                        "description": "Roaming operator IDs used by list-based roaming restriction modes.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                },
                "required": [
                  "partner",
                  "country",
                  "location",
                  "locationTag",
                  "roaming"
                ]
              },
              "tariffThresholds": {
                "type": "object",
                "description": "Per-component limits on the costs the policy covers. Costs above the configured limits are the driver's responsibility. Omitted limit fields mean that the policy has no limit for that dimension.",
                "properties": {
                  "energy": {
                    "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether the policy covers this tariff component."
                      },
                      "maxUnitPrice": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                      },
                      "maxQuantity": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                      },
                      "maxAmount": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "idleTime": {
                    "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether the policy covers this tariff component."
                      },
                      "maxUnitPrice": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                      },
                      "maxQuantity": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                      },
                      "maxAmount": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "connection": {
                    "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether the policy covers this tariff component."
                      },
                      "maxUnitPrice": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                      },
                      "maxQuantity": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                      },
                      "maxAmount": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "chargingTime": {
                    "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether the policy covers this tariff component."
                      },
                      "maxUnitPrice": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                      },
                      "maxQuantity": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                      },
                      "maxAmount": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  }
                }
              },
              "overallCostCap": {
                "type": "object",
                "description": "Caps the amount the policy covers at `maxCostPerKwh` for each kWh charged. When the covered cost exceeds `maxCostPerKwh` multiplied by the energy charged, coverage is reduced to that maximum and the remainder is the driver's responsibility.",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "Whether the overall cost cap applies."
                  },
                  "maxCostPerKwh": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "description": "Required when `enabled` is `true`."
                  }
                },
                "required": [
                  "enabled"
                ]
              },
              "chargerTypeConfig": {
                "type": "object",
                "description": "Defines separate AC and DC coverage. Each charger type has its own coverage type for full coverage, limited coverage, or no coverage. Both `ac` and `dc` are required when this object is provided. When `chargerTypeConfig` is present, coverage is resolved per charger type from this object, and the top-level `coverageType`, `tariffThresholds`, and `overallCostCap` are ignored.",
                "properties": {
                  "ac": {
                    "description": "Coverage settings for one charger type. `coverageType` defines whether eligible sessions on this charger type are fully covered, covered only within configured limits, or not covered. The nested limits are used only for limited coverage.",
                    "type": "object",
                    "properties": {
                      "coverageType": {
                        "type": "string",
                        "enum": [
                          "full_coverage",
                          "limited_coverage",
                          "not_covered"
                        ],
                        "description": "Charger type coverage type:\n- **full_coverage**: The policy covers eligible costs for this charger type without tariff thresholds\n- **limited_coverage**: The policy covers eligible costs for this charger type only within configured limits\n- **not_covered**: The policy does not cover sessions on this charger type\n"
                      },
                      "tariffThresholds": {
                        "description": "Per-component limits on the costs the policy covers. Costs above the configured limits are the driver's responsibility. Omitted limit fields mean that the policy has no limit for that dimension.",
                        "type": "object",
                        "properties": {
                          "energy": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "idleTime": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "connection": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "chargingTime": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          }
                        }
                      },
                      "overallCostCap": {
                        "description": "Caps the amount the policy covers at `maxCostPerKwh` for each kWh charged. When the covered cost exceeds `maxCostPerKwh` multiplied by the energy charged, coverage is reduced to that maximum and the remainder is the driver's responsibility.",
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "Whether the overall cost cap applies."
                          },
                          "maxCostPerKwh": {
                            "type": "number",
                            "format": "float",
                            "minimum": 0,
                            "description": "Required when `enabled` is `true`."
                          }
                        },
                        "required": [
                          "enabled"
                        ]
                      }
                    },
                    "required": [
                      "coverageType"
                    ]
                  },
                  "dc": {
                    "description": "Coverage settings for one charger type. `coverageType` defines whether eligible sessions on this charger type are fully covered, covered only within configured limits, or not covered. The nested limits are used only for limited coverage.",
                    "type": "object",
                    "properties": {
                      "coverageType": {
                        "type": "string",
                        "enum": [
                          "full_coverage",
                          "limited_coverage",
                          "not_covered"
                        ],
                        "description": "Charger type coverage type:\n- **full_coverage**: The policy covers eligible costs for this charger type without tariff thresholds\n- **limited_coverage**: The policy covers eligible costs for this charger type only within configured limits\n- **not_covered**: The policy does not cover sessions on this charger type\n"
                      },
                      "tariffThresholds": {
                        "description": "Per-component limits on the costs the policy covers. Costs above the configured limits are the driver's responsibility. Omitted limit fields mean that the policy has no limit for that dimension.",
                        "type": "object",
                        "properties": {
                          "energy": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "idleTime": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "connection": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "chargingTime": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          }
                        }
                      },
                      "overallCostCap": {
                        "description": "Caps the amount the policy covers at `maxCostPerKwh` for each kWh charged. When the covered cost exceeds `maxCostPerKwh` multiplied by the energy charged, coverage is reduced to that maximum and the remainder is the driver's responsibility.",
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "Whether the overall cost cap applies."
                          },
                          "maxCostPerKwh": {
                            "type": "number",
                            "format": "float",
                            "minimum": 0,
                            "description": "Required when `enabled` is `true`."
                          }
                        },
                        "required": [
                          "enabled"
                        ]
                      }
                    },
                    "required": [
                      "coverageType"
                    ]
                  }
                },
                "required": [
                  "ac",
                  "dc"
                ]
              },
              "latestSnapshotId": {
                "type": "integer",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "partnerId",
              "name",
              "isActive",
              "coverageType",
              "period",
              "createdAt",
              "updatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInviteCorporateBillingPolicyRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "description": "⚠️ Experimental endpoint — not yet a stable contract. This resource ships as experimental / beta. While experimental, its schema and behaviour may change without a version bump — including breaking changes within v1.0 itself. Anyone consuming it does so for evaluation only, or by coordinating adoption with their account manager so changes can be sequenced with them. It graduates to a stable, version-locked contract (where the normal breaking-change rules apply) only when this experimental notice is removed.\n\nPartner invite corporate billing policy read schema. The policy defines when corporate billing covers a driver's session costs and which limits, restrictions, and charger-type rules apply.\n",
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "partnerId": {
                "type": "integer"
              },
              "name": {
                "type": "string",
                "maxLength": 255
              },
              "isActive": {
                "type": "boolean",
                "readOnly": true
              },
              "coverageType": {
                "type": "string",
                "enum": [
                  "full_coverage",
                  "limited_coverage"
                ],
                "description": "Corporate billing policy coverage type:\n- **full_coverage**: The policy covers eligible session costs without tariff thresholds\n- **limited_coverage**: The policy covers eligible session costs only within configured limits\n"
              },
              "individualSpendingLimit": {
                "type": "number",
                "format": "float",
                "minimum": 0,
                "exclusiveMinimum": true,
                "description": "Authorization-time spending threshold for a driver's accumulated corporate-billed cost on the corporate account within the billing period. Once the accumulated cost reaches the limit, the policy stops covering that driver's subsequent sessions until the period resets. The session in which the limit is reached is still covered in full. Omitted when no per-driver spending limit is set."
              },
              "externalId": {
                "type": "string",
                "maxLength": 255,
                "description": "An optional external identifier for integration purposes"
              },
              "period": {
                "readOnly": true,
                "description": "Corporate billing period:\n- **monthly**: Spending limits reset every month.\n- **quarterly**: Spending limits reset every three months.\n- **semi_annually**: Spending limits reset every six months.\n- **annually**: Spending limits reset every year.\n",
                "type": "string",
                "enum": [
                  "monthly",
                  "quarterly",
                  "semi_annually",
                  "annually"
                ]
              },
              "restrictions": {
                "type": "object",
                "description": "Restrictions that determine whether a session is eligible for corporate billing. Allow-list modes cover only the listed values, deny-list modes withhold coverage for the listed values, and no-restriction modes leave that dimension unrestricted. A session must pass every restriction dimension; when any dimension excludes it, corporate billing is withheld and the policy does not cover the session.",
                "properties": {
                  "partner": {
                    "type": "object",
                    "description": "Constrains coverage by partner. `partnerIds` is interpreted together with the selected `type`; for list-based modes it contains the partner IDs to allow or deny.",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "own_only",
                          "allow",
                          "deny"
                        ],
                        "description": "Partner restriction mode:\n- **none**: No partner restriction applies.\n- **own_only**: Only the operator's own charge points are eligible.\n- **allow**: Only listed partner IDs are eligible.\n- **deny**: Listed partner IDs are excluded.\n"
                      },
                      "partnerIds": {
                        "type": "array",
                        "description": "Partner IDs used by list-based partner restriction modes.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    }
                  },
                  "country": {
                    "type": "object",
                    "description": "Constrains coverage by country. `countries` is interpreted together with the selected `type`; for list-based modes it contains the countries to allow or deny.",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "Restriction mode:\n- **none**: No restriction applies.\n- **allow**: Only listed values are eligible.\n- **deny**: Listed values are excluded.\n"
                      },
                      "countries": {
                        "type": "array",
                        "description": "Country codes used by list-based country restriction modes.",
                        "items": {
                          "type": "string",
                          "enum": [
                            "AF",
                            "AX",
                            "AL",
                            "DZ",
                            "AS",
                            "AD",
                            "AO",
                            "AI",
                            "AQ",
                            "AG",
                            "AR",
                            "AM",
                            "AW",
                            "AU",
                            "AT",
                            "AZ",
                            "BS",
                            "BH",
                            "BD",
                            "BB",
                            "BY",
                            "BE",
                            "BZ",
                            "BJ",
                            "BM",
                            "BT",
                            "BO",
                            "BQ",
                            "BA",
                            "BW",
                            "BV",
                            "BR",
                            "IO",
                            "BN",
                            "BG",
                            "BF",
                            "BI",
                            "KH",
                            "CM",
                            "CA",
                            "CV",
                            "KY",
                            "CF",
                            "TD",
                            "CL",
                            "CN",
                            "CX",
                            "CC",
                            "CO",
                            "KM",
                            "CG",
                            "CD",
                            "CK",
                            "CR",
                            "CI",
                            "HR",
                            "CU",
                            "CW",
                            "CY",
                            "CZ",
                            "DK",
                            "DJ",
                            "DM",
                            "DO",
                            "EC",
                            "EG",
                            "SV",
                            "GQ",
                            "ER",
                            "EE",
                            "ET",
                            "FK",
                            "FO",
                            "FJ",
                            "FI",
                            "FR",
                            "GF",
                            "PF",
                            "TF",
                            "GA",
                            "GM",
                            "GE",
                            "DE",
                            "GH",
                            "GI",
                            "GR",
                            "GL",
                            "GD",
                            "GP",
                            "GU",
                            "GT",
                            "GG",
                            "GN",
                            "GW",
                            "GY",
                            "HT",
                            "HM",
                            "VA",
                            "HN",
                            "HK",
                            "HU",
                            "IS",
                            "IN",
                            "ID",
                            "IR",
                            "IQ",
                            "IE",
                            "IM",
                            "IL",
                            "IT",
                            "JM",
                            "JP",
                            "JE",
                            "JO",
                            "KZ",
                            "KE",
                            "KI",
                            "KP",
                            "KR",
                            "XK",
                            "KW",
                            "KG",
                            "LA",
                            "LV",
                            "LB",
                            "LS",
                            "LR",
                            "LY",
                            "LI",
                            "LT",
                            "LU",
                            "MO",
                            "MK",
                            "MG",
                            "MW",
                            "MY",
                            "MV",
                            "ML",
                            "MT",
                            "MH",
                            "MQ",
                            "MR",
                            "MU",
                            "YT",
                            "MX",
                            "FM",
                            "MD",
                            "MC",
                            "MN",
                            "ME",
                            "MS",
                            "MA",
                            "MZ",
                            "MM",
                            "NA",
                            "NR",
                            "NP",
                            "NL",
                            "NC",
                            "NZ",
                            "NI",
                            "NE",
                            "NG",
                            "NU",
                            "NF",
                            "MP",
                            "NO",
                            "OM",
                            "PK",
                            "PW",
                            "PS",
                            "PA",
                            "PG",
                            "PY",
                            "PE",
                            "PH",
                            "PN",
                            "PL",
                            "PT",
                            "PR",
                            "QA",
                            "RE",
                            "RO",
                            "RU",
                            "RW",
                            "BL",
                            "SH",
                            "KN",
                            "LC",
                            "MF",
                            "PM",
                            "VC",
                            "WS",
                            "SM",
                            "ST",
                            "SA",
                            "SN",
                            "RS",
                            "SC",
                            "SL",
                            "SG",
                            "SX",
                            "SK",
                            "SI",
                            "SB",
                            "SO",
                            "ZA",
                            "GS",
                            "SS",
                            "ES",
                            "LK",
                            "SD",
                            "SR",
                            "SJ",
                            "SZ",
                            "SE",
                            "CH",
                            "SY",
                            "TW",
                            "TJ",
                            "TZ",
                            "TH",
                            "TL",
                            "TG",
                            "TK",
                            "TO",
                            "TT",
                            "TN",
                            "TR",
                            "TM",
                            "TC",
                            "TV",
                            "UG",
                            "UA",
                            "AE",
                            "GB",
                            "US",
                            "UM",
                            "UY",
                            "UZ",
                            "VU",
                            "VE",
                            "VN",
                            "VG",
                            "VI",
                            "WF",
                            "EH",
                            "YE",
                            "ZM",
                            "ZW"
                          ]
                        }
                      }
                    }
                  },
                  "location": {
                    "type": "object",
                    "description": "Constrains coverage by location. `locationIds` is interpreted together with the selected `type`; for list-based modes it contains the location IDs to allow or deny.",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "Restriction mode:\n- **none**: No restriction applies.\n- **allow**: Only listed values are eligible.\n- **deny**: Listed values are excluded.\n"
                      },
                      "locationIds": {
                        "type": "array",
                        "description": "Location IDs used by list-based location restriction modes.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    }
                  },
                  "locationTag": {
                    "type": "object",
                    "description": "Constrains coverage by location tag. `locationTagIds` is interpreted together with the selected `type`; for list-based modes it contains the location tag IDs to allow or deny.",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "Restriction mode:\n- **none**: No restriction applies.\n- **allow**: Only listed values are eligible.\n- **deny**: Listed values are excluded.\n"
                      },
                      "locationTagIds": {
                        "type": "array",
                        "description": "Location tag IDs used by list-based location tag restriction modes.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    }
                  },
                  "roaming": {
                    "type": "object",
                    "description": "Constrains coverage by roaming operator. `roamingOperatorIds` is interpreted together with the selected `type`; for list-based modes it contains the roaming operator IDs to allow or deny.",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "deny_all",
                          "allow",
                          "deny"
                        ],
                        "description": "Roaming restriction mode:\n- **none**: No roaming restriction applies.\n- **deny_all**: Roaming sessions are not eligible.\n- **allow**: Only listed roaming partners are eligible.\n- **deny**: Listed roaming partners are excluded.\n"
                      },
                      "roamingOperatorIds": {
                        "type": "array",
                        "description": "Roaming operator IDs used by list-based roaming restriction modes.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                },
                "required": [
                  "partner",
                  "country",
                  "location",
                  "locationTag",
                  "roaming"
                ]
              },
              "tariffThresholds": {
                "type": "object",
                "description": "Per-component limits on the costs the policy covers. Costs above the configured limits are the driver's responsibility. Omitted limit fields mean that the policy has no limit for that dimension.",
                "properties": {
                  "energy": {
                    "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether the policy covers this tariff component."
                      },
                      "maxUnitPrice": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                      },
                      "maxQuantity": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                      },
                      "maxAmount": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "idleTime": {
                    "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether the policy covers this tariff component."
                      },
                      "maxUnitPrice": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                      },
                      "maxQuantity": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                      },
                      "maxAmount": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "connection": {
                    "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether the policy covers this tariff component."
                      },
                      "maxUnitPrice": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                      },
                      "maxQuantity": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                      },
                      "maxAmount": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "chargingTime": {
                    "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether the policy covers this tariff component."
                      },
                      "maxUnitPrice": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                      },
                      "maxQuantity": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                      },
                      "maxAmount": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  }
                }
              },
              "overallCostCap": {
                "type": "object",
                "description": "Caps the amount the policy covers at `maxCostPerKwh` for each kWh charged. When the covered cost exceeds `maxCostPerKwh` multiplied by the energy charged, coverage is reduced to that maximum and the remainder is the driver's responsibility.",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "Whether the overall cost cap applies."
                  },
                  "maxCostPerKwh": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "description": "Required when `enabled` is `true`."
                  }
                },
                "required": [
                  "enabled"
                ]
              },
              "chargerTypeConfig": {
                "type": "object",
                "description": "Defines separate AC and DC coverage. Each charger type has its own coverage type for full coverage, limited coverage, or no coverage. Both `ac` and `dc` are required when this object is provided. When `chargerTypeConfig` is present, coverage is resolved per charger type from this object, and the top-level `coverageType`, `tariffThresholds`, and `overallCostCap` are ignored.",
                "properties": {
                  "ac": {
                    "description": "Coverage settings for one charger type. `coverageType` defines whether eligible sessions on this charger type are fully covered, covered only within configured limits, or not covered. The nested limits are used only for limited coverage.",
                    "type": "object",
                    "properties": {
                      "coverageType": {
                        "type": "string",
                        "enum": [
                          "full_coverage",
                          "limited_coverage",
                          "not_covered"
                        ],
                        "description": "Charger type coverage type:\n- **full_coverage**: The policy covers eligible costs for this charger type without tariff thresholds\n- **limited_coverage**: The policy covers eligible costs for this charger type only within configured limits\n- **not_covered**: The policy does not cover sessions on this charger type\n"
                      },
                      "tariffThresholds": {
                        "description": "Per-component limits on the costs the policy covers. Costs above the configured limits are the driver's responsibility. Omitted limit fields mean that the policy has no limit for that dimension.",
                        "type": "object",
                        "properties": {
                          "energy": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "idleTime": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "connection": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "chargingTime": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          }
                        }
                      },
                      "overallCostCap": {
                        "description": "Caps the amount the policy covers at `maxCostPerKwh` for each kWh charged. When the covered cost exceeds `maxCostPerKwh` multiplied by the energy charged, coverage is reduced to that maximum and the remainder is the driver's responsibility.",
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "Whether the overall cost cap applies."
                          },
                          "maxCostPerKwh": {
                            "type": "number",
                            "format": "float",
                            "minimum": 0,
                            "description": "Required when `enabled` is `true`."
                          }
                        },
                        "required": [
                          "enabled"
                        ]
                      }
                    },
                    "required": [
                      "coverageType"
                    ]
                  },
                  "dc": {
                    "description": "Coverage settings for one charger type. `coverageType` defines whether eligible sessions on this charger type are fully covered, covered only within configured limits, or not covered. The nested limits are used only for limited coverage.",
                    "type": "object",
                    "properties": {
                      "coverageType": {
                        "type": "string",
                        "enum": [
                          "full_coverage",
                          "limited_coverage",
                          "not_covered"
                        ],
                        "description": "Charger type coverage type:\n- **full_coverage**: The policy covers eligible costs for this charger type without tariff thresholds\n- **limited_coverage**: The policy covers eligible costs for this charger type only within configured limits\n- **not_covered**: The policy does not cover sessions on this charger type\n"
                      },
                      "tariffThresholds": {
                        "description": "Per-component limits on the costs the policy covers. Costs above the configured limits are the driver's responsibility. Omitted limit fields mean that the policy has no limit for that dimension.",
                        "type": "object",
                        "properties": {
                          "energy": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "idleTime": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "connection": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "chargingTime": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          }
                        }
                      },
                      "overallCostCap": {
                        "description": "Caps the amount the policy covers at `maxCostPerKwh` for each kWh charged. When the covered cost exceeds `maxCostPerKwh` multiplied by the energy charged, coverage is reduced to that maximum and the remainder is the driver's responsibility.",
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "Whether the overall cost cap applies."
                          },
                          "maxCostPerKwh": {
                            "type": "number",
                            "format": "float",
                            "minimum": 0,
                            "description": "Required when `enabled` is `true`."
                          }
                        },
                        "required": [
                          "enabled"
                        ]
                      }
                    },
                    "required": [
                      "coverageType"
                    ]
                  }
                },
                "required": [
                  "ac",
                  "dc"
                ]
              },
              "latestSnapshotId": {
                "type": "integer",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "partnerId",
              "name",
              "isActive",
              "coverageType",
              "period",
              "createdAt",
              "updatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInviteCorporateBillingPolicyDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInviteCorporateBillingPolicyUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "description": "⚠️ Experimental endpoint — not yet a stable contract. This resource ships as experimental / beta. While experimental, its schema and behaviour may change without a version bump — including breaking changes within v1.0 itself. Anyone consuming it does so for evaluation only, or by coordinating adoption with their account manager so changes can be sequenced with them. It graduates to a stable, version-locked contract (where the normal breaking-change rules apply) only when this experimental notice is removed.\n\nPartner invite corporate billing policy read schema. The policy defines when corporate billing covers a driver's session costs and which limits, restrictions, and charger-type rules apply.\n",
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "partnerId": {
                "type": "integer"
              },
              "name": {
                "type": "string",
                "maxLength": 255
              },
              "isActive": {
                "type": "boolean",
                "readOnly": true
              },
              "coverageType": {
                "type": "string",
                "enum": [
                  "full_coverage",
                  "limited_coverage"
                ],
                "description": "Corporate billing policy coverage type:\n- **full_coverage**: The policy covers eligible session costs without tariff thresholds\n- **limited_coverage**: The policy covers eligible session costs only within configured limits\n"
              },
              "individualSpendingLimit": {
                "type": "number",
                "format": "float",
                "minimum": 0,
                "exclusiveMinimum": true,
                "description": "Authorization-time spending threshold for a driver's accumulated corporate-billed cost on the corporate account within the billing period. Once the accumulated cost reaches the limit, the policy stops covering that driver's subsequent sessions until the period resets. The session in which the limit is reached is still covered in full. Omitted when no per-driver spending limit is set."
              },
              "externalId": {
                "type": "string",
                "maxLength": 255,
                "description": "An optional external identifier for integration purposes"
              },
              "period": {
                "readOnly": true,
                "description": "Corporate billing period:\n- **monthly**: Spending limits reset every month.\n- **quarterly**: Spending limits reset every three months.\n- **semi_annually**: Spending limits reset every six months.\n- **annually**: Spending limits reset every year.\n",
                "type": "string",
                "enum": [
                  "monthly",
                  "quarterly",
                  "semi_annually",
                  "annually"
                ]
              },
              "restrictions": {
                "type": "object",
                "description": "Restrictions that determine whether a session is eligible for corporate billing. Allow-list modes cover only the listed values, deny-list modes withhold coverage for the listed values, and no-restriction modes leave that dimension unrestricted. A session must pass every restriction dimension; when any dimension excludes it, corporate billing is withheld and the policy does not cover the session.",
                "properties": {
                  "partner": {
                    "type": "object",
                    "description": "Constrains coverage by partner. `partnerIds` is interpreted together with the selected `type`; for list-based modes it contains the partner IDs to allow or deny.",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "own_only",
                          "allow",
                          "deny"
                        ],
                        "description": "Partner restriction mode:\n- **none**: No partner restriction applies.\n- **own_only**: Only the operator's own charge points are eligible.\n- **allow**: Only listed partner IDs are eligible.\n- **deny**: Listed partner IDs are excluded.\n"
                      },
                      "partnerIds": {
                        "type": "array",
                        "description": "Partner IDs used by list-based partner restriction modes.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    }
                  },
                  "country": {
                    "type": "object",
                    "description": "Constrains coverage by country. `countries` is interpreted together with the selected `type`; for list-based modes it contains the countries to allow or deny.",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "Restriction mode:\n- **none**: No restriction applies.\n- **allow**: Only listed values are eligible.\n- **deny**: Listed values are excluded.\n"
                      },
                      "countries": {
                        "type": "array",
                        "description": "Country codes used by list-based country restriction modes.",
                        "items": {
                          "type": "string",
                          "enum": [
                            "AF",
                            "AX",
                            "AL",
                            "DZ",
                            "AS",
                            "AD",
                            "AO",
                            "AI",
                            "AQ",
                            "AG",
                            "AR",
                            "AM",
                            "AW",
                            "AU",
                            "AT",
                            "AZ",
                            "BS",
                            "BH",
                            "BD",
                            "BB",
                            "BY",
                            "BE",
                            "BZ",
                            "BJ",
                            "BM",
                            "BT",
                            "BO",
                            "BQ",
                            "BA",
                            "BW",
                            "BV",
                            "BR",
                            "IO",
                            "BN",
                            "BG",
                            "BF",
                            "BI",
                            "KH",
                            "CM",
                            "CA",
                            "CV",
                            "KY",
                            "CF",
                            "TD",
                            "CL",
                            "CN",
                            "CX",
                            "CC",
                            "CO",
                            "KM",
                            "CG",
                            "CD",
                            "CK",
                            "CR",
                            "CI",
                            "HR",
                            "CU",
                            "CW",
                            "CY",
                            "CZ",
                            "DK",
                            "DJ",
                            "DM",
                            "DO",
                            "EC",
                            "EG",
                            "SV",
                            "GQ",
                            "ER",
                            "EE",
                            "ET",
                            "FK",
                            "FO",
                            "FJ",
                            "FI",
                            "FR",
                            "GF",
                            "PF",
                            "TF",
                            "GA",
                            "GM",
                            "GE",
                            "DE",
                            "GH",
                            "GI",
                            "GR",
                            "GL",
                            "GD",
                            "GP",
                            "GU",
                            "GT",
                            "GG",
                            "GN",
                            "GW",
                            "GY",
                            "HT",
                            "HM",
                            "VA",
                            "HN",
                            "HK",
                            "HU",
                            "IS",
                            "IN",
                            "ID",
                            "IR",
                            "IQ",
                            "IE",
                            "IM",
                            "IL",
                            "IT",
                            "JM",
                            "JP",
                            "JE",
                            "JO",
                            "KZ",
                            "KE",
                            "KI",
                            "KP",
                            "KR",
                            "XK",
                            "KW",
                            "KG",
                            "LA",
                            "LV",
                            "LB",
                            "LS",
                            "LR",
                            "LY",
                            "LI",
                            "LT",
                            "LU",
                            "MO",
                            "MK",
                            "MG",
                            "MW",
                            "MY",
                            "MV",
                            "ML",
                            "MT",
                            "MH",
                            "MQ",
                            "MR",
                            "MU",
                            "YT",
                            "MX",
                            "FM",
                            "MD",
                            "MC",
                            "MN",
                            "ME",
                            "MS",
                            "MA",
                            "MZ",
                            "MM",
                            "NA",
                            "NR",
                            "NP",
                            "NL",
                            "NC",
                            "NZ",
                            "NI",
                            "NE",
                            "NG",
                            "NU",
                            "NF",
                            "MP",
                            "NO",
                            "OM",
                            "PK",
                            "PW",
                            "PS",
                            "PA",
                            "PG",
                            "PY",
                            "PE",
                            "PH",
                            "PN",
                            "PL",
                            "PT",
                            "PR",
                            "QA",
                            "RE",
                            "RO",
                            "RU",
                            "RW",
                            "BL",
                            "SH",
                            "KN",
                            "LC",
                            "MF",
                            "PM",
                            "VC",
                            "WS",
                            "SM",
                            "ST",
                            "SA",
                            "SN",
                            "RS",
                            "SC",
                            "SL",
                            "SG",
                            "SX",
                            "SK",
                            "SI",
                            "SB",
                            "SO",
                            "ZA",
                            "GS",
                            "SS",
                            "ES",
                            "LK",
                            "SD",
                            "SR",
                            "SJ",
                            "SZ",
                            "SE",
                            "CH",
                            "SY",
                            "TW",
                            "TJ",
                            "TZ",
                            "TH",
                            "TL",
                            "TG",
                            "TK",
                            "TO",
                            "TT",
                            "TN",
                            "TR",
                            "TM",
                            "TC",
                            "TV",
                            "UG",
                            "UA",
                            "AE",
                            "GB",
                            "US",
                            "UM",
                            "UY",
                            "UZ",
                            "VU",
                            "VE",
                            "VN",
                            "VG",
                            "VI",
                            "WF",
                            "EH",
                            "YE",
                            "ZM",
                            "ZW"
                          ]
                        }
                      }
                    }
                  },
                  "location": {
                    "type": "object",
                    "description": "Constrains coverage by location. `locationIds` is interpreted together with the selected `type`; for list-based modes it contains the location IDs to allow or deny.",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "Restriction mode:\n- **none**: No restriction applies.\n- **allow**: Only listed values are eligible.\n- **deny**: Listed values are excluded.\n"
                      },
                      "locationIds": {
                        "type": "array",
                        "description": "Location IDs used by list-based location restriction modes.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    }
                  },
                  "locationTag": {
                    "type": "object",
                    "description": "Constrains coverage by location tag. `locationTagIds` is interpreted together with the selected `type`; for list-based modes it contains the location tag IDs to allow or deny.",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "Restriction mode:\n- **none**: No restriction applies.\n- **allow**: Only listed values are eligible.\n- **deny**: Listed values are excluded.\n"
                      },
                      "locationTagIds": {
                        "type": "array",
                        "description": "Location tag IDs used by list-based location tag restriction modes.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    }
                  },
                  "roaming": {
                    "type": "object",
                    "description": "Constrains coverage by roaming operator. `roamingOperatorIds` is interpreted together with the selected `type`; for list-based modes it contains the roaming operator IDs to allow or deny.",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "deny_all",
                          "allow",
                          "deny"
                        ],
                        "description": "Roaming restriction mode:\n- **none**: No roaming restriction applies.\n- **deny_all**: Roaming sessions are not eligible.\n- **allow**: Only listed roaming partners are eligible.\n- **deny**: Listed roaming partners are excluded.\n"
                      },
                      "roamingOperatorIds": {
                        "type": "array",
                        "description": "Roaming operator IDs used by list-based roaming restriction modes.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                },
                "required": [
                  "partner",
                  "country",
                  "location",
                  "locationTag",
                  "roaming"
                ]
              },
              "tariffThresholds": {
                "type": "object",
                "description": "Per-component limits on the costs the policy covers. Costs above the configured limits are the driver's responsibility. Omitted limit fields mean that the policy has no limit for that dimension.",
                "properties": {
                  "energy": {
                    "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether the policy covers this tariff component."
                      },
                      "maxUnitPrice": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                      },
                      "maxQuantity": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                      },
                      "maxAmount": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "idleTime": {
                    "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether the policy covers this tariff component."
                      },
                      "maxUnitPrice": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                      },
                      "maxQuantity": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                      },
                      "maxAmount": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "connection": {
                    "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether the policy covers this tariff component."
                      },
                      "maxUnitPrice": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                      },
                      "maxQuantity": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                      },
                      "maxAmount": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "chargingTime": {
                    "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether the policy covers this tariff component."
                      },
                      "maxUnitPrice": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                      },
                      "maxQuantity": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                      },
                      "maxAmount": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  }
                }
              },
              "overallCostCap": {
                "type": "object",
                "description": "Caps the amount the policy covers at `maxCostPerKwh` for each kWh charged. When the covered cost exceeds `maxCostPerKwh` multiplied by the energy charged, coverage is reduced to that maximum and the remainder is the driver's responsibility.",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "Whether the overall cost cap applies."
                  },
                  "maxCostPerKwh": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "description": "Required when `enabled` is `true`."
                  }
                },
                "required": [
                  "enabled"
                ]
              },
              "chargerTypeConfig": {
                "type": "object",
                "description": "Defines separate AC and DC coverage. Each charger type has its own coverage type for full coverage, limited coverage, or no coverage. Both `ac` and `dc` are required when this object is provided. When `chargerTypeConfig` is present, coverage is resolved per charger type from this object, and the top-level `coverageType`, `tariffThresholds`, and `overallCostCap` are ignored.",
                "properties": {
                  "ac": {
                    "description": "Coverage settings for one charger type. `coverageType` defines whether eligible sessions on this charger type are fully covered, covered only within configured limits, or not covered. The nested limits are used only for limited coverage.",
                    "type": "object",
                    "properties": {
                      "coverageType": {
                        "type": "string",
                        "enum": [
                          "full_coverage",
                          "limited_coverage",
                          "not_covered"
                        ],
                        "description": "Charger type coverage type:\n- **full_coverage**: The policy covers eligible costs for this charger type without tariff thresholds\n- **limited_coverage**: The policy covers eligible costs for this charger type only within configured limits\n- **not_covered**: The policy does not cover sessions on this charger type\n"
                      },
                      "tariffThresholds": {
                        "description": "Per-component limits on the costs the policy covers. Costs above the configured limits are the driver's responsibility. Omitted limit fields mean that the policy has no limit for that dimension.",
                        "type": "object",
                        "properties": {
                          "energy": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "idleTime": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "connection": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "chargingTime": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          }
                        }
                      },
                      "overallCostCap": {
                        "description": "Caps the amount the policy covers at `maxCostPerKwh` for each kWh charged. When the covered cost exceeds `maxCostPerKwh` multiplied by the energy charged, coverage is reduced to that maximum and the remainder is the driver's responsibility.",
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "Whether the overall cost cap applies."
                          },
                          "maxCostPerKwh": {
                            "type": "number",
                            "format": "float",
                            "minimum": 0,
                            "description": "Required when `enabled` is `true`."
                          }
                        },
                        "required": [
                          "enabled"
                        ]
                      }
                    },
                    "required": [
                      "coverageType"
                    ]
                  },
                  "dc": {
                    "description": "Coverage settings for one charger type. `coverageType` defines whether eligible sessions on this charger type are fully covered, covered only within configured limits, or not covered. The nested limits are used only for limited coverage.",
                    "type": "object",
                    "properties": {
                      "coverageType": {
                        "type": "string",
                        "enum": [
                          "full_coverage",
                          "limited_coverage",
                          "not_covered"
                        ],
                        "description": "Charger type coverage type:\n- **full_coverage**: The policy covers eligible costs for this charger type without tariff thresholds\n- **limited_coverage**: The policy covers eligible costs for this charger type only within configured limits\n- **not_covered**: The policy does not cover sessions on this charger type\n"
                      },
                      "tariffThresholds": {
                        "description": "Per-component limits on the costs the policy covers. Costs above the configured limits are the driver's responsibility. Omitted limit fields mean that the policy has no limit for that dimension.",
                        "type": "object",
                        "properties": {
                          "energy": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "idleTime": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "connection": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "chargingTime": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          }
                        }
                      },
                      "overallCostCap": {
                        "description": "Caps the amount the policy covers at `maxCostPerKwh` for each kWh charged. When the covered cost exceeds `maxCostPerKwh` multiplied by the energy charged, coverage is reduced to that maximum and the remainder is the driver's responsibility.",
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "Whether the overall cost cap applies."
                          },
                          "maxCostPerKwh": {
                            "type": "number",
                            "format": "float",
                            "minimum": 0,
                            "description": "Required when `enabled` is `true`."
                          }
                        },
                        "required": [
                          "enabled"
                        ]
                      }
                    },
                    "required": [
                      "coverageType"
                    ]
                  }
                },
                "required": [
                  "ac",
                  "dc"
                ]
              },
              "latestSnapshotId": {
                "type": "integer",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "partnerId",
              "name",
              "isActive",
              "coverageType",
              "period",
              "createdAt",
              "updatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInviteCorporateBillingPolicySnapshotRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "description": "⚠️ Experimental endpoint — not yet a stable contract. This resource ships as experimental / beta. While experimental, its schema and behaviour may change without a version bump — including breaking changes within v1.0 itself. Anyone consuming it does so for evaluation only, or by coordinating adoption with their account manager so changes can be sequenced with them. It graduates to a stable, version-locked contract (where the normal breaking-change rules apply) only when this experimental notice is removed.\n\nPartner invite corporate billing policy snapshot read schema. The snapshot captures the policy settings used to evaluate corporate billing coverage at the time the snapshot was taken.\n",
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "partnerId": {
                "type": "integer"
              },
              "corporateBillingPolicyId": {
                "type": "integer",
                "readOnly": true,
                "description": "The policy this snapshot was taken from. Omitted when that policy no longer exists."
              },
              "name": {
                "type": "string",
                "maxLength": 255
              },
              "isActive": {
                "type": "boolean",
                "readOnly": true
              },
              "coverageType": {
                "type": "string",
                "enum": [
                  "full_coverage",
                  "limited_coverage"
                ],
                "description": "Corporate billing policy coverage type:\n- **full_coverage**: The policy covers eligible session costs without tariff thresholds\n- **limited_coverage**: The policy covers eligible session costs only within configured limits\n"
              },
              "individualSpendingLimit": {
                "type": "number",
                "format": "float",
                "minimum": 0,
                "exclusiveMinimum": true,
                "description": "Authorization-time spending threshold for a driver's accumulated corporate-billed cost on the corporate account within the billing period. Once the accumulated cost reaches the limit, the policy stops covering that driver's subsequent sessions until the period resets. The session in which the limit is reached is still covered in full. Omitted when no per-driver spending limit was captured."
              },
              "externalId": {
                "type": "string",
                "maxLength": 255,
                "description": "An optional external identifier for integration purposes"
              },
              "period": {
                "readOnly": true,
                "description": "Corporate billing period:\n- **monthly**: Spending limits reset every month.\n- **quarterly**: Spending limits reset every three months.\n- **semi_annually**: Spending limits reset every six months.\n- **annually**: Spending limits reset every year.\n",
                "type": "string",
                "enum": [
                  "monthly",
                  "quarterly",
                  "semi_annually",
                  "annually"
                ]
              },
              "restrictions": {
                "type": "object",
                "description": "Restrictions that determine whether a session is eligible for corporate billing. Allow-list modes cover only the listed values, deny-list modes withhold coverage for the listed values, and no-restriction modes leave that dimension unrestricted. A session must pass every restriction dimension; when any dimension excludes it, corporate billing is withheld and the policy does not cover the session.",
                "properties": {
                  "partner": {
                    "type": "object",
                    "description": "Constrains coverage by partner. `partnerIds` is interpreted together with the selected `type`; for list-based modes it contains the partner IDs to allow or deny.",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "own_only",
                          "allow",
                          "deny"
                        ],
                        "description": "Partner restriction mode:\n- **none**: No partner restriction applies.\n- **own_only**: Only the operator's own charge points are eligible.\n- **allow**: Only listed partner IDs are eligible.\n- **deny**: Listed partner IDs are excluded.\n"
                      },
                      "partnerIds": {
                        "type": "array",
                        "description": "Partner IDs used by list-based partner restriction modes.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    }
                  },
                  "country": {
                    "type": "object",
                    "description": "Constrains coverage by country. `countries` is interpreted together with the selected `type`; for list-based modes it contains the countries to allow or deny.",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "Restriction mode:\n- **none**: No restriction applies.\n- **allow**: Only listed values are eligible.\n- **deny**: Listed values are excluded.\n"
                      },
                      "countries": {
                        "type": "array",
                        "description": "Country codes used by list-based country restriction modes.",
                        "items": {
                          "type": "string",
                          "enum": [
                            "AF",
                            "AX",
                            "AL",
                            "DZ",
                            "AS",
                            "AD",
                            "AO",
                            "AI",
                            "AQ",
                            "AG",
                            "AR",
                            "AM",
                            "AW",
                            "AU",
                            "AT",
                            "AZ",
                            "BS",
                            "BH",
                            "BD",
                            "BB",
                            "BY",
                            "BE",
                            "BZ",
                            "BJ",
                            "BM",
                            "BT",
                            "BO",
                            "BQ",
                            "BA",
                            "BW",
                            "BV",
                            "BR",
                            "IO",
                            "BN",
                            "BG",
                            "BF",
                            "BI",
                            "KH",
                            "CM",
                            "CA",
                            "CV",
                            "KY",
                            "CF",
                            "TD",
                            "CL",
                            "CN",
                            "CX",
                            "CC",
                            "CO",
                            "KM",
                            "CG",
                            "CD",
                            "CK",
                            "CR",
                            "CI",
                            "HR",
                            "CU",
                            "CW",
                            "CY",
                            "CZ",
                            "DK",
                            "DJ",
                            "DM",
                            "DO",
                            "EC",
                            "EG",
                            "SV",
                            "GQ",
                            "ER",
                            "EE",
                            "ET",
                            "FK",
                            "FO",
                            "FJ",
                            "FI",
                            "FR",
                            "GF",
                            "PF",
                            "TF",
                            "GA",
                            "GM",
                            "GE",
                            "DE",
                            "GH",
                            "GI",
                            "GR",
                            "GL",
                            "GD",
                            "GP",
                            "GU",
                            "GT",
                            "GG",
                            "GN",
                            "GW",
                            "GY",
                            "HT",
                            "HM",
                            "VA",
                            "HN",
                            "HK",
                            "HU",
                            "IS",
                            "IN",
                            "ID",
                            "IR",
                            "IQ",
                            "IE",
                            "IM",
                            "IL",
                            "IT",
                            "JM",
                            "JP",
                            "JE",
                            "JO",
                            "KZ",
                            "KE",
                            "KI",
                            "KP",
                            "KR",
                            "XK",
                            "KW",
                            "KG",
                            "LA",
                            "LV",
                            "LB",
                            "LS",
                            "LR",
                            "LY",
                            "LI",
                            "LT",
                            "LU",
                            "MO",
                            "MK",
                            "MG",
                            "MW",
                            "MY",
                            "MV",
                            "ML",
                            "MT",
                            "MH",
                            "MQ",
                            "MR",
                            "MU",
                            "YT",
                            "MX",
                            "FM",
                            "MD",
                            "MC",
                            "MN",
                            "ME",
                            "MS",
                            "MA",
                            "MZ",
                            "MM",
                            "NA",
                            "NR",
                            "NP",
                            "NL",
                            "NC",
                            "NZ",
                            "NI",
                            "NE",
                            "NG",
                            "NU",
                            "NF",
                            "MP",
                            "NO",
                            "OM",
                            "PK",
                            "PW",
                            "PS",
                            "PA",
                            "PG",
                            "PY",
                            "PE",
                            "PH",
                            "PN",
                            "PL",
                            "PT",
                            "PR",
                            "QA",
                            "RE",
                            "RO",
                            "RU",
                            "RW",
                            "BL",
                            "SH",
                            "KN",
                            "LC",
                            "MF",
                            "PM",
                            "VC",
                            "WS",
                            "SM",
                            "ST",
                            "SA",
                            "SN",
                            "RS",
                            "SC",
                            "SL",
                            "SG",
                            "SX",
                            "SK",
                            "SI",
                            "SB",
                            "SO",
                            "ZA",
                            "GS",
                            "SS",
                            "ES",
                            "LK",
                            "SD",
                            "SR",
                            "SJ",
                            "SZ",
                            "SE",
                            "CH",
                            "SY",
                            "TW",
                            "TJ",
                            "TZ",
                            "TH",
                            "TL",
                            "TG",
                            "TK",
                            "TO",
                            "TT",
                            "TN",
                            "TR",
                            "TM",
                            "TC",
                            "TV",
                            "UG",
                            "UA",
                            "AE",
                            "GB",
                            "US",
                            "UM",
                            "UY",
                            "UZ",
                            "VU",
                            "VE",
                            "VN",
                            "VG",
                            "VI",
                            "WF",
                            "EH",
                            "YE",
                            "ZM",
                            "ZW"
                          ]
                        }
                      }
                    }
                  },
                  "location": {
                    "type": "object",
                    "description": "Constrains coverage by location. `locationIds` is interpreted together with the selected `type`; for list-based modes it contains the location IDs to allow or deny.",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "Restriction mode:\n- **none**: No restriction applies.\n- **allow**: Only listed values are eligible.\n- **deny**: Listed values are excluded.\n"
                      },
                      "locationIds": {
                        "type": "array",
                        "description": "Location IDs used by list-based location restriction modes.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    }
                  },
                  "locationTag": {
                    "type": "object",
                    "description": "Constrains coverage by location tag. `locationTagIds` is interpreted together with the selected `type`; for list-based modes it contains the location tag IDs to allow or deny.",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "allow",
                          "deny"
                        ],
                        "description": "Restriction mode:\n- **none**: No restriction applies.\n- **allow**: Only listed values are eligible.\n- **deny**: Listed values are excluded.\n"
                      },
                      "locationTagIds": {
                        "type": "array",
                        "description": "Location tag IDs used by list-based location tag restriction modes.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    }
                  },
                  "roaming": {
                    "type": "object",
                    "description": "Constrains coverage by roaming operator. `roamingOperatorIds` is interpreted together with the selected `type`; for list-based modes it contains the roaming operator IDs to allow or deny.",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "none",
                          "deny_all",
                          "allow",
                          "deny"
                        ],
                        "description": "Roaming restriction mode:\n- **none**: No roaming restriction applies.\n- **deny_all**: Roaming sessions are not eligible.\n- **allow**: Only listed roaming partners are eligible.\n- **deny**: Listed roaming partners are excluded.\n"
                      },
                      "roamingOperatorIds": {
                        "type": "array",
                        "description": "Roaming operator IDs used by list-based roaming restriction modes.",
                        "items": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                },
                "required": [
                  "partner",
                  "country",
                  "location",
                  "locationTag",
                  "roaming"
                ]
              },
              "tariffThresholds": {
                "type": "object",
                "description": "Per-component limits on the costs the policy covers. Costs above the configured limits are the driver's responsibility. Omitted limit fields mean that the policy has no limit for that dimension.",
                "properties": {
                  "energy": {
                    "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether the policy covers this tariff component."
                      },
                      "maxUnitPrice": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                      },
                      "maxQuantity": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                      },
                      "maxAmount": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "idleTime": {
                    "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether the policy covers this tariff component."
                      },
                      "maxUnitPrice": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                      },
                      "maxQuantity": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                      },
                      "maxAmount": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "connection": {
                    "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether the policy covers this tariff component."
                      },
                      "maxUnitPrice": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                      },
                      "maxQuantity": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                      },
                      "maxAmount": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "chargingTime": {
                    "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean",
                        "description": "Whether the policy covers this tariff component."
                      },
                      "maxUnitPrice": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                      },
                      "maxQuantity": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                      },
                      "maxAmount": {
                        "type": "number",
                        "format": "float",
                        "minimum": 0,
                        "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  }
                }
              },
              "overallCostCap": {
                "type": "object",
                "description": "Caps the amount the policy covers at `maxCostPerKwh` for each kWh charged. When the covered cost exceeds `maxCostPerKwh` multiplied by the energy charged, coverage is reduced to that maximum and the remainder is the driver's responsibility.",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "Whether the overall cost cap applies."
                  },
                  "maxCostPerKwh": {
                    "type": "number",
                    "format": "float",
                    "minimum": 0,
                    "description": "Required when `enabled` is `true`."
                  }
                },
                "required": [
                  "enabled"
                ]
              },
              "chargerTypeConfig": {
                "type": "object",
                "description": "Defines separate AC and DC coverage. Each charger type has its own coverage type for full coverage, limited coverage, or no coverage. Both `ac` and `dc` are required when this object is provided. When `chargerTypeConfig` is present, coverage is resolved per charger type from this object, and the top-level `coverageType`, `tariffThresholds`, and `overallCostCap` are ignored.",
                "properties": {
                  "ac": {
                    "description": "Coverage settings for one charger type. `coverageType` defines whether eligible sessions on this charger type are fully covered, covered only within configured limits, or not covered. The nested limits are used only for limited coverage.",
                    "type": "object",
                    "properties": {
                      "coverageType": {
                        "type": "string",
                        "enum": [
                          "full_coverage",
                          "limited_coverage",
                          "not_covered"
                        ],
                        "description": "Charger type coverage type:\n- **full_coverage**: The policy covers eligible costs for this charger type without tariff thresholds\n- **limited_coverage**: The policy covers eligible costs for this charger type only within configured limits\n- **not_covered**: The policy does not cover sessions on this charger type\n"
                      },
                      "tariffThresholds": {
                        "description": "Per-component limits on the costs the policy covers. Costs above the configured limits are the driver's responsibility. Omitted limit fields mean that the policy has no limit for that dimension.",
                        "type": "object",
                        "properties": {
                          "energy": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "idleTime": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "connection": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "chargingTime": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          }
                        }
                      },
                      "overallCostCap": {
                        "description": "Caps the amount the policy covers at `maxCostPerKwh` for each kWh charged. When the covered cost exceeds `maxCostPerKwh` multiplied by the energy charged, coverage is reduced to that maximum and the remainder is the driver's responsibility.",
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "Whether the overall cost cap applies."
                          },
                          "maxCostPerKwh": {
                            "type": "number",
                            "format": "float",
                            "minimum": 0,
                            "description": "Required when `enabled` is `true`."
                          }
                        },
                        "required": [
                          "enabled"
                        ]
                      }
                    },
                    "required": [
                      "coverageType"
                    ]
                  },
                  "dc": {
                    "description": "Coverage settings for one charger type. `coverageType` defines whether eligible sessions on this charger type are fully covered, covered only within configured limits, or not covered. The nested limits are used only for limited coverage.",
                    "type": "object",
                    "properties": {
                      "coverageType": {
                        "type": "string",
                        "enum": [
                          "full_coverage",
                          "limited_coverage",
                          "not_covered"
                        ],
                        "description": "Charger type coverage type:\n- **full_coverage**: The policy covers eligible costs for this charger type without tariff thresholds\n- **limited_coverage**: The policy covers eligible costs for this charger type only within configured limits\n- **not_covered**: The policy does not cover sessions on this charger type\n"
                      },
                      "tariffThresholds": {
                        "description": "Per-component limits on the costs the policy covers. Costs above the configured limits are the driver's responsibility. Omitted limit fields mean that the policy has no limit for that dimension.",
                        "type": "object",
                        "properties": {
                          "energy": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "idleTime": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "connection": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          },
                          "chargingTime": {
                            "description": "A limit for one tariff component. When the component is disabled, the policy does not cover that component and the driver pays it in full. Omitted limit fields mean that the policy has no limit for that dimension.",
                            "type": "object",
                            "properties": {
                              "enabled": {
                                "type": "boolean",
                                "description": "Whether the policy covers this tariff component."
                              },
                              "maxUnitPrice": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support unit-price caps."
                              },
                              "maxQuantity": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to energy, idleTime, and chargingTime components only. The connection component does not support quantity caps."
                              },
                              "maxAmount": {
                                "type": "number",
                                "format": "float",
                                "minimum": 0,
                                "description": "Applies to the connection component only. Energy, idleTime, and chargingTime components do not support flat amount caps."
                              }
                            },
                            "required": [
                              "enabled"
                            ]
                          }
                        }
                      },
                      "overallCostCap": {
                        "description": "Caps the amount the policy covers at `maxCostPerKwh` for each kWh charged. When the covered cost exceeds `maxCostPerKwh` multiplied by the energy charged, coverage is reduced to that maximum and the remainder is the driver's responsibility.",
                        "type": "object",
                        "properties": {
                          "enabled": {
                            "type": "boolean",
                            "description": "Whether the overall cost cap applies."
                          },
                          "maxCostPerKwh": {
                            "type": "number",
                            "format": "float",
                            "minimum": 0,
                            "description": "Required when `enabled` is `true`."
                          }
                        },
                        "required": [
                          "enabled"
                        ]
                      }
                    },
                    "required": [
                      "coverageType"
                    ]
                  }
                },
                "required": [
                  "ac",
                  "dc"
                ]
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "partnerId",
              "name",
              "isActive",
              "coverageType",
              "period",
              "createdAt",
              "updatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInvitesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Partner Invite",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "partnerId": {
                  "type": "integer"
                },
                "sendViaEmail": {
                  "type": "boolean"
                },
                "email": {
                  "type": "string",
                  "description": "Email used to identify and associate the invitee. May be null when the invite was created without an email.",
                  "format": "email",
                  "nullable": true
                },
                "language": {
                  "type": "string",
                  "description": "The language of the e-mail sent to the invitee. If none selected, the default end-users language will be used."
                },
                "acceptUrl": {
                  "type": "string",
                  "format": "url",
                  "readOnly": true,
                  "nullable": true
                },
                "options": {
                  "type": "object",
                  "properties": {
                    "allowCorporateAccountBilling": {
                      "type": "boolean",
                      "default": false
                    },
                    "limitCorporateAccountBillingToPartnerChargePoints": {
                      "type": "boolean",
                      "description": "Whether the assigned corporate billing policy restricts corporate billing to the partner's charge points.",
                      "default": false
                    },
                    "allowAccessToPrivateChargePoints": {
                      "type": "boolean",
                      "default": false
                    },
                    "corporateBillingLimit": {
                      "type": "number",
                      "format": "decimal",
                      "nullable": true,
                      "minimum": 0,
                      "description": "The individual corporate billing limit amount from the assigned corporate billing policy. Must be a positive decimal when set. When `null`, no individual limit is applied. Only applicable when `allowCorporateAccountBilling` is `true`."
                    }
                  }
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "pending",
                    "sent",
                    "accepted"
                  ],
                  "readOnly": true
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                },
                "acceptedAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true,
                  "nullable": true
                },
                "userId": {
                  "type": "integer",
                  "readOnly": true,
                  "nullable": true
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "partnerId",
                "status",
                "createdAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInviteCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Partner Invite",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "partnerId": {
                "type": "integer"
              },
              "sendViaEmail": {
                "type": "boolean"
              },
              "email": {
                "type": "string",
                "description": "Email used to identify and associate the invitee. May be null when the invite was created without an email.",
                "format": "email",
                "nullable": true
              },
              "language": {
                "type": "string",
                "description": "The language of the e-mail sent to the invitee. If none selected, the default end-users language will be used."
              },
              "acceptUrl": {
                "type": "string",
                "format": "url",
                "readOnly": true,
                "nullable": true
              },
              "options": {
                "type": "object",
                "properties": {
                  "allowCorporateAccountBilling": {
                    "type": "boolean",
                    "default": false
                  },
                  "limitCorporateAccountBillingToPartnerChargePoints": {
                    "type": "boolean",
                    "description": "Whether the assigned corporate billing policy restricts corporate billing to the partner's charge points.",
                    "default": false
                  },
                  "allowAccessToPrivateChargePoints": {
                    "type": "boolean",
                    "default": false
                  },
                  "corporateBillingLimit": {
                    "type": "number",
                    "format": "decimal",
                    "nullable": true,
                    "minimum": 0,
                    "description": "The individual corporate billing limit amount from the assigned corporate billing policy. Must be a positive decimal when set. When `null`, no individual limit is applied. Only applicable when `allowCorporateAccountBilling` is `true`."
                  }
                }
              },
              "status": {
                "type": "string",
                "enum": [
                  "pending",
                  "sent",
                  "accepted"
                ],
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "acceptedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "nullable": true
              },
              "userId": {
                "type": "integer",
                "readOnly": true,
                "nullable": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "partnerId",
              "status",
              "createdAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInviteRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Partner Invite",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "partnerId": {
                "type": "integer"
              },
              "sendViaEmail": {
                "type": "boolean"
              },
              "email": {
                "type": "string",
                "description": "Email used to identify and associate the invitee. May be null when the invite was created without an email.",
                "format": "email",
                "nullable": true
              },
              "language": {
                "type": "string",
                "description": "The language of the e-mail sent to the invitee. If none selected, the default end-users language will be used."
              },
              "acceptUrl": {
                "type": "string",
                "format": "url",
                "readOnly": true,
                "nullable": true
              },
              "options": {
                "type": "object",
                "properties": {
                  "allowCorporateAccountBilling": {
                    "type": "boolean",
                    "default": false
                  },
                  "limitCorporateAccountBillingToPartnerChargePoints": {
                    "type": "boolean",
                    "description": "Whether the assigned corporate billing policy restricts corporate billing to the partner's charge points.",
                    "default": false
                  },
                  "allowAccessToPrivateChargePoints": {
                    "type": "boolean",
                    "default": false
                  },
                  "corporateBillingLimit": {
                    "type": "number",
                    "format": "decimal",
                    "nullable": true,
                    "minimum": 0,
                    "description": "The individual corporate billing limit amount from the assigned corporate billing policy. Must be a positive decimal when set. When `null`, no individual limit is applied. Only applicable when `allowCorporateAccountBilling` is `true`."
                  }
                }
              },
              "status": {
                "type": "string",
                "enum": [
                  "pending",
                  "sent",
                  "accepted"
                ],
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "acceptedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "nullable": true
              },
              "userId": {
                "type": "integer",
                "readOnly": true,
                "nullable": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "partnerId",
              "status",
              "createdAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInviteDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInviteUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Partner Invite",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "partnerId": {
                "type": "integer"
              },
              "sendViaEmail": {
                "type": "boolean"
              },
              "email": {
                "type": "string",
                "description": "Email used to identify and associate the invitee. May be null when the invite was created without an email.",
                "format": "email",
                "nullable": true
              },
              "language": {
                "type": "string",
                "description": "The language of the e-mail sent to the invitee. If none selected, the default end-users language will be used."
              },
              "acceptUrl": {
                "type": "string",
                "format": "url",
                "readOnly": true,
                "nullable": true
              },
              "options": {
                "type": "object",
                "properties": {
                  "allowCorporateAccountBilling": {
                    "type": "boolean",
                    "default": false
                  },
                  "limitCorporateAccountBillingToPartnerChargePoints": {
                    "type": "boolean",
                    "description": "Whether the assigned corporate billing policy restricts corporate billing to the partner's charge points.",
                    "default": false
                  },
                  "allowAccessToPrivateChargePoints": {
                    "type": "boolean",
                    "default": false
                  },
                  "corporateBillingLimit": {
                    "type": "number",
                    "format": "decimal",
                    "nullable": true,
                    "minimum": 0,
                    "description": "The individual corporate billing limit amount from the assigned corporate billing policy. Must be a positive decimal when set. When `null`, no individual limit is applied. Only applicable when `allowCorporateAccountBilling` is `true`."
                  }
                }
              },
              "status": {
                "type": "string",
                "enum": [
                  "pending",
                  "sent",
                  "accepted"
                ],
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "acceptedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "nullable": true
              },
              "userId": {
                "type": "integer",
                "readOnly": true,
                "nullable": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "partnerId",
              "status",
              "createdAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInvitesListingV2_0": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Partner invite.",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "partnerId": {
                  "type": "integer"
                },
                "sendViaEmail": {
                  "type": "boolean"
                },
                "email": {
                  "type": "string",
                  "description": "Email used to identify and associate the invitee. Omitted when the invite was created without an email.",
                  "format": "email"
                },
                "language": {
                  "description": "IETF language tag.",
                  "type": "string",
                  "enum": [
                    "en",
                    "bg",
                    "mk",
                    "el",
                    "zh-CN",
                    "zh-HK",
                    "zh-TW",
                    "pt",
                    "sl",
                    "hr",
                    "it",
                    "de",
                    "hu",
                    "fi",
                    "is",
                    "sv-SE",
                    "da-DK",
                    "nb-NO",
                    "tr-TR",
                    "es-ES",
                    "ar",
                    "ary",
                    "he",
                    "ta",
                    "ms",
                    "cy",
                    "sr",
                    "fr",
                    "fr-MA",
                    "ro",
                    "lt",
                    "uk",
                    "ru",
                    "nl",
                    "ca-ES",
                    "id",
                    "ar-EG",
                    "pl",
                    "lo",
                    "th",
                    "sq-XK",
                    "ga-IE",
                    "bs",
                    "ja",
                    "ko-KR",
                    "cs",
                    "lv",
                    "et",
                    "az",
                    "ka",
                    "af",
                    "hi",
                    "de-CH",
                    "fr-CH",
                    "it-CH",
                    "en-GB"
                  ]
                },
                "acceptUrl": {
                  "type": "string",
                  "format": "url",
                  "readOnly": true
                },
                "status": {
                  "type": "string",
                  "description": "Partner invite status.\n\n- `pending` — The invite was created without sending an email and has not been accepted.\n- `sent` — The invite email was sent and has not been accepted.\n- `accepted` — The invite was accepted by a user.\n",
                  "enum": [
                    "pending",
                    "sent",
                    "accepted"
                  ]
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "acceptedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "userId": {
                  "type": "integer",
                  "readOnly": true
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "accessPolicyId": {
                  "type": "integer",
                  "description": "The assigned access policy ID. Omitted from the response when no policy is assigned."
                },
                "corporateBillingPolicyId": {
                  "type": "integer",
                  "description": "The assigned corporate billing policy. Omitted when no policy is assigned."
                },
                "reimbursement": {
                  "description": "Home-charging reimbursement settings for the invite. Omitted when home-charging reimbursement is disabled.",
                  "type": "object",
                  "properties": {
                    "policyId": {
                      "type": "integer",
                      "description": "The home-charging reimbursement policy attached to the invite. Must reference an active policy that belongs to the partner or has no partner. Omitted from the response when no policy is attached.\n\nWhen the policy resolves the electricity rate from the charge point, it is applied only to the invited user's charge points that have an electricity rate assigned. Charge points without one are skipped and the request still succeeds; assign an electricity rate to those charge points and re-apply the policy to cover them.\n"
                    },
                    "restrictions": {
                      "description": "Which of the invite's RFIDs and vehicles are covered by reimbursement. On read this reports the current covered set. On write the submitted list declares the covered set: listed RFIDs/vehicles are attached automatically (they must belong to the invited user), and attached entities left off the list are detached.\n",
                      "type": "object",
                      "properties": {
                        "rfids": {
                          "type": "object",
                          "description": "Reimbursement coverage for the invite's RFIDs.",
                          "properties": {
                            "type": {
                              "description": "Discriminator for a reimbursement coverage sub-restriction:\n- **none**: All of the invite's attached entities of this kind are covered.\n- **allow**: Only the explicitly listed entities are covered.\n",
                              "type": "string",
                              "enum": [
                                "none",
                                "allow"
                              ]
                            },
                            "rfidIds": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "description": "The covered set of RFID IDs. Required and must be non-empty when type is `allow`; each must belong to the invited user. Listed RFIDs that are not yet attached are attached automatically, and attached RFIDs left off the list are detached. Omitted when type is `none`."
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "vehicles": {
                          "type": "object",
                          "description": "Reimbursement coverage for the invite's vehicles.",
                          "properties": {
                            "type": {
                              "description": "Discriminator for a reimbursement coverage sub-restriction:\n- **none**: All of the invite's attached entities of this kind are covered.\n- **allow**: Only the explicitly listed entities are covered.\n",
                              "type": "string",
                              "enum": [
                                "none",
                                "allow"
                              ]
                            },
                            "vehicleIds": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "description": "The covered set of vehicle IDs. Required and must be non-empty when type is `allow`; each must belong to the invited user. Listed vehicles that are not yet attached are attached automatically, and attached vehicles left off the list are detached. Omitted when type is `none`."
                            }
                          },
                          "required": [
                            "type"
                          ]
                        }
                      }
                    }
                  }
                }
              },
              "required": [
                "id",
                "partnerId",
                "sendViaEmail",
                "language",
                "status",
                "createdAt",
                "lastUpdatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInviteCreateV2_0": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Partner invite.",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "partnerId": {
                "type": "integer"
              },
              "sendViaEmail": {
                "type": "boolean"
              },
              "email": {
                "type": "string",
                "description": "Email used to identify and associate the invitee. Omitted when the invite was created without an email.",
                "format": "email"
              },
              "language": {
                "description": "IETF language tag.",
                "type": "string",
                "enum": [
                  "en",
                  "bg",
                  "mk",
                  "el",
                  "zh-CN",
                  "zh-HK",
                  "zh-TW",
                  "pt",
                  "sl",
                  "hr",
                  "it",
                  "de",
                  "hu",
                  "fi",
                  "is",
                  "sv-SE",
                  "da-DK",
                  "nb-NO",
                  "tr-TR",
                  "es-ES",
                  "ar",
                  "ary",
                  "he",
                  "ta",
                  "ms",
                  "cy",
                  "sr",
                  "fr",
                  "fr-MA",
                  "ro",
                  "lt",
                  "uk",
                  "ru",
                  "nl",
                  "ca-ES",
                  "id",
                  "ar-EG",
                  "pl",
                  "lo",
                  "th",
                  "sq-XK",
                  "ga-IE",
                  "bs",
                  "ja",
                  "ko-KR",
                  "cs",
                  "lv",
                  "et",
                  "az",
                  "ka",
                  "af",
                  "hi",
                  "de-CH",
                  "fr-CH",
                  "it-CH",
                  "en-GB"
                ]
              },
              "acceptUrl": {
                "type": "string",
                "format": "url",
                "readOnly": true
              },
              "status": {
                "type": "string",
                "description": "Partner invite status.\n\n- `pending` — The invite was created without sending an email and has not been accepted.\n- `sent` — The invite email was sent and has not been accepted.\n- `accepted` — The invite was accepted by a user.\n",
                "enum": [
                  "pending",
                  "sent",
                  "accepted"
                ]
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "acceptedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "userId": {
                "type": "integer",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "accessPolicyId": {
                "type": "integer",
                "description": "The assigned access policy ID. Omitted from the response when no policy is assigned."
              },
              "corporateBillingPolicyId": {
                "type": "integer",
                "description": "The assigned corporate billing policy. Omitted when no policy is assigned."
              },
              "reimbursement": {
                "description": "Home-charging reimbursement settings for the invite. Omitted when home-charging reimbursement is disabled.",
                "type": "object",
                "properties": {
                  "policyId": {
                    "type": "integer",
                    "description": "The home-charging reimbursement policy attached to the invite. Must reference an active policy that belongs to the partner or has no partner. Omitted from the response when no policy is attached.\n\nWhen the policy resolves the electricity rate from the charge point, it is applied only to the invited user's charge points that have an electricity rate assigned. Charge points without one are skipped and the request still succeeds; assign an electricity rate to those charge points and re-apply the policy to cover them.\n"
                  },
                  "restrictions": {
                    "description": "Which of the invite's RFIDs and vehicles are covered by reimbursement. On read this reports the current covered set. On write the submitted list declares the covered set: listed RFIDs/vehicles are attached automatically (they must belong to the invited user), and attached entities left off the list are detached.\n",
                    "type": "object",
                    "properties": {
                      "rfids": {
                        "type": "object",
                        "description": "Reimbursement coverage for the invite's RFIDs.",
                        "properties": {
                          "type": {
                            "description": "Discriminator for a reimbursement coverage sub-restriction:\n- **none**: All of the invite's attached entities of this kind are covered.\n- **allow**: Only the explicitly listed entities are covered.\n",
                            "type": "string",
                            "enum": [
                              "none",
                              "allow"
                            ]
                          },
                          "rfidIds": {
                            "type": "array",
                            "items": {
                              "type": "integer"
                            },
                            "description": "The covered set of RFID IDs. Required and must be non-empty when type is `allow`; each must belong to the invited user. Listed RFIDs that are not yet attached are attached automatically, and attached RFIDs left off the list are detached. Omitted when type is `none`."
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "vehicles": {
                        "type": "object",
                        "description": "Reimbursement coverage for the invite's vehicles.",
                        "properties": {
                          "type": {
                            "description": "Discriminator for a reimbursement coverage sub-restriction:\n- **none**: All of the invite's attached entities of this kind are covered.\n- **allow**: Only the explicitly listed entities are covered.\n",
                            "type": "string",
                            "enum": [
                              "none",
                              "allow"
                            ]
                          },
                          "vehicleIds": {
                            "type": "array",
                            "items": {
                              "type": "integer"
                            },
                            "description": "The covered set of vehicle IDs. Required and must be non-empty when type is `allow`; each must belong to the invited user. Listed vehicles that are not yet attached are attached automatically, and attached vehicles left off the list are detached. Omitted when type is `none`."
                          }
                        },
                        "required": [
                          "type"
                        ]
                      }
                    }
                  }
                }
              }
            },
            "required": [
              "id",
              "partnerId",
              "sendViaEmail",
              "language",
              "status",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInviteReadV2_0": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Partner invite.",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "partnerId": {
                "type": "integer"
              },
              "sendViaEmail": {
                "type": "boolean"
              },
              "email": {
                "type": "string",
                "description": "Email used to identify and associate the invitee. Omitted when the invite was created without an email.",
                "format": "email"
              },
              "language": {
                "description": "IETF language tag.",
                "type": "string",
                "enum": [
                  "en",
                  "bg",
                  "mk",
                  "el",
                  "zh-CN",
                  "zh-HK",
                  "zh-TW",
                  "pt",
                  "sl",
                  "hr",
                  "it",
                  "de",
                  "hu",
                  "fi",
                  "is",
                  "sv-SE",
                  "da-DK",
                  "nb-NO",
                  "tr-TR",
                  "es-ES",
                  "ar",
                  "ary",
                  "he",
                  "ta",
                  "ms",
                  "cy",
                  "sr",
                  "fr",
                  "fr-MA",
                  "ro",
                  "lt",
                  "uk",
                  "ru",
                  "nl",
                  "ca-ES",
                  "id",
                  "ar-EG",
                  "pl",
                  "lo",
                  "th",
                  "sq-XK",
                  "ga-IE",
                  "bs",
                  "ja",
                  "ko-KR",
                  "cs",
                  "lv",
                  "et",
                  "az",
                  "ka",
                  "af",
                  "hi",
                  "de-CH",
                  "fr-CH",
                  "it-CH",
                  "en-GB"
                ]
              },
              "acceptUrl": {
                "type": "string",
                "format": "url",
                "readOnly": true
              },
              "status": {
                "type": "string",
                "description": "Partner invite status.\n\n- `pending` — The invite was created without sending an email and has not been accepted.\n- `sent` — The invite email was sent and has not been accepted.\n- `accepted` — The invite was accepted by a user.\n",
                "enum": [
                  "pending",
                  "sent",
                  "accepted"
                ]
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "acceptedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "userId": {
                "type": "integer",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "accessPolicyId": {
                "type": "integer",
                "description": "The assigned access policy ID. Omitted from the response when no policy is assigned."
              },
              "corporateBillingPolicyId": {
                "type": "integer",
                "description": "The assigned corporate billing policy. Omitted when no policy is assigned."
              },
              "reimbursement": {
                "description": "Home-charging reimbursement settings for the invite. Omitted when home-charging reimbursement is disabled.",
                "type": "object",
                "properties": {
                  "policyId": {
                    "type": "integer",
                    "description": "The home-charging reimbursement policy attached to the invite. Must reference an active policy that belongs to the partner or has no partner. Omitted from the response when no policy is attached.\n\nWhen the policy resolves the electricity rate from the charge point, it is applied only to the invited user's charge points that have an electricity rate assigned. Charge points without one are skipped and the request still succeeds; assign an electricity rate to those charge points and re-apply the policy to cover them.\n"
                  },
                  "restrictions": {
                    "description": "Which of the invite's RFIDs and vehicles are covered by reimbursement. On read this reports the current covered set. On write the submitted list declares the covered set: listed RFIDs/vehicles are attached automatically (they must belong to the invited user), and attached entities left off the list are detached.\n",
                    "type": "object",
                    "properties": {
                      "rfids": {
                        "type": "object",
                        "description": "Reimbursement coverage for the invite's RFIDs.",
                        "properties": {
                          "type": {
                            "description": "Discriminator for a reimbursement coverage sub-restriction:\n- **none**: All of the invite's attached entities of this kind are covered.\n- **allow**: Only the explicitly listed entities are covered.\n",
                            "type": "string",
                            "enum": [
                              "none",
                              "allow"
                            ]
                          },
                          "rfidIds": {
                            "type": "array",
                            "items": {
                              "type": "integer"
                            },
                            "description": "The covered set of RFID IDs. Required and must be non-empty when type is `allow`; each must belong to the invited user. Listed RFIDs that are not yet attached are attached automatically, and attached RFIDs left off the list are detached. Omitted when type is `none`."
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "vehicles": {
                        "type": "object",
                        "description": "Reimbursement coverage for the invite's vehicles.",
                        "properties": {
                          "type": {
                            "description": "Discriminator for a reimbursement coverage sub-restriction:\n- **none**: All of the invite's attached entities of this kind are covered.\n- **allow**: Only the explicitly listed entities are covered.\n",
                            "type": "string",
                            "enum": [
                              "none",
                              "allow"
                            ]
                          },
                          "vehicleIds": {
                            "type": "array",
                            "items": {
                              "type": "integer"
                            },
                            "description": "The covered set of vehicle IDs. Required and must be non-empty when type is `allow`; each must belong to the invited user. Listed vehicles that are not yet attached are attached automatically, and attached vehicles left off the list are detached. Omitted when type is `none`."
                          }
                        },
                        "required": [
                          "type"
                        ]
                      }
                    }
                  }
                }
              }
            },
            "required": [
              "id",
              "partnerId",
              "sendViaEmail",
              "language",
              "status",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInviteDeleteV2_0": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInviteUpdateV2_0": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Partner invite.",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "partnerId": {
                "type": "integer"
              },
              "sendViaEmail": {
                "type": "boolean"
              },
              "email": {
                "type": "string",
                "description": "Email used to identify and associate the invitee. Omitted when the invite was created without an email.",
                "format": "email"
              },
              "language": {
                "description": "IETF language tag.",
                "type": "string",
                "enum": [
                  "en",
                  "bg",
                  "mk",
                  "el",
                  "zh-CN",
                  "zh-HK",
                  "zh-TW",
                  "pt",
                  "sl",
                  "hr",
                  "it",
                  "de",
                  "hu",
                  "fi",
                  "is",
                  "sv-SE",
                  "da-DK",
                  "nb-NO",
                  "tr-TR",
                  "es-ES",
                  "ar",
                  "ary",
                  "he",
                  "ta",
                  "ms",
                  "cy",
                  "sr",
                  "fr",
                  "fr-MA",
                  "ro",
                  "lt",
                  "uk",
                  "ru",
                  "nl",
                  "ca-ES",
                  "id",
                  "ar-EG",
                  "pl",
                  "lo",
                  "th",
                  "sq-XK",
                  "ga-IE",
                  "bs",
                  "ja",
                  "ko-KR",
                  "cs",
                  "lv",
                  "et",
                  "az",
                  "ka",
                  "af",
                  "hi",
                  "de-CH",
                  "fr-CH",
                  "it-CH",
                  "en-GB"
                ]
              },
              "acceptUrl": {
                "type": "string",
                "format": "url",
                "readOnly": true
              },
              "status": {
                "type": "string",
                "description": "Partner invite status.\n\n- `pending` — The invite was created without sending an email and has not been accepted.\n- `sent` — The invite email was sent and has not been accepted.\n- `accepted` — The invite was accepted by a user.\n",
                "enum": [
                  "pending",
                  "sent",
                  "accepted"
                ]
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "acceptedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "userId": {
                "type": "integer",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "accessPolicyId": {
                "type": "integer",
                "description": "The assigned access policy ID. Omitted from the response when no policy is assigned."
              },
              "corporateBillingPolicyId": {
                "type": "integer",
                "description": "The assigned corporate billing policy. Omitted when no policy is assigned."
              },
              "reimbursement": {
                "description": "Home-charging reimbursement settings for the invite. Omitted when home-charging reimbursement is disabled.",
                "type": "object",
                "properties": {
                  "policyId": {
                    "type": "integer",
                    "description": "The home-charging reimbursement policy attached to the invite. Must reference an active policy that belongs to the partner or has no partner. Omitted from the response when no policy is attached.\n\nWhen the policy resolves the electricity rate from the charge point, it is applied only to the invited user's charge points that have an electricity rate assigned. Charge points without one are skipped and the request still succeeds; assign an electricity rate to those charge points and re-apply the policy to cover them.\n"
                  },
                  "restrictions": {
                    "description": "Which of the invite's RFIDs and vehicles are covered by reimbursement. On read this reports the current covered set. On write the submitted list declares the covered set: listed RFIDs/vehicles are attached automatically (they must belong to the invited user), and attached entities left off the list are detached.\n",
                    "type": "object",
                    "properties": {
                      "rfids": {
                        "type": "object",
                        "description": "Reimbursement coverage for the invite's RFIDs.",
                        "properties": {
                          "type": {
                            "description": "Discriminator for a reimbursement coverage sub-restriction:\n- **none**: All of the invite's attached entities of this kind are covered.\n- **allow**: Only the explicitly listed entities are covered.\n",
                            "type": "string",
                            "enum": [
                              "none",
                              "allow"
                            ]
                          },
                          "rfidIds": {
                            "type": "array",
                            "items": {
                              "type": "integer"
                            },
                            "description": "The covered set of RFID IDs. Required and must be non-empty when type is `allow`; each must belong to the invited user. Listed RFIDs that are not yet attached are attached automatically, and attached RFIDs left off the list are detached. Omitted when type is `none`."
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "vehicles": {
                        "type": "object",
                        "description": "Reimbursement coverage for the invite's vehicles.",
                        "properties": {
                          "type": {
                            "description": "Discriminator for a reimbursement coverage sub-restriction:\n- **none**: All of the invite's attached entities of this kind are covered.\n- **allow**: Only the explicitly listed entities are covered.\n",
                            "type": "string",
                            "enum": [
                              "none",
                              "allow"
                            ]
                          },
                          "vehicleIds": {
                            "type": "array",
                            "items": {
                              "type": "integer"
                            },
                            "description": "The covered set of vehicle IDs. Required and must be non-empty when type is `allow`; each must belong to the invited user. Listed vehicles that are not yet attached are attached automatically, and attached vehicles left off the list are detached. Omitted when type is `none`."
                          }
                        },
                        "required": [
                          "type"
                        ]
                      }
                    }
                  }
                }
              }
            },
            "required": [
              "id",
              "partnerId",
              "sendViaEmail",
              "language",
              "status",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInvoicesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Unique partner invoice identifier."
                },
                "operatorId": {
                  "type": "integer",
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "partnerId": {
                  "type": "integer",
                  "description": "Identifier of the partner the invoice is issued to or from."
                },
                "settlementReportId": {
                  "type": "integer",
                  "description": "Identifier of the settlement report the invoice was generated from."
                },
                "number": {
                  "type": "string",
                  "description": "The platform's own identifier for this partner invoice. Not a fiscal authority document number — where the B2B invoice processor recorded on this invoice certifies documents with a fiscal authority, the legally meaningful number is `fiscalization.referenceNumber` on the single-invoice read."
                },
                "externalId": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "An optional external identifier for integration purposes"
                },
                "type": {
                  "description": "Partner invoice document type:\n- **invoice**: A regular partner invoice generated from a settlement report.\n- **credit_note**: A credit note that cancels an original partner invoice. Always references the cancelled invoice via `referenceId`.\n",
                  "type": "string",
                  "enum": [
                    "invoice",
                    "credit_note"
                  ],
                  "example": "invoice"
                },
                "sellerType": {
                  "description": "Party type on a partner invoice:\n- **operator**: The party is the operator issuing or receiving the invoice.\n- **partner**: The party is the partner the invoice is issued to or from.\n",
                  "type": "string",
                  "enum": [
                    "operator",
                    "partner"
                  ],
                  "example": "operator"
                },
                "buyerType": {
                  "description": "Party type on a partner invoice:\n- **operator**: The party is the operator issuing or receiving the invoice.\n- **partner**: The party is the partner the invoice is issued to or from.\n",
                  "type": "string",
                  "enum": [
                    "operator",
                    "partner"
                  ],
                  "example": "operator"
                },
                "issuedOn": {
                  "type": "string",
                  "format": "date",
                  "description": "Date when the partner invoice was issued."
                },
                "dueOn": {
                  "type": "string",
                  "format": "date",
                  "description": "Date by which the partner invoice must be paid. Equal to the issued date when payment terms are \"Due on receipt\"."
                },
                "periodStartsOn": {
                  "type": "string",
                  "format": "date",
                  "description": "First date of the billing period captured when the partner invoice was issued. Present only when the complete period is available."
                },
                "periodEndsOn": {
                  "type": "string",
                  "format": "date",
                  "description": "Last date of the billing period captured when the partner invoice was issued. Present only when the complete period is available."
                },
                "paymentTermsDays": {
                  "type": "integer",
                  "description": "Number of days the party has to pay after the invoice is issued. `0` represents \"Due on receipt\". Snapshotted at generation time."
                },
                "paymentStatus": {
                  "description": "Partner invoice payment status:\n- **unpaid**: No payment has been recorded against the invoice.\n- **partially_paid**: A payment has been recorded but the full amount is not yet covered.\n- **paid**: The full amount has been paid.\n",
                  "type": "string",
                  "enum": [
                    "unpaid",
                    "partially_paid",
                    "paid"
                  ],
                  "example": "unpaid"
                },
                "currencyCode": {
                  "description": "Currency used on the partner invoice (ISO 4217 code).",
                  "type": "string",
                  "enum": [
                    "AED",
                    "AFN",
                    "ALL",
                    "AMD",
                    "ANG",
                    "AOA",
                    "ARS",
                    "AUD",
                    "AWG",
                    "AZN",
                    "BAM",
                    "BBD",
                    "BDT",
                    "BGN",
                    "BHD",
                    "BIF",
                    "BMD",
                    "BND",
                    "BOB",
                    "BOV",
                    "BRL",
                    "BSD",
                    "BTN",
                    "BWP",
                    "BYN",
                    "BZD",
                    "CAD",
                    "CDF",
                    "CHE",
                    "CHF",
                    "CHW",
                    "CLF",
                    "CLP",
                    "CNY",
                    "COP",
                    "COU",
                    "CRC",
                    "CUC",
                    "CUP",
                    "CVE",
                    "CZK",
                    "DJF",
                    "DKK",
                    "DOP",
                    "DZD",
                    "EGP",
                    "ERN",
                    "ETB",
                    "EUR",
                    "FJD",
                    "FKP",
                    "GBP",
                    "GEL",
                    "GHS",
                    "GIP",
                    "GMD",
                    "GNF",
                    "GTQ",
                    "GYD",
                    "HKD",
                    "HNL",
                    "HRK",
                    "HTG",
                    "HUF",
                    "IDR",
                    "ILS",
                    "INR",
                    "IQD",
                    "IRR",
                    "ISK",
                    "JMD",
                    "JOD",
                    "JPY",
                    "KES",
                    "KGS",
                    "KHR",
                    "KMF",
                    "KPW",
                    "KRW",
                    "KWD",
                    "KYD",
                    "KZT",
                    "LAK",
                    "LBP",
                    "LKR",
                    "LRD",
                    "LSL",
                    "LYD",
                    "MAD",
                    "MDL",
                    "MGA",
                    "MKD",
                    "MMK",
                    "MNT",
                    "MOP",
                    "MRU",
                    "MUR",
                    "MVR",
                    "MWK",
                    "MXN",
                    "MXV",
                    "MYR",
                    "MZN",
                    "NAD",
                    "NGN",
                    "NIO",
                    "NOK",
                    "NPR",
                    "NZD",
                    "OMR",
                    "PAB",
                    "PEN",
                    "PGK",
                    "PHP",
                    "PKR",
                    "PLN",
                    "PYG",
                    "QAR",
                    "RON",
                    "RSD",
                    "RUB",
                    "RWF",
                    "SAR",
                    "SBD",
                    "SCR",
                    "SDG",
                    "SEK",
                    "SGD",
                    "SHP",
                    "SLL",
                    "SOS",
                    "SRD",
                    "SSP",
                    "STN",
                    "SVC",
                    "SYP",
                    "SZL",
                    "THB",
                    "TJS",
                    "TMT",
                    "TND",
                    "TOP",
                    "TRY",
                    "TTD",
                    "TWD",
                    "TZS",
                    "UAH",
                    "UGX",
                    "USD",
                    "USN",
                    "UYI",
                    "UYU",
                    "UYW",
                    "UZS",
                    "VES",
                    "VND",
                    "VUV",
                    "WST",
                    "XAF",
                    "XAG",
                    "XAU",
                    "XBA",
                    "XBB",
                    "XBC",
                    "XBD",
                    "XCD",
                    "XDR",
                    "XOF",
                    "XPD",
                    "XPF",
                    "XPT",
                    "XSU",
                    "XTS",
                    "XUA",
                    "XXX",
                    "YER",
                    "ZAR",
                    "ZMW",
                    "ZWL"
                  ]
                },
                "totalAmount": {
                  "description": "Total amount on the partner invoice, split by tax inclusion.",
                  "type": "object",
                  "properties": {
                    "withoutTax": {
                      "type": "number",
                      "description": "Total amount on the partner invoice excluding tax. Equal to withTax on invoices that have no tax breakdown (US/Canada)."
                    },
                    "withTax": {
                      "type": "number",
                      "description": "Total amount on the partner invoice including tax."
                    }
                  },
                  "required": [
                    "withoutTax",
                    "withTax"
                  ]
                },
                "totalTax": {
                  "type": "number",
                  "description": "Total tax amount across all line items. Stored for all invoices; hidden on US/Canada invoices."
                },
                "referenceId": {
                  "type": "integer",
                  "description": "Identifier of the original partner invoice that this credit note cancels. Present only when `type` is `credit_note`."
                }
              },
              "required": [
                "id",
                "operatorId",
                "partnerId",
                "settlementReportId",
                "number",
                "type",
                "sellerType",
                "buyerType",
                "issuedOn",
                "dueOn",
                "paymentTermsDays",
                "paymentStatus",
                "currencyCode",
                "totalAmount"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        },
        "required": [
          "data",
          "links",
          "meta"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerInvoiceRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique partner invoice identifier."
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "partnerId": {
                "type": "integer",
                "description": "Identifier of the partner the invoice is issued to or from."
              },
              "settlementReportId": {
                "type": "integer",
                "description": "Identifier of the settlement report the invoice was generated from."
              },
              "number": {
                "type": "string",
                "description": "The platform's own identifier for this partner invoice. Not a fiscal authority document number — where the B2B invoice processor recorded on this invoice certifies documents with a fiscal authority, the legally meaningful number is `fiscalization.referenceNumber` on the single-invoice read."
              },
              "externalId": {
                "type": "string",
                "maxLength": 255,
                "description": "An optional external identifier for integration purposes"
              },
              "type": {
                "description": "Partner invoice document type:\n- **invoice**: A regular partner invoice generated from a settlement report.\n- **credit_note**: A credit note that cancels an original partner invoice. Always references the cancelled invoice via `referenceId`.\n",
                "type": "string",
                "enum": [
                  "invoice",
                  "credit_note"
                ],
                "example": "invoice"
              },
              "sellerType": {
                "description": "Party type on a partner invoice:\n- **operator**: The party is the operator issuing or receiving the invoice.\n- **partner**: The party is the partner the invoice is issued to or from.\n",
                "type": "string",
                "enum": [
                  "operator",
                  "partner"
                ],
                "example": "operator"
              },
              "buyerType": {
                "description": "Party type on a partner invoice:\n- **operator**: The party is the operator issuing or receiving the invoice.\n- **partner**: The party is the partner the invoice is issued to or from.\n",
                "type": "string",
                "enum": [
                  "operator",
                  "partner"
                ],
                "example": "operator"
              },
              "issuedOn": {
                "type": "string",
                "format": "date",
                "description": "Date when the partner invoice was issued."
              },
              "dueOn": {
                "type": "string",
                "format": "date",
                "description": "Date by which the partner invoice must be paid. Equal to the issued date when payment terms are \"Due on receipt\"."
              },
              "periodStartsOn": {
                "type": "string",
                "format": "date",
                "description": "First date of the billing period captured when the partner invoice was issued. Present only when the complete period is available."
              },
              "periodEndsOn": {
                "type": "string",
                "format": "date",
                "description": "Last date of the billing period captured when the partner invoice was issued. Present only when the complete period is available."
              },
              "paymentTermsDays": {
                "type": "integer",
                "description": "Number of days the party has to pay after the invoice is issued. `0` represents \"Due on receipt\". Snapshotted at generation time."
              },
              "paymentStatus": {
                "description": "Partner invoice payment status:\n- **unpaid**: No payment has been recorded against the invoice.\n- **partially_paid**: A payment has been recorded but the full amount is not yet covered.\n- **paid**: The full amount has been paid.\n",
                "type": "string",
                "enum": [
                  "unpaid",
                  "partially_paid",
                  "paid"
                ],
                "example": "unpaid"
              },
              "currencyCode": {
                "description": "Currency used on the partner invoice (ISO 4217 code).",
                "type": "string",
                "enum": [
                  "AED",
                  "AFN",
                  "ALL",
                  "AMD",
                  "ANG",
                  "AOA",
                  "ARS",
                  "AUD",
                  "AWG",
                  "AZN",
                  "BAM",
                  "BBD",
                  "BDT",
                  "BGN",
                  "BHD",
                  "BIF",
                  "BMD",
                  "BND",
                  "BOB",
                  "BOV",
                  "BRL",
                  "BSD",
                  "BTN",
                  "BWP",
                  "BYN",
                  "BZD",
                  "CAD",
                  "CDF",
                  "CHE",
                  "CHF",
                  "CHW",
                  "CLF",
                  "CLP",
                  "CNY",
                  "COP",
                  "COU",
                  "CRC",
                  "CUC",
                  "CUP",
                  "CVE",
                  "CZK",
                  "DJF",
                  "DKK",
                  "DOP",
                  "DZD",
                  "EGP",
                  "ERN",
                  "ETB",
                  "EUR",
                  "FJD",
                  "FKP",
                  "GBP",
                  "GEL",
                  "GHS",
                  "GIP",
                  "GMD",
                  "GNF",
                  "GTQ",
                  "GYD",
                  "HKD",
                  "HNL",
                  "HRK",
                  "HTG",
                  "HUF",
                  "IDR",
                  "ILS",
                  "INR",
                  "IQD",
                  "IRR",
                  "ISK",
                  "JMD",
                  "JOD",
                  "JPY",
                  "KES",
                  "KGS",
                  "KHR",
                  "KMF",
                  "KPW",
                  "KRW",
                  "KWD",
                  "KYD",
                  "KZT",
                  "LAK",
                  "LBP",
                  "LKR",
                  "LRD",
                  "LSL",
                  "LYD",
                  "MAD",
                  "MDL",
                  "MGA",
                  "MKD",
                  "MMK",
                  "MNT",
                  "MOP",
                  "MRU",
                  "MUR",
                  "MVR",
                  "MWK",
                  "MXN",
                  "MXV",
                  "MYR",
                  "MZN",
                  "NAD",
                  "NGN",
                  "NIO",
                  "NOK",
                  "NPR",
                  "NZD",
                  "OMR",
                  "PAB",
                  "PEN",
                  "PGK",
                  "PHP",
                  "PKR",
                  "PLN",
                  "PYG",
                  "QAR",
                  "RON",
                  "RSD",
                  "RUB",
                  "RWF",
                  "SAR",
                  "SBD",
                  "SCR",
                  "SDG",
                  "SEK",
                  "SGD",
                  "SHP",
                  "SLL",
                  "SOS",
                  "SRD",
                  "SSP",
                  "STN",
                  "SVC",
                  "SYP",
                  "SZL",
                  "THB",
                  "TJS",
                  "TMT",
                  "TND",
                  "TOP",
                  "TRY",
                  "TTD",
                  "TWD",
                  "TZS",
                  "UAH",
                  "UGX",
                  "USD",
                  "USN",
                  "UYI",
                  "UYU",
                  "UYW",
                  "UZS",
                  "VES",
                  "VND",
                  "VUV",
                  "WST",
                  "XAF",
                  "XAG",
                  "XAU",
                  "XBA",
                  "XBB",
                  "XBC",
                  "XBD",
                  "XCD",
                  "XDR",
                  "XOF",
                  "XPD",
                  "XPF",
                  "XPT",
                  "XSU",
                  "XTS",
                  "XUA",
                  "XXX",
                  "YER",
                  "ZAR",
                  "ZMW",
                  "ZWL"
                ]
              },
              "totalAmount": {
                "description": "Total amount on the partner invoice, split by tax inclusion.",
                "type": "object",
                "properties": {
                  "withoutTax": {
                    "type": "number",
                    "description": "Total amount on the partner invoice excluding tax. Equal to withTax on invoices that have no tax breakdown (US/Canada)."
                  },
                  "withTax": {
                    "type": "number",
                    "description": "Total amount on the partner invoice including tax."
                  }
                },
                "required": [
                  "withoutTax",
                  "withTax"
                ]
              },
              "totalTax": {
                "type": "number",
                "description": "Total tax amount across all line items. Stored for all invoices; hidden on US/Canada invoices."
              },
              "referenceId": {
                "type": "integer",
                "description": "Identifier of the original partner invoice that this credit note cancels. Present only when `type` is `credit_note`."
              },
              "seller": {
                "description": "Seller details captured at the time of invoice generation. The operator is the seller on a regular partner invoice; the partner is the seller on a self-billing invoice.",
                "type": "object",
                "properties": {
                  "type": {
                    "description": "Party type on a partner invoice:\n- **operator**: The party is the operator issuing or receiving the invoice.\n- **partner**: The party is the partner the invoice is issued to or from.\n",
                    "type": "string",
                    "enum": [
                      "operator",
                      "partner"
                    ],
                    "example": "operator"
                  },
                  "name": {
                    "type": "string",
                    "description": "Legal name of the party as captured at invoice generation."
                  },
                  "contactPerson": {
                    "type": "string",
                    "description": "Contact person at the party."
                  },
                  "country": {
                    "description": "ISO 3166-1 alpha-2 country code of the party.",
                    "type": "string",
                    "enum": [
                      "AF",
                      "AX",
                      "AL",
                      "DZ",
                      "AS",
                      "AD",
                      "AO",
                      "AI",
                      "AQ",
                      "AG",
                      "AR",
                      "AM",
                      "AW",
                      "AU",
                      "AT",
                      "AZ",
                      "BS",
                      "BH",
                      "BD",
                      "BB",
                      "BY",
                      "BE",
                      "BZ",
                      "BJ",
                      "BM",
                      "BT",
                      "BO",
                      "BQ",
                      "BA",
                      "BW",
                      "BV",
                      "BR",
                      "IO",
                      "BN",
                      "BG",
                      "BF",
                      "BI",
                      "KH",
                      "CM",
                      "CA",
                      "CV",
                      "KY",
                      "CF",
                      "TD",
                      "CL",
                      "CN",
                      "CX",
                      "CC",
                      "CO",
                      "KM",
                      "CG",
                      "CD",
                      "CK",
                      "CR",
                      "CI",
                      "HR",
                      "CU",
                      "CW",
                      "CY",
                      "CZ",
                      "DK",
                      "DJ",
                      "DM",
                      "DO",
                      "EC",
                      "EG",
                      "SV",
                      "GQ",
                      "ER",
                      "EE",
                      "ET",
                      "FK",
                      "FO",
                      "FJ",
                      "FI",
                      "FR",
                      "GF",
                      "PF",
                      "TF",
                      "GA",
                      "GM",
                      "GE",
                      "DE",
                      "GH",
                      "GI",
                      "GR",
                      "GL",
                      "GD",
                      "GP",
                      "GU",
                      "GT",
                      "GG",
                      "GN",
                      "GW",
                      "GY",
                      "HT",
                      "HM",
                      "VA",
                      "HN",
                      "HK",
                      "HU",
                      "IS",
                      "IN",
                      "ID",
                      "IR",
                      "IQ",
                      "IE",
                      "IM",
                      "IL",
                      "IT",
                      "JM",
                      "JP",
                      "JE",
                      "JO",
                      "KZ",
                      "KE",
                      "KI",
                      "KP",
                      "KR",
                      "XK",
                      "KW",
                      "KG",
                      "LA",
                      "LV",
                      "LB",
                      "LS",
                      "LR",
                      "LY",
                      "LI",
                      "LT",
                      "LU",
                      "MO",
                      "MK",
                      "MG",
                      "MW",
                      "MY",
                      "MV",
                      "ML",
                      "MT",
                      "MH",
                      "MQ",
                      "MR",
                      "MU",
                      "YT",
                      "MX",
                      "FM",
                      "MD",
                      "MC",
                      "MN",
                      "ME",
                      "MS",
                      "MA",
                      "MZ",
                      "MM",
                      "NA",
                      "NR",
                      "NP",
                      "NL",
                      "NC",
                      "NZ",
                      "NI",
                      "NE",
                      "NG",
                      "NU",
                      "NF",
                      "MP",
                      "NO",
                      "OM",
                      "PK",
                      "PW",
                      "PS",
                      "PA",
                      "PG",
                      "PY",
                      "PE",
                      "PH",
                      "PN",
                      "PL",
                      "PT",
                      "PR",
                      "QA",
                      "RE",
                      "RO",
                      "RU",
                      "RW",
                      "BL",
                      "SH",
                      "KN",
                      "LC",
                      "MF",
                      "PM",
                      "VC",
                      "WS",
                      "SM",
                      "ST",
                      "SA",
                      "SN",
                      "RS",
                      "SC",
                      "SL",
                      "SG",
                      "SX",
                      "SK",
                      "SI",
                      "SB",
                      "SO",
                      "ZA",
                      "GS",
                      "SS",
                      "ES",
                      "LK",
                      "SD",
                      "SR",
                      "SJ",
                      "SZ",
                      "SE",
                      "CH",
                      "SY",
                      "TW",
                      "TJ",
                      "TZ",
                      "TH",
                      "TL",
                      "TG",
                      "TK",
                      "TO",
                      "TT",
                      "TN",
                      "TR",
                      "TM",
                      "TC",
                      "TV",
                      "UG",
                      "UA",
                      "AE",
                      "GB",
                      "US",
                      "UM",
                      "UY",
                      "UZ",
                      "VU",
                      "VE",
                      "VN",
                      "VG",
                      "VI",
                      "WF",
                      "EH",
                      "YE",
                      "ZM",
                      "ZW"
                    ]
                  },
                  "region": {
                    "type": "string",
                    "description": "Region/state of the party's address."
                  },
                  "city": {
                    "type": "string",
                    "description": "City of the party's address."
                  },
                  "postCode": {
                    "type": "string",
                    "description": "Postal code of the party's address."
                  },
                  "address": {
                    "type": "string",
                    "description": "Street address of the party."
                  },
                  "regNo": {
                    "type": "string",
                    "description": "Registration / company number of the party."
                  },
                  "taxId": {
                    "type": "string",
                    "description": "Tax identification number of the party."
                  },
                  "phone": {
                    "type": "string",
                    "description": "Phone number of the party."
                  },
                  "email": {
                    "type": "string",
                    "description": "Email address of the party."
                  },
                  "bankIban": {
                    "type": "string",
                    "nullable": true,
                    "description": "IBAN of the bank account."
                  },
                  "bankCode": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                  },
                  "bankAccountNumber": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank account number."
                  },
                  "bankAccountType": {
                    "type": "string",
                    "nullable": true,
                    "description": "Type of the bank account."
                  },
                  "bankBic": {
                    "type": "string",
                    "nullable": true,
                    "description": "BIC/SWIFT code of the bank."
                  }
                },
                "required": [
                  "type",
                  "name"
                ]
              },
              "buyer": {
                "description": "Buyer details captured at the time of invoice generation.",
                "type": "object",
                "properties": {
                  "type": {
                    "description": "Party type on a partner invoice:\n- **operator**: The party is the operator issuing or receiving the invoice.\n- **partner**: The party is the partner the invoice is issued to or from.\n",
                    "type": "string",
                    "enum": [
                      "operator",
                      "partner"
                    ],
                    "example": "operator"
                  },
                  "name": {
                    "type": "string",
                    "description": "Legal name of the party as captured at invoice generation."
                  },
                  "contactPerson": {
                    "type": "string",
                    "description": "Contact person at the party."
                  },
                  "country": {
                    "description": "ISO 3166-1 alpha-2 country code of the party.",
                    "type": "string",
                    "enum": [
                      "AF",
                      "AX",
                      "AL",
                      "DZ",
                      "AS",
                      "AD",
                      "AO",
                      "AI",
                      "AQ",
                      "AG",
                      "AR",
                      "AM",
                      "AW",
                      "AU",
                      "AT",
                      "AZ",
                      "BS",
                      "BH",
                      "BD",
                      "BB",
                      "BY",
                      "BE",
                      "BZ",
                      "BJ",
                      "BM",
                      "BT",
                      "BO",
                      "BQ",
                      "BA",
                      "BW",
                      "BV",
                      "BR",
                      "IO",
                      "BN",
                      "BG",
                      "BF",
                      "BI",
                      "KH",
                      "CM",
                      "CA",
                      "CV",
                      "KY",
                      "CF",
                      "TD",
                      "CL",
                      "CN",
                      "CX",
                      "CC",
                      "CO",
                      "KM",
                      "CG",
                      "CD",
                      "CK",
                      "CR",
                      "CI",
                      "HR",
                      "CU",
                      "CW",
                      "CY",
                      "CZ",
                      "DK",
                      "DJ",
                      "DM",
                      "DO",
                      "EC",
                      "EG",
                      "SV",
                      "GQ",
                      "ER",
                      "EE",
                      "ET",
                      "FK",
                      "FO",
                      "FJ",
                      "FI",
                      "FR",
                      "GF",
                      "PF",
                      "TF",
                      "GA",
                      "GM",
                      "GE",
                      "DE",
                      "GH",
                      "GI",
                      "GR",
                      "GL",
                      "GD",
                      "GP",
                      "GU",
                      "GT",
                      "GG",
                      "GN",
                      "GW",
                      "GY",
                      "HT",
                      "HM",
                      "VA",
                      "HN",
                      "HK",
                      "HU",
                      "IS",
                      "IN",
                      "ID",
                      "IR",
                      "IQ",
                      "IE",
                      "IM",
                      "IL",
                      "IT",
                      "JM",
                      "JP",
                      "JE",
                      "JO",
                      "KZ",
                      "KE",
                      "KI",
                      "KP",
                      "KR",
                      "XK",
                      "KW",
                      "KG",
                      "LA",
                      "LV",
                      "LB",
                      "LS",
                      "LR",
                      "LY",
                      "LI",
                      "LT",
                      "LU",
                      "MO",
                      "MK",
                      "MG",
                      "MW",
                      "MY",
                      "MV",
                      "ML",
                      "MT",
                      "MH",
                      "MQ",
                      "MR",
                      "MU",
                      "YT",
                      "MX",
                      "FM",
                      "MD",
                      "MC",
                      "MN",
                      "ME",
                      "MS",
                      "MA",
                      "MZ",
                      "MM",
                      "NA",
                      "NR",
                      "NP",
                      "NL",
                      "NC",
                      "NZ",
                      "NI",
                      "NE",
                      "NG",
                      "NU",
                      "NF",
                      "MP",
                      "NO",
                      "OM",
                      "PK",
                      "PW",
                      "PS",
                      "PA",
                      "PG",
                      "PY",
                      "PE",
                      "PH",
                      "PN",
                      "PL",
                      "PT",
                      "PR",
                      "QA",
                      "RE",
                      "RO",
                      "RU",
                      "RW",
                      "BL",
                      "SH",
                      "KN",
                      "LC",
                      "MF",
                      "PM",
                      "VC",
                      "WS",
                      "SM",
                      "ST",
                      "SA",
                      "SN",
                      "RS",
                      "SC",
                      "SL",
                      "SG",
                      "SX",
                      "SK",
                      "SI",
                      "SB",
                      "SO",
                      "ZA",
                      "GS",
                      "SS",
                      "ES",
                      "LK",
                      "SD",
                      "SR",
                      "SJ",
                      "SZ",
                      "SE",
                      "CH",
                      "SY",
                      "TW",
                      "TJ",
                      "TZ",
                      "TH",
                      "TL",
                      "TG",
                      "TK",
                      "TO",
                      "TT",
                      "TN",
                      "TR",
                      "TM",
                      "TC",
                      "TV",
                      "UG",
                      "UA",
                      "AE",
                      "GB",
                      "US",
                      "UM",
                      "UY",
                      "UZ",
                      "VU",
                      "VE",
                      "VN",
                      "VG",
                      "VI",
                      "WF",
                      "EH",
                      "YE",
                      "ZM",
                      "ZW"
                    ]
                  },
                  "region": {
                    "type": "string",
                    "description": "Region/state of the party's address."
                  },
                  "city": {
                    "type": "string",
                    "description": "City of the party's address."
                  },
                  "postCode": {
                    "type": "string",
                    "description": "Postal code of the party's address."
                  },
                  "address": {
                    "type": "string",
                    "description": "Street address of the party."
                  },
                  "regNo": {
                    "type": "string",
                    "description": "Registration / company number of the party."
                  },
                  "taxId": {
                    "type": "string",
                    "description": "Tax identification number of the party."
                  },
                  "phone": {
                    "type": "string",
                    "description": "Phone number of the party."
                  },
                  "email": {
                    "type": "string",
                    "description": "Email address of the party."
                  }
                },
                "required": [
                  "type",
                  "name"
                ]
              },
              "lineItems": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Unique line item identifier."
                    },
                    "service": {
                      "type": "string",
                      "description": "Service description for the line item."
                    },
                    "unit": {
                      "type": "string",
                      "description": "Unit of measure for the line item, as captured on the source settlement report entry."
                    },
                    "quantity": {
                      "type": "number",
                      "description": "Quantity of the unit billed on the line item."
                    },
                    "unitPrice": {
                      "description": "Unit price for the line item, split by tax inclusion.",
                      "type": "object",
                      "properties": {
                        "withTax": {
                          "type": "number"
                        },
                        "withoutTax": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "withTax"
                      ]
                    },
                    "lineTotal": {
                      "description": "Total amount for the line item, split by tax inclusion.",
                      "type": "object",
                      "properties": {
                        "withTax": {
                          "type": "number"
                        },
                        "withoutTax": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "withTax"
                      ]
                    },
                    "displayOrder": {
                      "type": "integer",
                      "description": "Order in which the line item is displayed on the invoice."
                    },
                    "originType": {
                      "description": "Origin of the partner invoice line item:\n- **revenue**: The line item originated from a revenue entry on the settlement report.\n- **expense**: The line item originated from an expense entry on the settlement report.\n",
                      "type": "string",
                      "enum": [
                        "revenue",
                        "expense"
                      ],
                      "example": "revenue"
                    },
                    "taxPercentage": {
                      "type": "number",
                      "description": "Tax percentage applied to the line item. Omitted on US/Canada invoices that have no tax breakdown."
                    }
                  },
                  "required": [
                    "id",
                    "service",
                    "unit",
                    "quantity",
                    "unitPrice",
                    "lineTotal",
                    "displayOrder",
                    "originType"
                  ]
                },
                "description": "Line items snapshotted from the source settlement report. On a regular partner invoice revenue entries appear as credits and expense entries as charges; on a self-billing invoice the directions are inverted, with revenue entries as charges and expense entries as deductions."
              },
              "taxBreakdown": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "taxPercentage": {
                      "type": "number",
                      "description": "Tax percentage applied to this group of line items."
                    },
                    "taxableAmount": {
                      "type": "number",
                      "description": "Sum of net line totals for line items at this tax rate."
                    },
                    "taxAmount": {
                      "type": "number",
                      "description": "Sum of tax amounts for line items at this tax rate."
                    }
                  },
                  "required": [
                    "taxPercentage",
                    "taxableAmount",
                    "taxAmount"
                  ]
                },
                "description": "Per-rate tax breakdown grouped from line items. Empty when the invoice has no line items or all line items have no tax rate (US/Canada)."
              },
              "fiscalization": {
                "description": "Certification of this invoice with the fiscal authority integration. Present only when the B2B invoice processor recorded on this invoice at issuance certifies documents with a fiscal authority; omitted entirely otherwise. The recorded processor governs this field for the life of the invoice, so changing the operator's selected processor never adds or removes it on an already-issued invoice.",
                "type": "object",
                "properties": {
                  "status": {
                    "description": "Certification status of the partner invoice with the fiscal authority integration. Present only when the B2B invoice processor recorded on this invoice at issuance certifies documents with a fiscal authority; absent entirely otherwise.\n- **pending**: The invoice record exists and has been accepted for certification, but the fiscal authority integration has not yet confirmed it. The document is not yet legally issued.\n- **certified**: The fiscal authority integration confirmed the document, which is legally issued. `referenceNumber` carries the number the integration assigned to it. In rare cases a certified document has no recorded number and `referenceNumber` is absent; this does not resolve on its own and requires operator intervention.\n- **failed**: Certification did not succeed. Retries are attempted a bounded number of times; a status that remains `failed` requires operator intervention. The invoice record remains, but no legally issued document exists for it.\n",
                    "type": "string",
                    "enum": [
                      "pending",
                      "certified",
                      "failed"
                    ],
                    "example": "certified"
                  },
                  "referenceNumber": {
                    "type": "string",
                    "description": "Document number assigned by the fiscal authority integration. This is the legally meaningful number for the issued document, distinct from `number`. Never present before `status` is `certified`, and not guaranteed even then — a certified document whose assigned number has not yet been recorded omits it."
                  }
                },
                "required": [
                  "status"
                ]
              }
            },
            "required": [
              "id",
              "operatorId",
              "partnerId",
              "settlementReportId",
              "number",
              "type",
              "sellerType",
              "buyerType",
              "issuedOn",
              "dueOn",
              "paymentTermsDays",
              "paymentStatus",
              "currencyCode",
              "totalAmount",
              "seller",
              "buyer",
              "lineItems",
              "taxBreakdown"
            ]
          }
        },
        "required": [
          "data"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "revenuesListingDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "partnerId": {
                  "type": "integer"
                },
                "partnerName": {
                  "type": "string"
                },
                "date": {
                  "type": "string",
                  "format": "date-time"
                },
                "origin": {
                  "type": "string"
                },
                "chargingSessionId": {
                  "type": "integer"
                },
                "startedAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "duration": {
                  "type": "string",
                  "description": "Charging Session duration"
                },
                "chargePointName": {
                  "type": "string"
                },
                "authorization": {
                  "type": "string",
                  "description": "Source of authorisation",
                  "nullable": true
                },
                "totalAmount": {
                  "type": "number"
                },
                "electricityCost": {
                  "type": "number",
                  "nullable": true
                },
                "remainingRevenue": {
                  "type": "number"
                },
                "operatorShare": {
                  "type": "number"
                },
                "partnerShare": {
                  "type": "number"
                },
                "currency": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 3,
                  "description": "The ISO 4217 3-letter code of the currency"
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "partnerId",
                "partnerName",
                "date",
                "origin",
                "totalAmount",
                "partnerShare",
                "currency"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "revenuesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "partnerId": {
                  "type": "integer"
                },
                "partnerName": {
                  "type": "string"
                },
                "date": {
                  "type": "string",
                  "format": "date-time"
                },
                "origin": {
                  "type": "string",
                  "enum": [
                    "electricity-tax-reimbursement",
                    "private-evse-access-fee",
                    "session-cpo"
                  ]
                },
                "totalAmount": {
                  "type": "object",
                  "properties": {
                    "withoutTax": {
                      "type": "number"
                    },
                    "withTax": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "withoutTax"
                  ]
                },
                "operatorShare": {
                  "type": "number"
                },
                "partnerShare": {
                  "type": "number"
                },
                "currencyCode": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 3,
                  "description": "The ISO 4217 3-letter code of the currency"
                },
                "settlementReportId": {
                  "type": "integer",
                  "nullable": true
                },
                "period": {
                  "type": "string",
                  "description": "Month and year the revenue applies to. Only applicable for records with private-evse-access-fee origin",
                  "example": "November 2025"
                },
                "chargePointId": {
                  "type": "integer",
                  "description": "Charge point ID. Only applicable for records with private-evse-access-fee origin"
                },
                "evseCount": {
                  "type": "integer",
                  "description": "Number of EVSEs accessed on this charge point. Only applicable for records with private-evse-access-fee origin"
                },
                "chargingSessionId": {
                  "type": "integer"
                },
                "startedAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "duration": {
                  "type": "string",
                  "description": "Charging Session duration"
                },
                "chargePointName": {
                  "type": "string"
                },
                "authorization": {
                  "type": "string",
                  "description": "Source of authorisation",
                  "nullable": true
                },
                "electricityCost": {
                  "type": "number",
                  "nullable": true
                },
                "remainingRevenue": {
                  "type": "number"
                },
                "collectedAt": {
                  "type": "string",
                  "format": "date-time",
                  "nullable": true,
                  "description": "If not null, the session amount has been fully collected **Only applicable for records with session-cpo origin**"
                }
              },
              "required": [
                "id",
                "partnerId",
                "partnerName",
                "date",
                "origin",
                "totalAmount",
                "partnerShare",
                "operatorShare",
                "currencyCode",
                "settlementReportId"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "revenuesV1_2Listing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "partnerId": {
                  "type": "integer"
                },
                "date": {
                  "type": "string",
                  "format": "date-time"
                },
                "origin": {
                  "type": "string",
                  "description": "The origin type of the revenue record:\n- `session-cpo` - Revenue from a charging session on a partner-owned charge point, based on the partner contract.\n- `electricity-tax-reimbursement` - Tax reimbursement for electricity consumed during charging sessions, configured for monthly or quarterly periods.\n- `private-evse-access-fee` - Revenue earned by a charge point owner when other partners are granted access to their private EVSEs.\n",
                  "enum": [
                    "electricity-tax-reimbursement",
                    "private-evse-access-fee",
                    "session-cpo"
                  ]
                },
                "totalAmount": {
                  "type": "object",
                  "properties": {
                    "withoutTax": {
                      "type": "number"
                    },
                    "withTax": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "withoutTax"
                  ]
                },
                "operatorShare": {
                  "type": "object",
                  "properties": {
                    "withoutTax": {
                      "type": "number"
                    },
                    "withTax": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "withoutTax"
                  ]
                },
                "partnerShare": {
                  "type": "object",
                  "properties": {
                    "withoutTax": {
                      "type": "number"
                    },
                    "withTax": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "withoutTax"
                  ]
                },
                "currencyCode": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 3,
                  "description": "The ISO 4217 3-letter code of the currency"
                },
                "settlementReportId": {
                  "type": "integer",
                  "nullable": true
                },
                "period": {
                  "type": "string",
                  "description": "Month and year the revenue applies to. Only applicable for records with private-evse-access-fee origin",
                  "example": "November 2025"
                },
                "chargePointId": {
                  "type": "integer",
                  "description": "ID of the associated charge point"
                },
                "locationId": {
                  "type": "integer",
                  "description": "ID of the associated location"
                },
                "partnerContractId": {
                  "type": "integer",
                  "description": "ID of the associated partner contract"
                },
                "evseCount": {
                  "type": "integer",
                  "description": "Number of EVSEs accessed on this charge point. Only applicable for records with private-evse-access-fee origin"
                },
                "chargingSessionId": {
                  "type": "integer"
                },
                "startedAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "duration": {
                  "type": "string",
                  "description": "Charging Session duration"
                },
                "authorization": {
                  "type": "string",
                  "description": "Source of authorisation"
                },
                "electricityCost": {
                  "type": "object",
                  "properties": {
                    "withoutTax": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "withoutTax"
                  ]
                },
                "remainingRevenue": {
                  "type": "object",
                  "properties": {
                    "withoutTax": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "withoutTax"
                  ]
                },
                "collectedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The date at which the session amount has been fully collected. Only applicable for records with session-cpo origin"
                }
              },
              "required": [
                "id",
                "partnerId",
                "date",
                "origin",
                "totalAmount",
                "partnerShare",
                "operatorShare",
                "currencyCode",
                "settlementReportId"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "partnerSettlementReportsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Unique settlement report identifier."
                },
                "partnerId": {
                  "type": "integer",
                  "description": "Unique identifier of the partner involved in the settlement."
                },
                "number": {
                  "type": "string",
                  "description": "Settlement report reference number."
                },
                "date": {
                  "type": "string",
                  "format": "date",
                  "description": "Date the settlement report was generated."
                },
                "periodStart": {
                  "type": "string",
                  "format": "date",
                  "description": "Start date of the period covered by the report."
                },
                "periodEnd": {
                  "type": "string",
                  "format": "date",
                  "description": "End date of the period covered by the report."
                },
                "currencyCode": {
                  "type": "string",
                  "description": "Currency used in the settlement (e.g., USD, EUR)."
                },
                "totalAmount": {
                  "type": "object",
                  "properties": {
                    "withoutTax": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "withoutTax"
                  ],
                  "description": "Total settlement amount."
                },
                "totalExpenses": {
                  "type": "number",
                  "description": "Total expenses incurred during the settlement period."
                },
                "totalRevenue": {
                  "type": "number",
                  "description": "Total revenue generated during the settlement period."
                },
                "totalAwaitedRevenue": {
                  "type": "number",
                  "description": "Revenue expected but not yet collected."
                },
                "totalCollectedRevenue": {
                  "type": "number",
                  "description": "Revenue collected during the settlement period."
                },
                "totalCollectedRevenueFromPreviousPeriod": {
                  "type": "number",
                  "description": "Revenue collected during this period, but related to a previous periods."
                },
                "totalEnergyCpoWh": {
                  "type": "number",
                  "description": "Total amount of energy (in Wh) delivered by the Charge Point Operator."
                },
                "totalEnergyEmspWh": {
                  "type": "number",
                  "description": "Total amount of energy (in Wh) consumed by the EMSP."
                },
                "supplier": {
                  "description": "Company details for the entity supplying the service - the CPO.",
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "individual",
                        "company"
                      ]
                    },
                    "name": {
                      "type": "string"
                    },
                    "contactPerson": {
                      "type": "string",
                      "nullable": true
                    },
                    "country": {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        "AF",
                        "AX",
                        "AL",
                        "DZ",
                        "AS",
                        "AD",
                        "AO",
                        "AI",
                        "AQ",
                        "AG",
                        "AR",
                        "AM",
                        "AW",
                        "AU",
                        "AT",
                        "AZ",
                        "BS",
                        "BH",
                        "BD",
                        "BB",
                        "BY",
                        "BE",
                        "BZ",
                        "BJ",
                        "BM",
                        "BT",
                        "BO",
                        "BQ",
                        "BA",
                        "BW",
                        "BV",
                        "BR",
                        "IO",
                        "BN",
                        "BG",
                        "BF",
                        "BI",
                        "KH",
                        "CM",
                        "CA",
                        "CV",
                        "KY",
                        "CF",
                        "TD",
                        "CL",
                        "CN",
                        "CX",
                        "CC",
                        "CO",
                        "KM",
                        "CG",
                        "CD",
                        "CK",
                        "CR",
                        "CI",
                        "HR",
                        "CU",
                        "CW",
                        "CY",
                        "CZ",
                        "DK",
                        "DJ",
                        "DM",
                        "DO",
                        "EC",
                        "EG",
                        "SV",
                        "GQ",
                        "ER",
                        "EE",
                        "ET",
                        "FK",
                        "FO",
                        "FJ",
                        "FI",
                        "FR",
                        "GF",
                        "PF",
                        "TF",
                        "GA",
                        "GM",
                        "GE",
                        "DE",
                        "GH",
                        "GI",
                        "GR",
                        "GL",
                        "GD",
                        "GP",
                        "GU",
                        "GT",
                        "GG",
                        "GN",
                        "GW",
                        "GY",
                        "HT",
                        "HM",
                        "VA",
                        "HN",
                        "HK",
                        "HU",
                        "IS",
                        "IN",
                        "ID",
                        "IR",
                        "IQ",
                        "IE",
                        "IM",
                        "IL",
                        "IT",
                        "JM",
                        "JP",
                        "JE",
                        "JO",
                        "KZ",
                        "KE",
                        "KI",
                        "KP",
                        "KR",
                        "XK",
                        "KW",
                        "KG",
                        "LA",
                        "LV",
                        "LB",
                        "LS",
                        "LR",
                        "LY",
                        "LI",
                        "LT",
                        "LU",
                        "MO",
                        "MK",
                        "MG",
                        "MW",
                        "MY",
                        "MV",
                        "ML",
                        "MT",
                        "MH",
                        "MQ",
                        "MR",
                        "MU",
                        "YT",
                        "MX",
                        "FM",
                        "MD",
                        "MC",
                        "MN",
                        "ME",
                        "MS",
                        "MA",
                        "MZ",
                        "MM",
                        "NA",
                        "NR",
                        "NP",
                        "NL",
                        "NC",
                        "NZ",
                        "NI",
                        "NE",
                        "NG",
                        "NU",
                        "NF",
                        "MP",
                        "NO",
                        "OM",
                        "PK",
                        "PW",
                        "PS",
                        "PA",
                        "PG",
                        "PY",
                        "PE",
                        "PH",
                        "PN",
                        "PL",
                        "PT",
                        "PR",
                        "QA",
                        "RE",
                        "RO",
                        "RU",
                        "RW",
                        "BL",
                        "SH",
                        "KN",
                        "LC",
                        "MF",
                        "PM",
                        "VC",
                        "WS",
                        "SM",
                        "ST",
                        "SA",
                        "SN",
                        "RS",
                        "SC",
                        "SL",
                        "SG",
                        "SX",
                        "SK",
                        "SI",
                        "SB",
                        "SO",
                        "ZA",
                        "GS",
                        "SS",
                        "ES",
                        "LK",
                        "SD",
                        "SR",
                        "SJ",
                        "SZ",
                        "SE",
                        "CH",
                        "SY",
                        "TW",
                        "TJ",
                        "TZ",
                        "TH",
                        "TL",
                        "TG",
                        "TK",
                        "TO",
                        "TT",
                        "TN",
                        "TR",
                        "TM",
                        "TC",
                        "TV",
                        "UG",
                        "UA",
                        "AE",
                        "GB",
                        "US",
                        "UM",
                        "UY",
                        "UZ",
                        "VU",
                        "VE",
                        "VN",
                        "VG",
                        "VI",
                        "WF",
                        "EH",
                        "YE",
                        "ZM",
                        "ZW"
                      ]
                    },
                    "region": {
                      "type": "string",
                      "nullable": true
                    },
                    "city": {
                      "type": "string",
                      "nullable": true
                    },
                    "postCode": {
                      "type": "string",
                      "nullable": true
                    },
                    "address": {
                      "type": "string",
                      "nullable": true
                    },
                    "regNo": {
                      "type": "string",
                      "nullable": true
                    },
                    "taxId": {
                      "type": "string",
                      "nullable": true
                    },
                    "phone": {
                      "type": "string",
                      "nullable": true
                    },
                    "email": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "type",
                    "name",
                    "contactPerson",
                    "country",
                    "region",
                    "city",
                    "postCode",
                    "address",
                    "regNo",
                    "taxId",
                    "phone",
                    "email"
                  ]
                },
                "customer": {
                  "description": "Company details for the entity receiving the service - the Partner/EMSP.",
                  "$ref": "#/paths/~1public-api~1resources~1partner-settlement-reports~1v1.0~1%7BpartnerSettlementReport%7D/get/responses/200/content/application~1json/schema/properties/data",
                  "type": "object",
                  "properties": {
                    "bankIban": {
                      "type": "string",
                      "nullable": true,
                      "description": "IBAN of the bank account."
                    },
                    "bankCode": {
                      "type": "string",
                      "nullable": true,
                      "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                    },
                    "bankAccountNumber": {
                      "type": "string",
                      "nullable": true,
                      "description": "Bank account number."
                    },
                    "bankAccountType": {
                      "type": "string",
                      "nullable": true,
                      "description": "Type of the bank account."
                    },
                    "bankBic": {
                      "type": "string",
                      "nullable": true,
                      "description": "BIC/SWIFT code of the bank."
                    }
                  },
                  "required": [
                    "bankIban",
                    "bankName",
                    "bankAddress",
                    "bankCode",
                    "bankAccountNumber",
                    "bankAccountType",
                    "bankAccountHolder",
                    "bankBic"
                  ]
                },
                "downloadUrl": {
                  "type": "string",
                  "format": "url",
                  "description": "Link to download the full settlement report document."
                },
                "externalId": {
                  "type": "string",
                  "description": "External invoice or reference ID for integration with external accounting systems."
                },
                "deductedFees": {
                  "description": "Aggregated deducted fees for the settlement period. Included only when at least one fee is non-zero.",
                  "type": "object",
                  "properties": {
                    "feePerSessionAc": {
                      "type": "number",
                      "description": "Total fixed fee for AC sessions in the settlement period."
                    },
                    "feePerSessionDc": {
                      "type": "number",
                      "description": "Total fixed fee for DC sessions in the settlement period."
                    },
                    "feePerKwhAc": {
                      "type": "number",
                      "description": "Total fee per AC kWh delivered in the settlement period."
                    },
                    "feePerKwhDc": {
                      "type": "number",
                      "description": "Total fee per DC kWh delivered in the settlement period."
                    },
                    "handlingFee": {
                      "type": "number",
                      "description": "Total percentage-based handling fee for the settlement period."
                    }
                  },
                  "required": [
                    "feePerSessionAc",
                    "feePerSessionDc",
                    "feePerKwhAc",
                    "feePerKwhDc",
                    "handlingFee"
                  ]
                },
                "partnerInvoiceId": {
                  "type": "integer",
                  "description": "Identifier of the latest issued partner invoice for this settlement report.\nOmitted when no partner invoice has been issued.\nRetained after a credit note is issued — the credit note is a separate document and the reference points at the invoice the report produced.\n"
                },
                "customFields": {
                  "description": "Live custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the settlement report's current partner owner or are not visible to the acting administrator are omitted. The `customFields` property itself is omitted when no fields apply.\n\nThese values reflect the current custom field configuration and are not captured in the historical settlement report document, its party and settings snapshots, or derived partner invoices. Existing settlement report access controls continue to determine whether the report can be read; custom field visibility does not grant access to a report.\n",
                  "type": "object",
                  "additionalProperties": true
                }
              },
              "required": [
                "id",
                "partnerId",
                "number",
                "date",
                "periodStart",
                "periodEnd",
                "currencyCode",
                "totalAmount",
                "totalExpenses",
                "totalRevenue",
                "totalAwaitedRevenue",
                "totalCollectedRevenue",
                "totalCollectedRevenueFromPreviousPeriod",
                "totalEnergyCpoWh",
                "totalEnergyEmspWh",
                "supplier",
                "customer",
                "downloadUrl"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        },
        "required": [
          "data",
          "links",
          "meta"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerSettlementReportRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique settlement report identifier."
              },
              "partnerId": {
                "type": "integer",
                "description": "Unique identifier of the partner involved in the settlement."
              },
              "number": {
                "type": "string",
                "description": "Settlement report reference number."
              },
              "date": {
                "type": "string",
                "format": "date",
                "description": "Date the settlement report was generated."
              },
              "periodStart": {
                "type": "string",
                "format": "date",
                "description": "Start date of the period covered by the report."
              },
              "periodEnd": {
                "type": "string",
                "format": "date",
                "description": "End date of the period covered by the report."
              },
              "currencyCode": {
                "type": "string",
                "description": "Currency used in the settlement (e.g., USD, EUR)."
              },
              "totalAmount": {
                "type": "object",
                "properties": {
                  "withoutTax": {
                    "type": "number"
                  }
                },
                "required": [
                  "withoutTax"
                ],
                "description": "Total settlement amount."
              },
              "totalExpenses": {
                "type": "number",
                "description": "Total expenses incurred during the settlement period."
              },
              "totalRevenue": {
                "type": "number",
                "description": "Total revenue generated during the settlement period."
              },
              "totalAwaitedRevenue": {
                "type": "number",
                "description": "Revenue expected but not yet collected."
              },
              "totalCollectedRevenue": {
                "type": "number",
                "description": "Revenue collected during the settlement period."
              },
              "totalCollectedRevenueFromPreviousPeriod": {
                "type": "number",
                "description": "Revenue collected during this period, but related to a previous periods."
              },
              "totalEnergyCpoWh": {
                "type": "number",
                "description": "Total amount of energy (in Wh) delivered by the Charge Point Operator."
              },
              "totalEnergyEmspWh": {
                "type": "number",
                "description": "Total amount of energy (in Wh) consumed by the EMSP."
              },
              "supplier": {
                "description": "Company details for the entity supplying the service - the CPO.",
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "individual",
                      "company"
                    ]
                  },
                  "name": {
                    "type": "string"
                  },
                  "contactPerson": {
                    "type": "string",
                    "nullable": true
                  },
                  "country": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "AF",
                      "AX",
                      "AL",
                      "DZ",
                      "AS",
                      "AD",
                      "AO",
                      "AI",
                      "AQ",
                      "AG",
                      "AR",
                      "AM",
                      "AW",
                      "AU",
                      "AT",
                      "AZ",
                      "BS",
                      "BH",
                      "BD",
                      "BB",
                      "BY",
                      "BE",
                      "BZ",
                      "BJ",
                      "BM",
                      "BT",
                      "BO",
                      "BQ",
                      "BA",
                      "BW",
                      "BV",
                      "BR",
                      "IO",
                      "BN",
                      "BG",
                      "BF",
                      "BI",
                      "KH",
                      "CM",
                      "CA",
                      "CV",
                      "KY",
                      "CF",
                      "TD",
                      "CL",
                      "CN",
                      "CX",
                      "CC",
                      "CO",
                      "KM",
                      "CG",
                      "CD",
                      "CK",
                      "CR",
                      "CI",
                      "HR",
                      "CU",
                      "CW",
                      "CY",
                      "CZ",
                      "DK",
                      "DJ",
                      "DM",
                      "DO",
                      "EC",
                      "EG",
                      "SV",
                      "GQ",
                      "ER",
                      "EE",
                      "ET",
                      "FK",
                      "FO",
                      "FJ",
                      "FI",
                      "FR",
                      "GF",
                      "PF",
                      "TF",
                      "GA",
                      "GM",
                      "GE",
                      "DE",
                      "GH",
                      "GI",
                      "GR",
                      "GL",
                      "GD",
                      "GP",
                      "GU",
                      "GT",
                      "GG",
                      "GN",
                      "GW",
                      "GY",
                      "HT",
                      "HM",
                      "VA",
                      "HN",
                      "HK",
                      "HU",
                      "IS",
                      "IN",
                      "ID",
                      "IR",
                      "IQ",
                      "IE",
                      "IM",
                      "IL",
                      "IT",
                      "JM",
                      "JP",
                      "JE",
                      "JO",
                      "KZ",
                      "KE",
                      "KI",
                      "KP",
                      "KR",
                      "XK",
                      "KW",
                      "KG",
                      "LA",
                      "LV",
                      "LB",
                      "LS",
                      "LR",
                      "LY",
                      "LI",
                      "LT",
                      "LU",
                      "MO",
                      "MK",
                      "MG",
                      "MW",
                      "MY",
                      "MV",
                      "ML",
                      "MT",
                      "MH",
                      "MQ",
                      "MR",
                      "MU",
                      "YT",
                      "MX",
                      "FM",
                      "MD",
                      "MC",
                      "MN",
                      "ME",
                      "MS",
                      "MA",
                      "MZ",
                      "MM",
                      "NA",
                      "NR",
                      "NP",
                      "NL",
                      "NC",
                      "NZ",
                      "NI",
                      "NE",
                      "NG",
                      "NU",
                      "NF",
                      "MP",
                      "NO",
                      "OM",
                      "PK",
                      "PW",
                      "PS",
                      "PA",
                      "PG",
                      "PY",
                      "PE",
                      "PH",
                      "PN",
                      "PL",
                      "PT",
                      "PR",
                      "QA",
                      "RE",
                      "RO",
                      "RU",
                      "RW",
                      "BL",
                      "SH",
                      "KN",
                      "LC",
                      "MF",
                      "PM",
                      "VC",
                      "WS",
                      "SM",
                      "ST",
                      "SA",
                      "SN",
                      "RS",
                      "SC",
                      "SL",
                      "SG",
                      "SX",
                      "SK",
                      "SI",
                      "SB",
                      "SO",
                      "ZA",
                      "GS",
                      "SS",
                      "ES",
                      "LK",
                      "SD",
                      "SR",
                      "SJ",
                      "SZ",
                      "SE",
                      "CH",
                      "SY",
                      "TW",
                      "TJ",
                      "TZ",
                      "TH",
                      "TL",
                      "TG",
                      "TK",
                      "TO",
                      "TT",
                      "TN",
                      "TR",
                      "TM",
                      "TC",
                      "TV",
                      "UG",
                      "UA",
                      "AE",
                      "GB",
                      "US",
                      "UM",
                      "UY",
                      "UZ",
                      "VU",
                      "VE",
                      "VN",
                      "VG",
                      "VI",
                      "WF",
                      "EH",
                      "YE",
                      "ZM",
                      "ZW"
                    ]
                  },
                  "region": {
                    "type": "string",
                    "nullable": true
                  },
                  "city": {
                    "type": "string",
                    "nullable": true
                  },
                  "postCode": {
                    "type": "string",
                    "nullable": true
                  },
                  "address": {
                    "type": "string",
                    "nullable": true
                  },
                  "regNo": {
                    "type": "string",
                    "nullable": true
                  },
                  "taxId": {
                    "type": "string",
                    "nullable": true
                  },
                  "phone": {
                    "type": "string",
                    "nullable": true
                  },
                  "email": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "required": [
                  "type",
                  "name",
                  "contactPerson",
                  "country",
                  "region",
                  "city",
                  "postCode",
                  "address",
                  "regNo",
                  "taxId",
                  "phone",
                  "email"
                ]
              },
              "customer": {
                "description": "Company details for the entity receiving the service - the Partner/EMSP.",
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "individual",
                      "company"
                    ]
                  },
                  "name": {
                    "type": "string"
                  },
                  "contactPerson": {
                    "type": "string",
                    "nullable": true
                  },
                  "country": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "AF",
                      "AX",
                      "AL",
                      "DZ",
                      "AS",
                      "AD",
                      "AO",
                      "AI",
                      "AQ",
                      "AG",
                      "AR",
                      "AM",
                      "AW",
                      "AU",
                      "AT",
                      "AZ",
                      "BS",
                      "BH",
                      "BD",
                      "BB",
                      "BY",
                      "BE",
                      "BZ",
                      "BJ",
                      "BM",
                      "BT",
                      "BO",
                      "BQ",
                      "BA",
                      "BW",
                      "BV",
                      "BR",
                      "IO",
                      "BN",
                      "BG",
                      "BF",
                      "BI",
                      "KH",
                      "CM",
                      "CA",
                      "CV",
                      "KY",
                      "CF",
                      "TD",
                      "CL",
                      "CN",
                      "CX",
                      "CC",
                      "CO",
                      "KM",
                      "CG",
                      "CD",
                      "CK",
                      "CR",
                      "CI",
                      "HR",
                      "CU",
                      "CW",
                      "CY",
                      "CZ",
                      "DK",
                      "DJ",
                      "DM",
                      "DO",
                      "EC",
                      "EG",
                      "SV",
                      "GQ",
                      "ER",
                      "EE",
                      "ET",
                      "FK",
                      "FO",
                      "FJ",
                      "FI",
                      "FR",
                      "GF",
                      "PF",
                      "TF",
                      "GA",
                      "GM",
                      "GE",
                      "DE",
                      "GH",
                      "GI",
                      "GR",
                      "GL",
                      "GD",
                      "GP",
                      "GU",
                      "GT",
                      "GG",
                      "GN",
                      "GW",
                      "GY",
                      "HT",
                      "HM",
                      "VA",
                      "HN",
                      "HK",
                      "HU",
                      "IS",
                      "IN",
                      "ID",
                      "IR",
                      "IQ",
                      "IE",
                      "IM",
                      "IL",
                      "IT",
                      "JM",
                      "JP",
                      "JE",
                      "JO",
                      "KZ",
                      "KE",
                      "KI",
                      "KP",
                      "KR",
                      "XK",
                      "KW",
                      "KG",
                      "LA",
                      "LV",
                      "LB",
                      "LS",
                      "LR",
                      "LY",
                      "LI",
                      "LT",
                      "LU",
                      "MO",
                      "MK",
                      "MG",
                      "MW",
                      "MY",
                      "MV",
                      "ML",
                      "MT",
                      "MH",
                      "MQ",
                      "MR",
                      "MU",
                      "YT",
                      "MX",
                      "FM",
                      "MD",
                      "MC",
                      "MN",
                      "ME",
                      "MS",
                      "MA",
                      "MZ",
                      "MM",
                      "NA",
                      "NR",
                      "NP",
                      "NL",
                      "NC",
                      "NZ",
                      "NI",
                      "NE",
                      "NG",
                      "NU",
                      "NF",
                      "MP",
                      "NO",
                      "OM",
                      "PK",
                      "PW",
                      "PS",
                      "PA",
                      "PG",
                      "PY",
                      "PE",
                      "PH",
                      "PN",
                      "PL",
                      "PT",
                      "PR",
                      "QA",
                      "RE",
                      "RO",
                      "RU",
                      "RW",
                      "BL",
                      "SH",
                      "KN",
                      "LC",
                      "MF",
                      "PM",
                      "VC",
                      "WS",
                      "SM",
                      "ST",
                      "SA",
                      "SN",
                      "RS",
                      "SC",
                      "SL",
                      "SG",
                      "SX",
                      "SK",
                      "SI",
                      "SB",
                      "SO",
                      "ZA",
                      "GS",
                      "SS",
                      "ES",
                      "LK",
                      "SD",
                      "SR",
                      "SJ",
                      "SZ",
                      "SE",
                      "CH",
                      "SY",
                      "TW",
                      "TJ",
                      "TZ",
                      "TH",
                      "TL",
                      "TG",
                      "TK",
                      "TO",
                      "TT",
                      "TN",
                      "TR",
                      "TM",
                      "TC",
                      "TV",
                      "UG",
                      "UA",
                      "AE",
                      "GB",
                      "US",
                      "UM",
                      "UY",
                      "UZ",
                      "VU",
                      "VE",
                      "VN",
                      "VG",
                      "VI",
                      "WF",
                      "EH",
                      "YE",
                      "ZM",
                      "ZW"
                    ]
                  },
                  "region": {
                    "type": "string",
                    "nullable": true
                  },
                  "city": {
                    "type": "string",
                    "nullable": true
                  },
                  "postCode": {
                    "type": "string",
                    "nullable": true
                  },
                  "address": {
                    "type": "string",
                    "nullable": true
                  },
                  "regNo": {
                    "type": "string",
                    "nullable": true
                  },
                  "taxId": {
                    "type": "string",
                    "nullable": true
                  },
                  "phone": {
                    "type": "string",
                    "nullable": true
                  },
                  "email": {
                    "type": "string",
                    "nullable": true
                  },
                  "bankIban": {
                    "type": "string",
                    "nullable": true,
                    "description": "IBAN of the bank account."
                  },
                  "bankCode": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                  },
                  "bankAccountNumber": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank account number."
                  },
                  "bankAccountType": {
                    "type": "string",
                    "nullable": true,
                    "description": "Type of the bank account."
                  },
                  "bankBic": {
                    "type": "string",
                    "nullable": true,
                    "description": "BIC/SWIFT code of the bank."
                  }
                },
                "required": [
                  "type",
                  "name",
                  "contactPerson",
                  "country",
                  "region",
                  "city",
                  "postCode",
                  "address",
                  "regNo",
                  "taxId",
                  "phone",
                  "email",
                  "bankIban",
                  "bankName",
                  "bankAddress",
                  "bankCode",
                  "bankAccountNumber",
                  "bankAccountType",
                  "bankAccountHolder",
                  "bankBic"
                ]
              },
              "downloadUrl": {
                "type": "string",
                "format": "url",
                "description": "Link to download the full settlement report document."
              },
              "externalId": {
                "type": "string",
                "description": "External invoice or reference ID for integration with external accounting systems."
              },
              "deductedFees": {
                "description": "Aggregated deducted fees for the settlement period. Included only when at least one fee is non-zero.",
                "type": "object",
                "properties": {
                  "feePerSessionAc": {
                    "type": "number",
                    "description": "Total fixed fee for AC sessions in the settlement period."
                  },
                  "feePerSessionDc": {
                    "type": "number",
                    "description": "Total fixed fee for DC sessions in the settlement period."
                  },
                  "feePerKwhAc": {
                    "type": "number",
                    "description": "Total fee per AC kWh delivered in the settlement period."
                  },
                  "feePerKwhDc": {
                    "type": "number",
                    "description": "Total fee per DC kWh delivered in the settlement period."
                  },
                  "handlingFee": {
                    "type": "number",
                    "description": "Total percentage-based handling fee for the settlement period."
                  }
                },
                "required": [
                  "feePerSessionAc",
                  "feePerSessionDc",
                  "feePerKwhAc",
                  "feePerKwhDc",
                  "handlingFee"
                ]
              },
              "partnerInvoiceId": {
                "type": "integer",
                "description": "Identifier of the latest issued partner invoice for this settlement report.\nOmitted when no partner invoice has been issued.\nRetained after a credit note is issued — the credit note is a separate document and the reference points at the invoice the report produced.\n"
              },
              "customFields": {
                "description": "Live custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the settlement report's current partner owner or are not visible to the acting administrator are omitted. The `customFields` property itself is omitted when no fields apply.\n\nThese values reflect the current custom field configuration and are not captured in the historical settlement report document, its party and settings snapshots, or derived partner invoices. Existing settlement report access controls continue to determine whether the report can be read; custom field visibility does not grant access to a report.\n",
                "type": "object",
                "additionalProperties": true
              }
            },
            "required": [
              "id",
              "partnerId",
              "number",
              "date",
              "periodStart",
              "periodEnd",
              "currencyCode",
              "totalAmount",
              "totalExpenses",
              "totalRevenue",
              "totalAwaitedRevenue",
              "totalCollectedRevenue",
              "totalCollectedRevenueFromPreviousPeriod",
              "totalEnergyCpoWh",
              "totalEnergyEmspWh",
              "supplier",
              "customer",
              "downloadUrl"
            ]
          }
        },
        "required": [
          "data"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerSettlementReportPartnerSettlementRecordsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "date": {
                  "type": "string",
                  "format": "date"
                },
                "paidAmount": {
                  "type": "number"
                },
                "note": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "date",
                "paidAmount",
                "note"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        },
        "required": [
          "data",
          "links",
          "meta"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerSettlementReportPartnerSettlementRecordCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "date": {
                "type": "string",
                "format": "date"
              },
              "paidAmount": {
                "type": "number"
              },
              "note": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "date",
              "paidAmount",
              "note"
            ]
          }
        },
        "required": [
          "data"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnertSettlementReportPartnerSettlementRecordRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "date": {
                "type": "string",
                "format": "date"
              },
              "paidAmount": {
                "type": "number"
              },
              "note": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "date",
              "paidAmount",
              "note"
            ]
          }
        },
        "required": [
          "data"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerSettlementReportPartnerSettlementRecordUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "date": {
                "type": "string",
                "format": "date"
              },
              "paidAmount": {
                "type": "number"
              },
              "note": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "date",
              "paidAmount",
              "note"
            ]
          }
        },
        "required": [
          "data"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerSettlementReportPartnerSettlementRecordDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnersListingDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "name": {
                  "type": "string",
                  "description": "Company name of the Partner.\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in every locale, use `translatedName` in Partners v2.0.\n\nNote that `filter[search]` still matches the value stored in the operator's default locale.\n"
                },
                "regNo": {
                  "type": "string",
                  "nullable": true
                },
                "vatNo": {
                  "type": "string",
                  "nullable": true
                },
                "country": {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    "AF",
                    "AX",
                    "AL",
                    "DZ",
                    "AS",
                    "AD",
                    "AO",
                    "AI",
                    "AQ",
                    "AG",
                    "AR",
                    "AM",
                    "AW",
                    "AU",
                    "AT",
                    "AZ",
                    "BS",
                    "BH",
                    "BD",
                    "BB",
                    "BY",
                    "BE",
                    "BZ",
                    "BJ",
                    "BM",
                    "BT",
                    "BO",
                    "BQ",
                    "BA",
                    "BW",
                    "BV",
                    "BR",
                    "IO",
                    "BN",
                    "BG",
                    "BF",
                    "BI",
                    "KH",
                    "CM",
                    "CA",
                    "CV",
                    "KY",
                    "CF",
                    "TD",
                    "CL",
                    "CN",
                    "CX",
                    "CC",
                    "CO",
                    "KM",
                    "CG",
                    "CD",
                    "CK",
                    "CR",
                    "CI",
                    "HR",
                    "CU",
                    "CW",
                    "CY",
                    "CZ",
                    "DK",
                    "DJ",
                    "DM",
                    "DO",
                    "EC",
                    "EG",
                    "SV",
                    "GQ",
                    "ER",
                    "EE",
                    "ET",
                    "FK",
                    "FO",
                    "FJ",
                    "FI",
                    "FR",
                    "GF",
                    "PF",
                    "TF",
                    "GA",
                    "GM",
                    "GE",
                    "DE",
                    "GH",
                    "GI",
                    "GR",
                    "GL",
                    "GD",
                    "GP",
                    "GU",
                    "GT",
                    "GG",
                    "GN",
                    "GW",
                    "GY",
                    "HT",
                    "HM",
                    "VA",
                    "HN",
                    "HK",
                    "HU",
                    "IS",
                    "IN",
                    "ID",
                    "IR",
                    "IQ",
                    "IE",
                    "IM",
                    "IL",
                    "IT",
                    "JM",
                    "JP",
                    "JE",
                    "JO",
                    "KZ",
                    "KE",
                    "KI",
                    "KP",
                    "KR",
                    "XK",
                    "KW",
                    "KG",
                    "LA",
                    "LV",
                    "LB",
                    "LS",
                    "LR",
                    "LY",
                    "LI",
                    "LT",
                    "LU",
                    "MO",
                    "MK",
                    "MG",
                    "MW",
                    "MY",
                    "MV",
                    "ML",
                    "MT",
                    "MH",
                    "MQ",
                    "MR",
                    "MU",
                    "YT",
                    "MX",
                    "FM",
                    "MD",
                    "MC",
                    "MN",
                    "ME",
                    "MS",
                    "MA",
                    "MZ",
                    "MM",
                    "NA",
                    "NR",
                    "NP",
                    "NL",
                    "NC",
                    "NZ",
                    "NI",
                    "NE",
                    "NG",
                    "NU",
                    "NF",
                    "MP",
                    "NO",
                    "OM",
                    "PK",
                    "PW",
                    "PS",
                    "PA",
                    "PG",
                    "PY",
                    "PE",
                    "PH",
                    "PN",
                    "PL",
                    "PT",
                    "PR",
                    "QA",
                    "RE",
                    "RO",
                    "RU",
                    "RW",
                    "BL",
                    "SH",
                    "KN",
                    "LC",
                    "MF",
                    "PM",
                    "VC",
                    "WS",
                    "SM",
                    "ST",
                    "SA",
                    "SN",
                    "RS",
                    "SC",
                    "SL",
                    "SG",
                    "SX",
                    "SK",
                    "SI",
                    "SB",
                    "SO",
                    "ZA",
                    "GS",
                    "SS",
                    "ES",
                    "LK",
                    "SD",
                    "SR",
                    "SJ",
                    "SZ",
                    "SE",
                    "CH",
                    "SY",
                    "TW",
                    "TJ",
                    "TZ",
                    "TH",
                    "TL",
                    "TG",
                    "TK",
                    "TO",
                    "TT",
                    "TN",
                    "TR",
                    "TM",
                    "TC",
                    "TV",
                    "UG",
                    "UA",
                    "AE",
                    "GB",
                    "US",
                    "UM",
                    "UY",
                    "UZ",
                    "VU",
                    "VE",
                    "VN",
                    "VG",
                    "VI",
                    "WF",
                    "EH",
                    "YE",
                    "ZM",
                    "ZW",
                    null
                  ]
                },
                "city": {
                  "type": "string",
                  "nullable": true,
                  "description": "City of the Partner.\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in every locale, use `translatedCity` in Partners v2.0.\n"
                },
                "postcode": {
                  "type": "string",
                  "nullable": true
                },
                "address": {
                  "type": "string",
                  "nullable": true,
                  "description": "Address of the Partner.\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in every locale, use `translatedAddress` in Partners v2.0.\n"
                },
                "contactPerson": {
                  "type": "string",
                  "nullable": true
                },
                "email": {
                  "type": "string",
                  "format": "email",
                  "nullable": true
                },
                "phone": {
                  "type": "string",
                  "nullable": true
                },
                "faultNotificationsEmail": {
                  "type": "string",
                  "format": "email",
                  "nullable": true
                },
                "monthlyPlatformFee": {
                  "type": "number",
                  "format": "decimal",
                  "nullable": true
                },
                "options": {
                  "type": "object",
                  "properties": {
                    "createUsers": {
                      "type": "boolean",
                      "default": false
                    },
                    "addUserBalance": {
                      "type": "boolean",
                      "default": false
                    },
                    "supplierOnReceipts": {
                      "type": "boolean",
                      "default": false
                    },
                    "allowToControlTariffs": {
                      "description": "Allows the Partner to update the tariff pricing.",
                      "type": "boolean",
                      "default": false
                    },
                    "allowToControlTariffGroups": {
                      "description": "In addition to `allowToControlTariffs`, the Partner would also be able to manage Tariff Groups - attach and remove Tariffs, change Tariffs order in the Tariff Group.",
                      "type": "boolean",
                      "default": false
                    }
                  }
                },
                "corporateBilling": {
                  "type": "object",
                  "properties": {
                    "enabled": {
                      "type": "boolean",
                      "default": false
                    },
                    "monthlyLimit": {
                      "type": "number",
                      "format": "decimal",
                      "nullable": true
                    },
                    "discount": {
                      "type": "number",
                      "format": "decimal",
                      "nullable": true
                    }
                  }
                },
                "externalId": {
                  "type": "string",
                  "nullable": true,
                  "description": "Third party identifier of the partner"
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "name"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerCreateDeprecated": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "Company name of the Partner.\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in every locale, use `translatedName` in Partners v2.0.\n\nNote that `filter[search]` still matches the value stored in the operator's default locale.\n"
              },
              "regNo": {
                "type": "string",
                "nullable": true
              },
              "vatNo": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW",
                  null
                ]
              },
              "city": {
                "type": "string",
                "nullable": true,
                "description": "City of the Partner.\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in every locale, use `translatedCity` in Partners v2.0.\n"
              },
              "postcode": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true,
                "description": "Address of the Partner.\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in every locale, use `translatedAddress` in Partners v2.0.\n"
              },
              "contactPerson": {
                "type": "string",
                "nullable": true
              },
              "email": {
                "type": "string",
                "format": "email",
                "nullable": true
              },
              "phone": {
                "type": "string",
                "nullable": true
              },
              "faultNotificationsEmail": {
                "type": "string",
                "format": "email",
                "nullable": true
              },
              "monthlyPlatformFee": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "options": {
                "type": "object",
                "properties": {
                  "createUsers": {
                    "type": "boolean",
                    "default": false
                  },
                  "addUserBalance": {
                    "type": "boolean",
                    "default": false
                  },
                  "supplierOnReceipts": {
                    "type": "boolean",
                    "default": false
                  },
                  "allowToControlTariffs": {
                    "description": "Allows the Partner to update the tariff pricing.",
                    "type": "boolean",
                    "default": false
                  },
                  "allowToControlTariffGroups": {
                    "description": "In addition to `allowToControlTariffs`, the Partner would also be able to manage Tariff Groups - attach and remove Tariffs, change Tariffs order in the Tariff Group.",
                    "type": "boolean",
                    "default": false
                  }
                }
              },
              "corporateBilling": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": false
                  },
                  "monthlyLimit": {
                    "type": "number",
                    "format": "decimal",
                    "nullable": true
                  },
                  "discount": {
                    "type": "number",
                    "format": "decimal",
                    "nullable": true
                  }
                }
              },
              "externalId": {
                "type": "string",
                "nullable": true,
                "description": "Third party identifier of the partner"
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "name"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerReadDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "Company name of the Partner.\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in every locale, use `translatedName` in Partners v2.0.\n\nNote that `filter[search]` still matches the value stored in the operator's default locale.\n"
              },
              "regNo": {
                "type": "string",
                "nullable": true
              },
              "vatNo": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW",
                  null
                ]
              },
              "city": {
                "type": "string",
                "nullable": true,
                "description": "City of the Partner.\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in every locale, use `translatedCity` in Partners v2.0.\n"
              },
              "postcode": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true,
                "description": "Address of the Partner.\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in every locale, use `translatedAddress` in Partners v2.0.\n"
              },
              "contactPerson": {
                "type": "string",
                "nullable": true
              },
              "email": {
                "type": "string",
                "format": "email",
                "nullable": true
              },
              "phone": {
                "type": "string",
                "nullable": true
              },
              "faultNotificationsEmail": {
                "type": "string",
                "format": "email",
                "nullable": true
              },
              "monthlyPlatformFee": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "options": {
                "type": "object",
                "properties": {
                  "createUsers": {
                    "type": "boolean",
                    "default": false
                  },
                  "addUserBalance": {
                    "type": "boolean",
                    "default": false
                  },
                  "supplierOnReceipts": {
                    "type": "boolean",
                    "default": false
                  },
                  "allowToControlTariffs": {
                    "description": "Allows the Partner to update the tariff pricing.",
                    "type": "boolean",
                    "default": false
                  },
                  "allowToControlTariffGroups": {
                    "description": "In addition to `allowToControlTariffs`, the Partner would also be able to manage Tariff Groups - attach and remove Tariffs, change Tariffs order in the Tariff Group.",
                    "type": "boolean",
                    "default": false
                  }
                }
              },
              "corporateBilling": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": false
                  },
                  "monthlyLimit": {
                    "type": "number",
                    "format": "decimal",
                    "nullable": true
                  },
                  "discount": {
                    "type": "number",
                    "format": "decimal",
                    "nullable": true
                  }
                }
              },
              "externalId": {
                "type": "string",
                "nullable": true,
                "description": "Third party identifier of the partner"
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "name"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerDeleteDeprecated": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerUpdateDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "Company name of the Partner.\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in every locale, use `translatedName` in Partners v2.0.\n\nNote that `filter[search]` still matches the value stored in the operator's default locale.\n"
              },
              "regNo": {
                "type": "string",
                "nullable": true
              },
              "vatNo": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW",
                  null
                ]
              },
              "city": {
                "type": "string",
                "nullable": true,
                "description": "City of the Partner.\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in every locale, use `translatedCity` in Partners v2.0.\n"
              },
              "postcode": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true,
                "description": "Address of the Partner.\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in every locale, use `translatedAddress` in Partners v2.0.\n"
              },
              "contactPerson": {
                "type": "string",
                "nullable": true
              },
              "email": {
                "type": "string",
                "format": "email",
                "nullable": true
              },
              "phone": {
                "type": "string",
                "nullable": true
              },
              "faultNotificationsEmail": {
                "type": "string",
                "format": "email",
                "nullable": true
              },
              "monthlyPlatformFee": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "options": {
                "type": "object",
                "properties": {
                  "createUsers": {
                    "type": "boolean",
                    "default": false
                  },
                  "addUserBalance": {
                    "type": "boolean",
                    "default": false
                  },
                  "supplierOnReceipts": {
                    "type": "boolean",
                    "default": false
                  },
                  "allowToControlTariffs": {
                    "description": "Allows the Partner to update the tariff pricing.",
                    "type": "boolean",
                    "default": false
                  },
                  "allowToControlTariffGroups": {
                    "description": "In addition to `allowToControlTariffs`, the Partner would also be able to manage Tariff Groups - attach and remove Tariffs, change Tariffs order in the Tariff Group.",
                    "type": "boolean",
                    "default": false
                  }
                }
              },
              "corporateBilling": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": false
                  },
                  "monthlyLimit": {
                    "type": "number",
                    "format": "decimal",
                    "nullable": true
                  },
                  "discount": {
                    "type": "number",
                    "format": "decimal",
                    "nullable": true
                  }
                }
              },
              "externalId": {
                "type": "string",
                "nullable": true,
                "description": "Third party identifier of the partner"
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "name"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnersListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "name": {
                  "type": "string",
                  "description": "**This property is deprecated. Use `translatedName` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedName`.\n\nNote that `filter[search]` still matches the value stored in the operator's default locale.\n\nCompany name of the Partner\n",
                  "deprecated": true
                },
                "translatedName": {
                  "description": "Company name of the Partner in every locale it has been translated to. Empty when no translations exist.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "businessName": {
                  "type": "string",
                  "description": "The Partner's business name is used when showing the name of the Partner to EV drivers and admin users."
                },
                "regNo": {
                  "type": "string",
                  "nullable": true
                },
                "vatNo": {
                  "type": "string",
                  "nullable": true
                },
                "address": {
                  "type": "string",
                  "nullable": true,
                  "description": "**This property is deprecated. Use `translatedAddress` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedAddress`.\n",
                  "deprecated": true
                },
                "translatedAddress": {
                  "description": "Address of the Partner in every locale it has been translated to. Empty when no translations exist.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "postcode": {
                  "type": "string",
                  "nullable": true
                },
                "city": {
                  "type": "string",
                  "nullable": true,
                  "description": "**This property is deprecated. Use `translatedCity` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedCity`.\n",
                  "deprecated": true
                },
                "translatedCity": {
                  "description": "City of the Partner in every locale it has been translated to. Empty when no translations exist.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "country": {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    "AF",
                    "AX",
                    "AL",
                    "DZ",
                    "AS",
                    "AD",
                    "AO",
                    "AI",
                    "AQ",
                    "AG",
                    "AR",
                    "AM",
                    "AW",
                    "AU",
                    "AT",
                    "AZ",
                    "BS",
                    "BH",
                    "BD",
                    "BB",
                    "BY",
                    "BE",
                    "BZ",
                    "BJ",
                    "BM",
                    "BT",
                    "BO",
                    "BQ",
                    "BA",
                    "BW",
                    "BV",
                    "BR",
                    "IO",
                    "BN",
                    "BG",
                    "BF",
                    "BI",
                    "KH",
                    "CM",
                    "CA",
                    "CV",
                    "KY",
                    "CF",
                    "TD",
                    "CL",
                    "CN",
                    "CX",
                    "CC",
                    "CO",
                    "KM",
                    "CG",
                    "CD",
                    "CK",
                    "CR",
                    "CI",
                    "HR",
                    "CU",
                    "CW",
                    "CY",
                    "CZ",
                    "DK",
                    "DJ",
                    "DM",
                    "DO",
                    "EC",
                    "EG",
                    "SV",
                    "GQ",
                    "ER",
                    "EE",
                    "ET",
                    "FK",
                    "FO",
                    "FJ",
                    "FI",
                    "FR",
                    "GF",
                    "PF",
                    "TF",
                    "GA",
                    "GM",
                    "GE",
                    "DE",
                    "GH",
                    "GI",
                    "GR",
                    "GL",
                    "GD",
                    "GP",
                    "GU",
                    "GT",
                    "GG",
                    "GN",
                    "GW",
                    "GY",
                    "HT",
                    "HM",
                    "VA",
                    "HN",
                    "HK",
                    "HU",
                    "IS",
                    "IN",
                    "ID",
                    "IR",
                    "IQ",
                    "IE",
                    "IM",
                    "IL",
                    "IT",
                    "JM",
                    "JP",
                    "JE",
                    "JO",
                    "KZ",
                    "KE",
                    "KI",
                    "KP",
                    "KR",
                    "XK",
                    "KW",
                    "KG",
                    "LA",
                    "LV",
                    "LB",
                    "LS",
                    "LR",
                    "LY",
                    "LI",
                    "LT",
                    "LU",
                    "MO",
                    "MK",
                    "MG",
                    "MW",
                    "MY",
                    "MV",
                    "ML",
                    "MT",
                    "MH",
                    "MQ",
                    "MR",
                    "MU",
                    "YT",
                    "MX",
                    "FM",
                    "MD",
                    "MC",
                    "MN",
                    "ME",
                    "MS",
                    "MA",
                    "MZ",
                    "MM",
                    "NA",
                    "NR",
                    "NP",
                    "NL",
                    "NC",
                    "NZ",
                    "NI",
                    "NE",
                    "NG",
                    "NU",
                    "NF",
                    "MP",
                    "NO",
                    "OM",
                    "PK",
                    "PW",
                    "PS",
                    "PA",
                    "PG",
                    "PY",
                    "PE",
                    "PH",
                    "PN",
                    "PL",
                    "PT",
                    "PR",
                    "QA",
                    "RE",
                    "RO",
                    "RU",
                    "RW",
                    "BL",
                    "SH",
                    "KN",
                    "LC",
                    "MF",
                    "PM",
                    "VC",
                    "WS",
                    "SM",
                    "ST",
                    "SA",
                    "SN",
                    "RS",
                    "SC",
                    "SL",
                    "SG",
                    "SX",
                    "SK",
                    "SI",
                    "SB",
                    "SO",
                    "ZA",
                    "GS",
                    "SS",
                    "ES",
                    "LK",
                    "SD",
                    "SR",
                    "SJ",
                    "SZ",
                    "SE",
                    "CH",
                    "SY",
                    "TW",
                    "TJ",
                    "TZ",
                    "TH",
                    "TL",
                    "TG",
                    "TK",
                    "TO",
                    "TT",
                    "TN",
                    "TR",
                    "TM",
                    "TC",
                    "TV",
                    "UG",
                    "UA",
                    "AE",
                    "GB",
                    "US",
                    "UM",
                    "UY",
                    "UZ",
                    "VU",
                    "VE",
                    "VN",
                    "VG",
                    "VI",
                    "WF",
                    "EH",
                    "YE",
                    "ZM",
                    "ZW",
                    null
                  ]
                },
                "region": {
                  "description": "When country is not in US, AU, CA, UM or RO, you can provide the region",
                  "deprecated": true,
                  "type": "string",
                  "nullable": true
                },
                "translatedRegion": {
                  "description": "Region of the Partner in every locale it has been translated to. Empty when no translations exist.\n\nAbsent from the response when the Partner's country supports states (US, AU, CA, UM, RO) — `state` applies instead and is not translatable.\n",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "state": {
                  "description": "When the selected country is one of US, AU, CA, UM or RO",
                  "anyOf": [
                    {
                      "title": "US State",
                      "description": "When the country is US.",
                      "type": "string",
                      "enum": [
                        "AL",
                        "AK",
                        "AS",
                        "AZ",
                        "AR",
                        "CA",
                        "CO",
                        "CT",
                        "DE",
                        "DC",
                        "FM",
                        "FL",
                        "GA",
                        "GU",
                        "HI",
                        "ID",
                        "IL",
                        "IN",
                        "IA",
                        "KS",
                        "KY",
                        "LA",
                        "ME",
                        "MH",
                        "MD",
                        "MA",
                        "MI",
                        "MN",
                        "MS",
                        "MO",
                        "MT",
                        "NE",
                        "NV",
                        "NH",
                        "NJ",
                        "NM",
                        "NY",
                        "NC",
                        "ND",
                        "MP",
                        "OH",
                        "OK",
                        "OR",
                        "PW",
                        "PA",
                        "PR",
                        "RI",
                        "SC",
                        "SD",
                        "TN",
                        "TX",
                        "UT",
                        "VT",
                        "VI",
                        "VA",
                        "WA",
                        "WV",
                        "WI",
                        "WY"
                      ]
                    },
                    {
                      "title": "Australian State",
                      "description": "When the country is AU.",
                      "type": "string",
                      "enum": [
                        "NSW",
                        "VIC",
                        "QLD",
                        "WA",
                        "SA",
                        "TAS",
                        "ACT",
                        "NT",
                        "JBT",
                        "CX",
                        "NF",
                        "CC",
                        "AQ",
                        "CSI",
                        "ACI",
                        "HM"
                      ]
                    },
                    {
                      "title": "Canadian Province",
                      "description": "When the country is CA.",
                      "type": "string",
                      "enum": [
                        "AB",
                        "BC",
                        "MB",
                        "NB",
                        "NL",
                        "NT",
                        "NS",
                        "NU",
                        "ON",
                        "PE",
                        "QC",
                        "SK",
                        "YT"
                      ]
                    },
                    {
                      "title": "US Minor Outlying Islands Territory",
                      "description": "When the country is UM.",
                      "type": "string",
                      "enum": [
                        "81",
                        "84",
                        "85",
                        "67",
                        "89",
                        "71",
                        "76",
                        "95",
                        "79"
                      ]
                    },
                    {
                      "title": "Romanian County",
                      "description": "When the country is RO.",
                      "type": "string",
                      "enum": [
                        "AB",
                        "AR",
                        "AG",
                        "BC",
                        "BH",
                        "BN",
                        "BT",
                        "BV",
                        "BR",
                        "B",
                        "BZ",
                        "CL",
                        "CS",
                        "CT",
                        "CV",
                        "DB",
                        "DJ",
                        "GL",
                        "GR",
                        "GJ",
                        "HR",
                        "HD",
                        "IL",
                        "IS",
                        "IF",
                        "MM",
                        "MH",
                        "MS",
                        "NT",
                        "OT",
                        "PH",
                        "SM",
                        "SJ",
                        "SB",
                        "SV",
                        "TR",
                        "TM",
                        "TL",
                        "VS",
                        "VL",
                        "VN"
                      ]
                    }
                  ]
                },
                "contactDetails": {
                  "type": "object",
                  "nullable": true,
                  "properties": {
                    "administrative": {
                      "type": "object",
                      "nullable": true,
                      "properties": {
                        "contactPerson": {
                          "type": "string",
                          "nullable": true
                        },
                        "email": {
                          "type": "string",
                          "format": "email",
                          "nullable": true
                        },
                        "phone": {
                          "type": "string",
                          "nullable": true
                        }
                      }
                    },
                    "technical": {
                      "type": "object",
                      "nullable": true,
                      "properties": {
                        "contactPerson": {
                          "type": "string",
                          "nullable": true
                        },
                        "email": {
                          "type": "string",
                          "format": "email",
                          "nullable": true
                        },
                        "phone": {
                          "type": "string",
                          "nullable": true
                        }
                      }
                    },
                    "billing": {
                      "type": "object",
                      "nullable": true,
                      "properties": {
                        "contactPerson": {
                          "type": "string",
                          "nullable": true
                        },
                        "email": {
                          "type": "string",
                          "format": "email",
                          "nullable": true
                        },
                        "phone": {
                          "type": "string",
                          "nullable": true
                        }
                      }
                    }
                  }
                },
                "notifications": {
                  "type": "object",
                  "properties": {
                    "technical": {
                      "type": "object",
                      "properties": {
                        "chargePointFaults": {
                          "type": "boolean",
                          "default": false
                        }
                      }
                    },
                    "billing": {
                      "type": "object",
                      "properties": {
                        "settlementReports": {
                          "type": "boolean",
                          "default": false
                        },
                        "settlementReportLanguage": {
                          "description": "IETF language tag.",
                          "type": "string",
                          "enum": [
                            "en",
                            "bg",
                            "mk",
                            "el",
                            "zh-CN",
                            "zh-HK",
                            "zh-TW",
                            "pt",
                            "sl",
                            "hr",
                            "it",
                            "de",
                            "hu",
                            "fi",
                            "is",
                            "sv-SE",
                            "da-DK",
                            "nb-NO",
                            "tr-TR",
                            "es-ES",
                            "ar",
                            "ary",
                            "he",
                            "ta",
                            "ms",
                            "cy",
                            "sr",
                            "fr",
                            "fr-MA",
                            "ro",
                            "lt",
                            "uk",
                            "ru",
                            "nl",
                            "ca-ES",
                            "id",
                            "ar-EG",
                            "pl",
                            "lo",
                            "th",
                            "sq-XK",
                            "ga-IE",
                            "bs",
                            "ja",
                            "ko-KR",
                            "cs",
                            "lv",
                            "et",
                            "az",
                            "ka",
                            "af",
                            "hi",
                            "de-CH",
                            "fr-CH",
                            "it-CH",
                            "en-GB"
                          ]
                        }
                      }
                    }
                  }
                },
                "monthlyPlatformFee": {
                  "type": "number",
                  "format": "decimal",
                  "nullable": true
                },
                "receiptsPrefix": {
                  "type": "string",
                  "description": "Prefix used for the Partner's receipt numbering. Takes effect only when `options.supplierOnReceipts` is `true`."
                },
                "receiptsStartingNumber": {
                  "type": "string",
                  "pattern": "^\\d+(\\.\\d+)?$",
                  "description": "Starting number for the Partner's receipt numbering. Numeric string; leading zeros are preserved. Takes effect only when `options.supplierOnReceipts` is `true`."
                },
                "invoiceNumberPrefix": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 10,
                  "description": "Prefix used for the Partner's invoice numbering. Must be globally unique across all partner invoice prefixes, invoice integration prefixes, and previously-issued invoice prefixes. Takes effect only when `options.supplierOnInvoices` is `true`."
                },
                "startingInvoiceNumber": {
                  "type": "string",
                  "pattern": "^\\d+$",
                  "description": "Starting number for the Partner's invoice numbering. Non-negative numeric string; leading zeros are preserved. Takes effect only when `options.supplierOnInvoices` is `true`."
                },
                "tags": {
                  "type": "array",
                  "description": "Tags can be used for filtering and grouping partners by tag (see the tag filter on the partners list). Partner tags are managed in the operator portal and are read-only via the API. Empty array when the partner has no tags.",
                  "items": {
                    "type": "string"
                  }
                },
                "options": {
                  "type": "object",
                  "properties": {
                    "userVisibility": {
                      "type": "string",
                      "enum": [
                        "none",
                        "all",
                        "corporateBillingOnly"
                      ],
                      "default": "none",
                      "description": "Controls which invited users are visible to Partner admins:\n- `none`: Partner admins cannot see any invited users\n- `all`: Partner admins can see all users who accepted their invite\n- `corporateBillingOnly`: Partner admins can see only users whose invite has corporate billing enabled\n"
                    },
                    "allowViewingUsersWhoAcceptedInvite": {
                      "type": "boolean",
                      "default": false,
                      "deprecated": true,
                      "description": "**Deprecated.** Use `userVisibility` instead.\nWhen enabled (`true`), maps to `userVisibility: all`. When disabled (`false`), maps to `userVisibility: none`.\nIf both `userVisibility` and `allowViewingUsersWhoAcceptedInvite` are provided, `userVisibility` takes precedence.\n"
                    },
                    "createUsers": {
                      "type": "boolean",
                      "default": false
                    },
                    "addUserBalance": {
                      "type": "boolean",
                      "default": false,
                      "description": "When set to false the API tokens related to this partner would not receive the users' balance in the response."
                    },
                    "allowViewingAllSessionsOfInvitedUsers": {
                      "type": "boolean",
                      "default": true,
                      "description": "If true, partner admins can view all sessions of users who accepted their invites. If false, partner admins can only view sessions that occurred on their charge points or were paid with their corporate billing."
                    },
                    "supplierOnReceipts": {
                      "type": "boolean",
                      "default": false
                    },
                    "supplierOnInvoices": {
                      "type": "boolean",
                      "default": false,
                      "description": "When enabled, the Partner's data is used on invoices issued for sessions linked to this Partner."
                    },
                    "allowToControlTariffs": {
                      "description": "Allows the Partner to update the tariff pricing.",
                      "type": "boolean",
                      "default": false
                    },
                    "allowToControlTariffGroups": {
                      "description": "In addition to `allowToControlTariffs`, the Partner would also be able to manage Tariff Groups - attach and remove Tariffs, change Tariffs order in the Tariff Group.",
                      "type": "boolean",
                      "default": false
                    },
                    "allowToControlCpConfigurations": {
                      "type": "boolean",
                      "default": false,
                      "description": "Allows the Partner to control configurations on their charge points."
                    },
                    "allowToLogExemptPeriods": {
                      "type": "boolean",
                      "default": false,
                      "description": "Allows Partner admins with the Maintain permission from the DowntimePeriods permission set to log exempt periods."
                    },
                    "settlementReportBreakdown": {
                      "default": "none",
                      "description": "Controls how settlement report line items are aggregated for the Partner:\n- `none`: No breakdown, single aggregated report.\n- `by_location`: Separate breakdown per location.\n- `by_partner_contract`: Separate breakdown per partner contract.\n- `by_location_and_partner_contract`: Breakdown by both location and partner contract.\n",
                      "type": "string",
                      "enum": [
                        "none",
                        "by_location",
                        "by_partner_contract",
                        "by_location_and_partner_contract"
                      ]
                    }
                  }
                },
                "corporateBilling": {
                  "type": "object",
                  "properties": {
                    "enabled": {
                      "type": "boolean",
                      "default": false
                    },
                    "monthlyLimit": {
                      "type": "number",
                      "format": "decimal",
                      "deprecated": true,
                      "description": "**Deprecated.** Use `limit` with `frequency` instead.\nThis field returns the same value as `limit` when `frequency` is 'monthly'.\n"
                    },
                    "frequency": {
                      "type": "string",
                      "enum": [
                        "monthly",
                        "quarterly",
                        "semiAnnually",
                        "annually"
                      ],
                      "description": "The billing frequency for the limit."
                    },
                    "limit": {
                      "type": "number",
                      "format": "decimal",
                      "minimum": 0,
                      "description": "The billing limit for the specified frequency."
                    },
                    "discount": {
                      "type": "number",
                      "format": "decimal"
                    }
                  }
                },
                "reimbursement": {
                  "description": "Home-charging reimbursement settings of the Partner.\n\nOmitted when the home-charging reimbursement feature is disabled.\n\n`payoutMode` is always present; it defaults to `operator_managed` until it is changed.\n",
                  "type": "object",
                  "properties": {
                    "enabled": {
                      "type": "boolean",
                      "description": "Whether home-charging reimbursement is enabled for the Partner.\n\nDisabling it stops future reimbursement for the Partner. The reimbursement policies that are currently active for it remain attached but become ineligible, and the invites attached to them stop producing reimbursement records. Reimbursement records and reports that already exist are not affected.\n"
                    },
                    "payoutMode": {
                      "description": "Determines who pays out the home-charging reimbursement to the drivers:\n- **operator_managed**: The operator handles the payouts on behalf of the Partner.\n- **partner_managed**: The Partner handles the payouts to their own drivers.\n",
                      "type": "string",
                      "enum": [
                        "operator_managed",
                        "partner_managed"
                      ]
                    },
                    "cycle": {
                      "description": "How often the home-charging reimbursement is calculated and reported:\n- **monthly**: Reimbursement is processed every month.\n- **quarterly**: Reimbursement is processed every three months.\n- **annual**: Reimbursement is processed every year.\n",
                      "type": "string",
                      "enum": [
                        "monthly",
                        "quarterly",
                        "annual"
                      ]
                    }
                  },
                  "required": [
                    "enabled",
                    "payoutMode"
                  ]
                },
                "externalId": {
                  "type": "string",
                  "nullable": true,
                  "description": "Third party identifier of the partner"
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "bankDetails": {
                  "type": "object",
                  "properties": {
                    "bankIban": {
                      "type": "string",
                      "nullable": true,
                      "description": "IBAN of the bank account."
                    },
                    "bankCode": {
                      "type": "string",
                      "nullable": true,
                      "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                    },
                    "bankAccountNumber": {
                      "type": "string",
                      "nullable": true,
                      "description": "Bank account number."
                    },
                    "bankAccountType": {
                      "type": "string",
                      "nullable": true,
                      "description": "Type of the bank account."
                    },
                    "bankBic": {
                      "type": "string",
                      "nullable": true,
                      "description": "BIC/SWIFT code of the bank."
                    },
                    "bankName": {
                      "type": "string",
                      "nullable": true,
                      "description": "**This property is deprecated. Use `translatedBankName` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedBankName`.\n\nName of the bank.\n",
                      "deprecated": true
                    },
                    "bankAddress": {
                      "type": "string",
                      "nullable": true,
                      "description": "**This property is deprecated. Use `translatedBankAddress` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedBankAddress`.\n\nAddress of the bank.\n",
                      "deprecated": true
                    },
                    "bankAccountHolder": {
                      "type": "string",
                      "nullable": true,
                      "description": "**This property is deprecated. Use `translatedBankAccountHolder` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedBankAccountHolder`.\n\nName of the bank account holder.\n",
                      "deprecated": true
                    },
                    "translatedBankName": {
                      "description": "Name of the bank in every locale it has been translated to. Empty when no translations exist.\n\nReturned only when the bank name field is enabled in the operator's bank details settings.\n",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "translatedBankAddress": {
                      "description": "Address of the bank in every locale it has been translated to. Empty when no translations exist.\n\nReturned only when the bank address field is enabled in the operator's bank details settings.\n",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "translatedBankAccountHolder": {
                      "description": "Name of the bank account holder in every locale it has been translated to. Empty when no translations exist.\n\nReturned only when the bank account holder field is enabled in the operator's bank details settings.\n",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                },
                "customFields": {
                  "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: boolean is a JSON boolean; text and long text are strings; email is an email-formatted string; URL is an HTTP or HTTPS URL string; number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; date is an ISO 8601 `YYYY-MM-DD` string; date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the partner are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                  "type": "object",
                  "additionalProperties": true
                },
                "notes": {
                  "type": "array",
                  "readOnly": true,
                  "items": {
                    "type": "object",
                    "required": [
                      "id",
                      "summary",
                      "pinned",
                      "createdAt",
                      "updatedAt"
                    ],
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Unique identifier for the note",
                        "example": 123
                      },
                      "summary": {
                        "type": "string",
                        "maxLength": 255,
                        "description": "Short summary or title of the note",
                        "example": "Important maintenance note"
                      },
                      "details": {
                        "type": "string",
                        "maxLength": 2000,
                        "description": "Detailed content of the note. Omitted when empty.",
                        "example": "This charge point requires monthly inspection due to high usage."
                      },
                      "pinned": {
                        "type": "boolean",
                        "description": "Whether the note is pinned (appears first in listings)",
                        "example": true
                      },
                      "createdByAdminId": {
                        "type": "integer",
                        "description": "ID of the admin who created the note. Omitted when unavailable.",
                        "example": 1
                      },
                      "updatedByAdminId": {
                        "type": "integer",
                        "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                        "example": 2
                      },
                      "createdAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO-8601 timestamp when the note was created",
                        "example": "2025-12-16T10:00:00Z"
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO-8601 timestamp when the note was last updated",
                        "example": "2025-12-16T12:00:00Z"
                      }
                    }
                  },
                  "description": "If `include[]=notes` is provided with the request, the notes attached to this partner will be provided here. Notes are returned with pinned notes first, then ordered by creation date descending."
                }
              },
              "required": [
                "id",
                "operatorId",
                "name",
                "translatedName",
                "translatedAddress",
                "translatedCity"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string",
                "description": "**This property is deprecated. Use `translatedName` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedName`.\n\nNote that `filter[search]` still matches the value stored in the operator's default locale.\n\nCompany name of the Partner\n",
                "deprecated": true
              },
              "translatedName": {
                "description": "Company name of the Partner in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "businessName": {
                "type": "string",
                "description": "The Partner's business name is used when showing the name of the Partner to EV drivers and admin users."
              },
              "regNo": {
                "type": "string",
                "nullable": true
              },
              "vatNo": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true,
                "description": "**This property is deprecated. Use `translatedAddress` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedAddress`.\n",
                "deprecated": true
              },
              "translatedAddress": {
                "description": "Address of the Partner in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "postcode": {
                "type": "string",
                "nullable": true
              },
              "city": {
                "type": "string",
                "nullable": true,
                "description": "**This property is deprecated. Use `translatedCity` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedCity`.\n",
                "deprecated": true
              },
              "translatedCity": {
                "description": "City of the Partner in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "country": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW",
                  null
                ]
              },
              "region": {
                "description": "When country is not in US, AU, CA, UM or RO, you can provide the region",
                "deprecated": true,
                "type": "string",
                "nullable": true
              },
              "translatedRegion": {
                "description": "Region of the Partner in every locale it has been translated to. Empty when no translations exist.\n\nAbsent from the response when the Partner's country supports states (US, AU, CA, UM, RO) — `state` applies instead and is not translatable.\n",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "state": {
                "description": "When the selected country is one of US, AU, CA, UM or RO",
                "anyOf": [
                  {
                    "title": "US State",
                    "description": "When the country is US.",
                    "type": "string",
                    "enum": [
                      "AL",
                      "AK",
                      "AS",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FM",
                      "FL",
                      "GA",
                      "GU",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MH",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "MP",
                      "OH",
                      "OK",
                      "OR",
                      "PW",
                      "PA",
                      "PR",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VI",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY"
                    ]
                  },
                  {
                    "title": "Australian State",
                    "description": "When the country is AU.",
                    "type": "string",
                    "enum": [
                      "NSW",
                      "VIC",
                      "QLD",
                      "WA",
                      "SA",
                      "TAS",
                      "ACT",
                      "NT",
                      "JBT",
                      "CX",
                      "NF",
                      "CC",
                      "AQ",
                      "CSI",
                      "ACI",
                      "HM"
                    ]
                  },
                  {
                    "title": "Canadian Province",
                    "description": "When the country is CA.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "BC",
                      "MB",
                      "NB",
                      "NL",
                      "NT",
                      "NS",
                      "NU",
                      "ON",
                      "PE",
                      "QC",
                      "SK",
                      "YT"
                    ]
                  },
                  {
                    "title": "US Minor Outlying Islands Territory",
                    "description": "When the country is UM.",
                    "type": "string",
                    "enum": [
                      "81",
                      "84",
                      "85",
                      "67",
                      "89",
                      "71",
                      "76",
                      "95",
                      "79"
                    ]
                  },
                  {
                    "title": "Romanian County",
                    "description": "When the country is RO.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "AR",
                      "AG",
                      "BC",
                      "BH",
                      "BN",
                      "BT",
                      "BV",
                      "BR",
                      "B",
                      "BZ",
                      "CL",
                      "CS",
                      "CT",
                      "CV",
                      "DB",
                      "DJ",
                      "GL",
                      "GR",
                      "GJ",
                      "HR",
                      "HD",
                      "IL",
                      "IS",
                      "IF",
                      "MM",
                      "MH",
                      "MS",
                      "NT",
                      "OT",
                      "PH",
                      "SM",
                      "SJ",
                      "SB",
                      "SV",
                      "TR",
                      "TM",
                      "TL",
                      "VS",
                      "VL",
                      "VN"
                    ]
                  }
                ]
              },
              "contactDetails": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "administrative": {
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "contactPerson": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "format": "email",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  "technical": {
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "contactPerson": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "format": "email",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  "billing": {
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "contactPerson": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "format": "email",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  }
                }
              },
              "notifications": {
                "type": "object",
                "properties": {
                  "technical": {
                    "type": "object",
                    "properties": {
                      "chargePointFaults": {
                        "type": "boolean",
                        "default": false
                      }
                    }
                  },
                  "billing": {
                    "type": "object",
                    "properties": {
                      "settlementReports": {
                        "type": "boolean",
                        "default": false
                      },
                      "settlementReportLanguage": {
                        "description": "IETF language tag.",
                        "type": "string",
                        "enum": [
                          "en",
                          "bg",
                          "mk",
                          "el",
                          "zh-CN",
                          "zh-HK",
                          "zh-TW",
                          "pt",
                          "sl",
                          "hr",
                          "it",
                          "de",
                          "hu",
                          "fi",
                          "is",
                          "sv-SE",
                          "da-DK",
                          "nb-NO",
                          "tr-TR",
                          "es-ES",
                          "ar",
                          "ary",
                          "he",
                          "ta",
                          "ms",
                          "cy",
                          "sr",
                          "fr",
                          "fr-MA",
                          "ro",
                          "lt",
                          "uk",
                          "ru",
                          "nl",
                          "ca-ES",
                          "id",
                          "ar-EG",
                          "pl",
                          "lo",
                          "th",
                          "sq-XK",
                          "ga-IE",
                          "bs",
                          "ja",
                          "ko-KR",
                          "cs",
                          "lv",
                          "et",
                          "az",
                          "ka",
                          "af",
                          "hi",
                          "de-CH",
                          "fr-CH",
                          "it-CH",
                          "en-GB"
                        ]
                      }
                    }
                  }
                }
              },
              "monthlyPlatformFee": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "receiptsPrefix": {
                "type": "string",
                "description": "Prefix used for the Partner's receipt numbering. Takes effect only when `options.supplierOnReceipts` is `true`."
              },
              "receiptsStartingNumber": {
                "type": "string",
                "pattern": "^\\d+(\\.\\d+)?$",
                "description": "Starting number for the Partner's receipt numbering. Numeric string; leading zeros are preserved. Takes effect only when `options.supplierOnReceipts` is `true`."
              },
              "invoiceNumberPrefix": {
                "type": "string",
                "minLength": 1,
                "maxLength": 10,
                "description": "Prefix used for the Partner's invoice numbering. Must be globally unique across all partner invoice prefixes, invoice integration prefixes, and previously-issued invoice prefixes. Takes effect only when `options.supplierOnInvoices` is `true`."
              },
              "startingInvoiceNumber": {
                "type": "string",
                "pattern": "^\\d+$",
                "description": "Starting number for the Partner's invoice numbering. Non-negative numeric string; leading zeros are preserved. Takes effect only when `options.supplierOnInvoices` is `true`."
              },
              "tags": {
                "type": "array",
                "description": "Tags can be used for filtering and grouping partners by tag (see the tag filter on the partners list). Partner tags are managed in the operator portal and are read-only via the API. Empty array when the partner has no tags.",
                "items": {
                  "type": "string"
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "userVisibility": {
                    "type": "string",
                    "enum": [
                      "none",
                      "all",
                      "corporateBillingOnly"
                    ],
                    "default": "none",
                    "description": "Controls which invited users are visible to Partner admins:\n- `none`: Partner admins cannot see any invited users\n- `all`: Partner admins can see all users who accepted their invite\n- `corporateBillingOnly`: Partner admins can see only users whose invite has corporate billing enabled\n"
                  },
                  "allowViewingUsersWhoAcceptedInvite": {
                    "type": "boolean",
                    "default": false,
                    "deprecated": true,
                    "description": "**Deprecated.** Use `userVisibility` instead.\nWhen enabled (`true`), maps to `userVisibility: all`. When disabled (`false`), maps to `userVisibility: none`.\nIf both `userVisibility` and `allowViewingUsersWhoAcceptedInvite` are provided, `userVisibility` takes precedence.\n"
                  },
                  "createUsers": {
                    "type": "boolean",
                    "default": false
                  },
                  "addUserBalance": {
                    "type": "boolean",
                    "default": false,
                    "description": "When set to false the API tokens related to this partner would not receive the users' balance in the response."
                  },
                  "allowViewingAllSessionsOfInvitedUsers": {
                    "type": "boolean",
                    "default": true,
                    "description": "If true, partner admins can view all sessions of users who accepted their invites. If false, partner admins can only view sessions that occurred on their charge points or were paid with their corporate billing."
                  },
                  "supplierOnReceipts": {
                    "type": "boolean",
                    "default": false
                  },
                  "supplierOnInvoices": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled, the Partner's data is used on invoices issued for sessions linked to this Partner."
                  },
                  "allowToControlTariffs": {
                    "description": "Allows the Partner to update the tariff pricing.",
                    "type": "boolean",
                    "default": false
                  },
                  "allowToControlTariffGroups": {
                    "description": "In addition to `allowToControlTariffs`, the Partner would also be able to manage Tariff Groups - attach and remove Tariffs, change Tariffs order in the Tariff Group.",
                    "type": "boolean",
                    "default": false
                  },
                  "allowToControlCpConfigurations": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allows the Partner to control configurations on their charge points."
                  },
                  "allowToLogExemptPeriods": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allows Partner admins with the Maintain permission from the DowntimePeriods permission set to log exempt periods."
                  },
                  "settlementReportBreakdown": {
                    "default": "none",
                    "description": "Controls how settlement report line items are aggregated for the Partner:\n- `none`: No breakdown, single aggregated report.\n- `by_location`: Separate breakdown per location.\n- `by_partner_contract`: Separate breakdown per partner contract.\n- `by_location_and_partner_contract`: Breakdown by both location and partner contract.\n",
                    "type": "string",
                    "enum": [
                      "none",
                      "by_location",
                      "by_partner_contract",
                      "by_location_and_partner_contract"
                    ]
                  }
                }
              },
              "corporateBilling": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": false
                  },
                  "monthlyLimit": {
                    "type": "number",
                    "format": "decimal",
                    "deprecated": true,
                    "description": "**Deprecated.** Use `limit` with `frequency` instead.\nThis field returns the same value as `limit` when `frequency` is 'monthly'.\n"
                  },
                  "frequency": {
                    "type": "string",
                    "enum": [
                      "monthly",
                      "quarterly",
                      "semiAnnually",
                      "annually"
                    ],
                    "description": "The billing frequency for the limit."
                  },
                  "limit": {
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "description": "The billing limit for the specified frequency."
                  },
                  "discount": {
                    "type": "number",
                    "format": "decimal"
                  }
                }
              },
              "reimbursement": {
                "description": "Home-charging reimbursement settings of the Partner.\n\nOmitted when the home-charging reimbursement feature is disabled.\n\n`payoutMode` is always present; it defaults to `operator_managed` until it is changed.\n",
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "Whether home-charging reimbursement is enabled for the Partner.\n\nDisabling it stops future reimbursement for the Partner. The reimbursement policies that are currently active for it remain attached but become ineligible, and the invites attached to them stop producing reimbursement records. Reimbursement records and reports that already exist are not affected.\n"
                  },
                  "payoutMode": {
                    "description": "Determines who pays out the home-charging reimbursement to the drivers:\n- **operator_managed**: The operator handles the payouts on behalf of the Partner.\n- **partner_managed**: The Partner handles the payouts to their own drivers.\n",
                    "type": "string",
                    "enum": [
                      "operator_managed",
                      "partner_managed"
                    ]
                  },
                  "cycle": {
                    "description": "How often the home-charging reimbursement is calculated and reported:\n- **monthly**: Reimbursement is processed every month.\n- **quarterly**: Reimbursement is processed every three months.\n- **annual**: Reimbursement is processed every year.\n",
                    "type": "string",
                    "enum": [
                      "monthly",
                      "quarterly",
                      "annual"
                    ]
                  }
                },
                "required": [
                  "enabled",
                  "payoutMode"
                ]
              },
              "externalId": {
                "type": "string",
                "nullable": true,
                "description": "Third party identifier of the partner"
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "bankDetails": {
                "type": "object",
                "properties": {
                  "bankIban": {
                    "type": "string",
                    "nullable": true,
                    "description": "IBAN of the bank account."
                  },
                  "bankCode": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                  },
                  "bankAccountNumber": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank account number."
                  },
                  "bankAccountType": {
                    "type": "string",
                    "nullable": true,
                    "description": "Type of the bank account."
                  },
                  "bankBic": {
                    "type": "string",
                    "nullable": true,
                    "description": "BIC/SWIFT code of the bank."
                  },
                  "bankName": {
                    "type": "string",
                    "nullable": true,
                    "description": "**This property is deprecated. Use `translatedBankName` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedBankName`.\n\nName of the bank.\n",
                    "deprecated": true
                  },
                  "bankAddress": {
                    "type": "string",
                    "nullable": true,
                    "description": "**This property is deprecated. Use `translatedBankAddress` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedBankAddress`.\n\nAddress of the bank.\n",
                    "deprecated": true
                  },
                  "bankAccountHolder": {
                    "type": "string",
                    "nullable": true,
                    "description": "**This property is deprecated. Use `translatedBankAccountHolder` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedBankAccountHolder`.\n\nName of the bank account holder.\n",
                    "deprecated": true
                  },
                  "translatedBankName": {
                    "description": "Name of the bank in every locale it has been translated to. Empty when no translations exist.\n\nReturned only when the bank name field is enabled in the operator's bank details settings.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "translatedBankAddress": {
                    "description": "Address of the bank in every locale it has been translated to. Empty when no translations exist.\n\nReturned only when the bank address field is enabled in the operator's bank details settings.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "translatedBankAccountHolder": {
                    "description": "Name of the bank account holder in every locale it has been translated to. Empty when no translations exist.\n\nReturned only when the bank account holder field is enabled in the operator's bank details settings.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              },
              "customFields": {
                "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: boolean is a JSON boolean; text and long text are strings; email is an email-formatted string; URL is an HTTP or HTTPS URL string; number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; date is an ISO 8601 `YYYY-MM-DD` string; date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the partner are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                "type": "object",
                "additionalProperties": true
              },
              "notes": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "summary",
                    "pinned",
                    "createdAt",
                    "updatedAt"
                  ],
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Unique identifier for the note",
                      "example": 123
                    },
                    "summary": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "Short summary or title of the note",
                      "example": "Important maintenance note"
                    },
                    "details": {
                      "type": "string",
                      "maxLength": 2000,
                      "description": "Detailed content of the note. Omitted when empty.",
                      "example": "This charge point requires monthly inspection due to high usage."
                    },
                    "pinned": {
                      "type": "boolean",
                      "description": "Whether the note is pinned (appears first in listings)",
                      "example": true
                    },
                    "createdByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who created the note. Omitted when unavailable.",
                      "example": 1
                    },
                    "updatedByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                      "example": 2
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was created",
                      "example": "2025-12-16T10:00:00Z"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was last updated",
                      "example": "2025-12-16T12:00:00Z"
                    }
                  }
                },
                "description": "If `include[]=notes` is provided with the request, the notes attached to this partner will be provided here. Notes are returned with pinned notes first, then ordered by creation date descending."
              }
            },
            "required": [
              "id",
              "operatorId",
              "name",
              "translatedName",
              "translatedAddress",
              "translatedCity"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string",
                "description": "**This property is deprecated. Use `translatedName` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedName`.\n\nNote that `filter[search]` still matches the value stored in the operator's default locale.\n\nCompany name of the Partner\n",
                "deprecated": true
              },
              "translatedName": {
                "description": "Company name of the Partner in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "businessName": {
                "type": "string",
                "description": "The Partner's business name is used when showing the name of the Partner to EV drivers and admin users."
              },
              "regNo": {
                "type": "string",
                "nullable": true
              },
              "vatNo": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true,
                "description": "**This property is deprecated. Use `translatedAddress` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedAddress`.\n",
                "deprecated": true
              },
              "translatedAddress": {
                "description": "Address of the Partner in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "postcode": {
                "type": "string",
                "nullable": true
              },
              "city": {
                "type": "string",
                "nullable": true,
                "description": "**This property is deprecated. Use `translatedCity` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedCity`.\n",
                "deprecated": true
              },
              "translatedCity": {
                "description": "City of the Partner in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "country": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW",
                  null
                ]
              },
              "region": {
                "description": "When country is not in US, AU, CA, UM or RO, you can provide the region",
                "deprecated": true,
                "type": "string",
                "nullable": true
              },
              "translatedRegion": {
                "description": "Region of the Partner in every locale it has been translated to. Empty when no translations exist.\n\nAbsent from the response when the Partner's country supports states (US, AU, CA, UM, RO) — `state` applies instead and is not translatable.\n",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "state": {
                "description": "When the selected country is one of US, AU, CA, UM or RO",
                "anyOf": [
                  {
                    "title": "US State",
                    "description": "When the country is US.",
                    "type": "string",
                    "enum": [
                      "AL",
                      "AK",
                      "AS",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FM",
                      "FL",
                      "GA",
                      "GU",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MH",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "MP",
                      "OH",
                      "OK",
                      "OR",
                      "PW",
                      "PA",
                      "PR",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VI",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY"
                    ]
                  },
                  {
                    "title": "Australian State",
                    "description": "When the country is AU.",
                    "type": "string",
                    "enum": [
                      "NSW",
                      "VIC",
                      "QLD",
                      "WA",
                      "SA",
                      "TAS",
                      "ACT",
                      "NT",
                      "JBT",
                      "CX",
                      "NF",
                      "CC",
                      "AQ",
                      "CSI",
                      "ACI",
                      "HM"
                    ]
                  },
                  {
                    "title": "Canadian Province",
                    "description": "When the country is CA.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "BC",
                      "MB",
                      "NB",
                      "NL",
                      "NT",
                      "NS",
                      "NU",
                      "ON",
                      "PE",
                      "QC",
                      "SK",
                      "YT"
                    ]
                  },
                  {
                    "title": "US Minor Outlying Islands Territory",
                    "description": "When the country is UM.",
                    "type": "string",
                    "enum": [
                      "81",
                      "84",
                      "85",
                      "67",
                      "89",
                      "71",
                      "76",
                      "95",
                      "79"
                    ]
                  },
                  {
                    "title": "Romanian County",
                    "description": "When the country is RO.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "AR",
                      "AG",
                      "BC",
                      "BH",
                      "BN",
                      "BT",
                      "BV",
                      "BR",
                      "B",
                      "BZ",
                      "CL",
                      "CS",
                      "CT",
                      "CV",
                      "DB",
                      "DJ",
                      "GL",
                      "GR",
                      "GJ",
                      "HR",
                      "HD",
                      "IL",
                      "IS",
                      "IF",
                      "MM",
                      "MH",
                      "MS",
                      "NT",
                      "OT",
                      "PH",
                      "SM",
                      "SJ",
                      "SB",
                      "SV",
                      "TR",
                      "TM",
                      "TL",
                      "VS",
                      "VL",
                      "VN"
                    ]
                  }
                ]
              },
              "contactDetails": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "administrative": {
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "contactPerson": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "format": "email",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  "technical": {
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "contactPerson": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "format": "email",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  "billing": {
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "contactPerson": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "format": "email",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  }
                }
              },
              "notifications": {
                "type": "object",
                "properties": {
                  "technical": {
                    "type": "object",
                    "properties": {
                      "chargePointFaults": {
                        "type": "boolean",
                        "default": false
                      }
                    }
                  },
                  "billing": {
                    "type": "object",
                    "properties": {
                      "settlementReports": {
                        "type": "boolean",
                        "default": false
                      },
                      "settlementReportLanguage": {
                        "description": "IETF language tag.",
                        "type": "string",
                        "enum": [
                          "en",
                          "bg",
                          "mk",
                          "el",
                          "zh-CN",
                          "zh-HK",
                          "zh-TW",
                          "pt",
                          "sl",
                          "hr",
                          "it",
                          "de",
                          "hu",
                          "fi",
                          "is",
                          "sv-SE",
                          "da-DK",
                          "nb-NO",
                          "tr-TR",
                          "es-ES",
                          "ar",
                          "ary",
                          "he",
                          "ta",
                          "ms",
                          "cy",
                          "sr",
                          "fr",
                          "fr-MA",
                          "ro",
                          "lt",
                          "uk",
                          "ru",
                          "nl",
                          "ca-ES",
                          "id",
                          "ar-EG",
                          "pl",
                          "lo",
                          "th",
                          "sq-XK",
                          "ga-IE",
                          "bs",
                          "ja",
                          "ko-KR",
                          "cs",
                          "lv",
                          "et",
                          "az",
                          "ka",
                          "af",
                          "hi",
                          "de-CH",
                          "fr-CH",
                          "it-CH",
                          "en-GB"
                        ]
                      }
                    }
                  }
                }
              },
              "monthlyPlatformFee": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "receiptsPrefix": {
                "type": "string",
                "description": "Prefix used for the Partner's receipt numbering. Takes effect only when `options.supplierOnReceipts` is `true`."
              },
              "receiptsStartingNumber": {
                "type": "string",
                "pattern": "^\\d+(\\.\\d+)?$",
                "description": "Starting number for the Partner's receipt numbering. Numeric string; leading zeros are preserved. Takes effect only when `options.supplierOnReceipts` is `true`."
              },
              "invoiceNumberPrefix": {
                "type": "string",
                "minLength": 1,
                "maxLength": 10,
                "description": "Prefix used for the Partner's invoice numbering. Must be globally unique across all partner invoice prefixes, invoice integration prefixes, and previously-issued invoice prefixes. Takes effect only when `options.supplierOnInvoices` is `true`."
              },
              "startingInvoiceNumber": {
                "type": "string",
                "pattern": "^\\d+$",
                "description": "Starting number for the Partner's invoice numbering. Non-negative numeric string; leading zeros are preserved. Takes effect only when `options.supplierOnInvoices` is `true`."
              },
              "tags": {
                "type": "array",
                "description": "Tags can be used for filtering and grouping partners by tag (see the tag filter on the partners list). Partner tags are managed in the operator portal and are read-only via the API. Empty array when the partner has no tags.",
                "items": {
                  "type": "string"
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "userVisibility": {
                    "type": "string",
                    "enum": [
                      "none",
                      "all",
                      "corporateBillingOnly"
                    ],
                    "default": "none",
                    "description": "Controls which invited users are visible to Partner admins:\n- `none`: Partner admins cannot see any invited users\n- `all`: Partner admins can see all users who accepted their invite\n- `corporateBillingOnly`: Partner admins can see only users whose invite has corporate billing enabled\n"
                  },
                  "allowViewingUsersWhoAcceptedInvite": {
                    "type": "boolean",
                    "default": false,
                    "deprecated": true,
                    "description": "**Deprecated.** Use `userVisibility` instead.\nWhen enabled (`true`), maps to `userVisibility: all`. When disabled (`false`), maps to `userVisibility: none`.\nIf both `userVisibility` and `allowViewingUsersWhoAcceptedInvite` are provided, `userVisibility` takes precedence.\n"
                  },
                  "createUsers": {
                    "type": "boolean",
                    "default": false
                  },
                  "addUserBalance": {
                    "type": "boolean",
                    "default": false,
                    "description": "When set to false the API tokens related to this partner would not receive the users' balance in the response."
                  },
                  "allowViewingAllSessionsOfInvitedUsers": {
                    "type": "boolean",
                    "default": true,
                    "description": "If true, partner admins can view all sessions of users who accepted their invites. If false, partner admins can only view sessions that occurred on their charge points or were paid with their corporate billing."
                  },
                  "supplierOnReceipts": {
                    "type": "boolean",
                    "default": false
                  },
                  "supplierOnInvoices": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled, the Partner's data is used on invoices issued for sessions linked to this Partner."
                  },
                  "allowToControlTariffs": {
                    "description": "Allows the Partner to update the tariff pricing.",
                    "type": "boolean",
                    "default": false
                  },
                  "allowToControlTariffGroups": {
                    "description": "In addition to `allowToControlTariffs`, the Partner would also be able to manage Tariff Groups - attach and remove Tariffs, change Tariffs order in the Tariff Group.",
                    "type": "boolean",
                    "default": false
                  },
                  "allowToControlCpConfigurations": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allows the Partner to control configurations on their charge points."
                  },
                  "allowToLogExemptPeriods": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allows Partner admins with the Maintain permission from the DowntimePeriods permission set to log exempt periods."
                  },
                  "settlementReportBreakdown": {
                    "default": "none",
                    "description": "Controls how settlement report line items are aggregated for the Partner:\n- `none`: No breakdown, single aggregated report.\n- `by_location`: Separate breakdown per location.\n- `by_partner_contract`: Separate breakdown per partner contract.\n- `by_location_and_partner_contract`: Breakdown by both location and partner contract.\n",
                    "type": "string",
                    "enum": [
                      "none",
                      "by_location",
                      "by_partner_contract",
                      "by_location_and_partner_contract"
                    ]
                  }
                }
              },
              "corporateBilling": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": false
                  },
                  "monthlyLimit": {
                    "type": "number",
                    "format": "decimal",
                    "deprecated": true,
                    "description": "**Deprecated.** Use `limit` with `frequency` instead.\nThis field returns the same value as `limit` when `frequency` is 'monthly'.\n"
                  },
                  "frequency": {
                    "type": "string",
                    "enum": [
                      "monthly",
                      "quarterly",
                      "semiAnnually",
                      "annually"
                    ],
                    "description": "The billing frequency for the limit."
                  },
                  "limit": {
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "description": "The billing limit for the specified frequency."
                  },
                  "discount": {
                    "type": "number",
                    "format": "decimal"
                  }
                }
              },
              "reimbursement": {
                "description": "Home-charging reimbursement settings of the Partner.\n\nOmitted when the home-charging reimbursement feature is disabled.\n\n`payoutMode` is always present; it defaults to `operator_managed` until it is changed.\n",
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "Whether home-charging reimbursement is enabled for the Partner.\n\nDisabling it stops future reimbursement for the Partner. The reimbursement policies that are currently active for it remain attached but become ineligible, and the invites attached to them stop producing reimbursement records. Reimbursement records and reports that already exist are not affected.\n"
                  },
                  "payoutMode": {
                    "description": "Determines who pays out the home-charging reimbursement to the drivers:\n- **operator_managed**: The operator handles the payouts on behalf of the Partner.\n- **partner_managed**: The Partner handles the payouts to their own drivers.\n",
                    "type": "string",
                    "enum": [
                      "operator_managed",
                      "partner_managed"
                    ]
                  },
                  "cycle": {
                    "description": "How often the home-charging reimbursement is calculated and reported:\n- **monthly**: Reimbursement is processed every month.\n- **quarterly**: Reimbursement is processed every three months.\n- **annual**: Reimbursement is processed every year.\n",
                    "type": "string",
                    "enum": [
                      "monthly",
                      "quarterly",
                      "annual"
                    ]
                  }
                },
                "required": [
                  "enabled",
                  "payoutMode"
                ]
              },
              "externalId": {
                "type": "string",
                "nullable": true,
                "description": "Third party identifier of the partner"
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "bankDetails": {
                "type": "object",
                "properties": {
                  "bankIban": {
                    "type": "string",
                    "nullable": true,
                    "description": "IBAN of the bank account."
                  },
                  "bankCode": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                  },
                  "bankAccountNumber": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank account number."
                  },
                  "bankAccountType": {
                    "type": "string",
                    "nullable": true,
                    "description": "Type of the bank account."
                  },
                  "bankBic": {
                    "type": "string",
                    "nullable": true,
                    "description": "BIC/SWIFT code of the bank."
                  },
                  "bankName": {
                    "type": "string",
                    "nullable": true,
                    "description": "**This property is deprecated. Use `translatedBankName` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedBankName`.\n\nName of the bank.\n",
                    "deprecated": true
                  },
                  "bankAddress": {
                    "type": "string",
                    "nullable": true,
                    "description": "**This property is deprecated. Use `translatedBankAddress` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedBankAddress`.\n\nAddress of the bank.\n",
                    "deprecated": true
                  },
                  "bankAccountHolder": {
                    "type": "string",
                    "nullable": true,
                    "description": "**This property is deprecated. Use `translatedBankAccountHolder` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedBankAccountHolder`.\n\nName of the bank account holder.\n",
                    "deprecated": true
                  },
                  "translatedBankName": {
                    "description": "Name of the bank in every locale it has been translated to. Empty when no translations exist.\n\nReturned only when the bank name field is enabled in the operator's bank details settings.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "translatedBankAddress": {
                    "description": "Address of the bank in every locale it has been translated to. Empty when no translations exist.\n\nReturned only when the bank address field is enabled in the operator's bank details settings.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "translatedBankAccountHolder": {
                    "description": "Name of the bank account holder in every locale it has been translated to. Empty when no translations exist.\n\nReturned only when the bank account holder field is enabled in the operator's bank details settings.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              },
              "customFields": {
                "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: boolean is a JSON boolean; text and long text are strings; email is an email-formatted string; URL is an HTTP or HTTPS URL string; number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; date is an ISO 8601 `YYYY-MM-DD` string; date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the partner are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                "type": "object",
                "additionalProperties": true
              },
              "notes": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "summary",
                    "pinned",
                    "createdAt",
                    "updatedAt"
                  ],
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Unique identifier for the note",
                      "example": 123
                    },
                    "summary": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "Short summary or title of the note",
                      "example": "Important maintenance note"
                    },
                    "details": {
                      "type": "string",
                      "maxLength": 2000,
                      "description": "Detailed content of the note. Omitted when empty.",
                      "example": "This charge point requires monthly inspection due to high usage."
                    },
                    "pinned": {
                      "type": "boolean",
                      "description": "Whether the note is pinned (appears first in listings)",
                      "example": true
                    },
                    "createdByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who created the note. Omitted when unavailable.",
                      "example": 1
                    },
                    "updatedByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                      "example": 2
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was created",
                      "example": "2025-12-16T10:00:00Z"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was last updated",
                      "example": "2025-12-16T12:00:00Z"
                    }
                  }
                },
                "description": "If `include[]=notes` is provided with the request, the notes attached to this partner will be provided here. Notes are returned with pinned notes first, then ordered by creation date descending."
              }
            },
            "required": [
              "id",
              "operatorId",
              "name",
              "translatedName",
              "translatedAddress",
              "translatedCity"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string",
                "description": "**This property is deprecated. Use `translatedName` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedName`.\n\nNote that `filter[search]` still matches the value stored in the operator's default locale.\n\nCompany name of the Partner\n",
                "deprecated": true
              },
              "translatedName": {
                "description": "Company name of the Partner in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "businessName": {
                "type": "string",
                "description": "The Partner's business name is used when showing the name of the Partner to EV drivers and admin users."
              },
              "regNo": {
                "type": "string",
                "nullable": true
              },
              "vatNo": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true,
                "description": "**This property is deprecated. Use `translatedAddress` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedAddress`.\n",
                "deprecated": true
              },
              "translatedAddress": {
                "description": "Address of the Partner in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "postcode": {
                "type": "string",
                "nullable": true
              },
              "city": {
                "type": "string",
                "nullable": true,
                "description": "**This property is deprecated. Use `translatedCity` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedCity`.\n",
                "deprecated": true
              },
              "translatedCity": {
                "description": "City of the Partner in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "country": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW",
                  null
                ]
              },
              "region": {
                "description": "When country is not in US, AU, CA, UM or RO, you can provide the region",
                "deprecated": true,
                "type": "string",
                "nullable": true
              },
              "translatedRegion": {
                "description": "Region of the Partner in every locale it has been translated to. Empty when no translations exist.\n\nAbsent from the response when the Partner's country supports states (US, AU, CA, UM, RO) — `state` applies instead and is not translatable.\n",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "state": {
                "description": "When the selected country is one of US, AU, CA, UM or RO",
                "anyOf": [
                  {
                    "title": "US State",
                    "description": "When the country is US.",
                    "type": "string",
                    "enum": [
                      "AL",
                      "AK",
                      "AS",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FM",
                      "FL",
                      "GA",
                      "GU",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MH",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "MP",
                      "OH",
                      "OK",
                      "OR",
                      "PW",
                      "PA",
                      "PR",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VI",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY"
                    ]
                  },
                  {
                    "title": "Australian State",
                    "description": "When the country is AU.",
                    "type": "string",
                    "enum": [
                      "NSW",
                      "VIC",
                      "QLD",
                      "WA",
                      "SA",
                      "TAS",
                      "ACT",
                      "NT",
                      "JBT",
                      "CX",
                      "NF",
                      "CC",
                      "AQ",
                      "CSI",
                      "ACI",
                      "HM"
                    ]
                  },
                  {
                    "title": "Canadian Province",
                    "description": "When the country is CA.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "BC",
                      "MB",
                      "NB",
                      "NL",
                      "NT",
                      "NS",
                      "NU",
                      "ON",
                      "PE",
                      "QC",
                      "SK",
                      "YT"
                    ]
                  },
                  {
                    "title": "US Minor Outlying Islands Territory",
                    "description": "When the country is UM.",
                    "type": "string",
                    "enum": [
                      "81",
                      "84",
                      "85",
                      "67",
                      "89",
                      "71",
                      "76",
                      "95",
                      "79"
                    ]
                  },
                  {
                    "title": "Romanian County",
                    "description": "When the country is RO.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "AR",
                      "AG",
                      "BC",
                      "BH",
                      "BN",
                      "BT",
                      "BV",
                      "BR",
                      "B",
                      "BZ",
                      "CL",
                      "CS",
                      "CT",
                      "CV",
                      "DB",
                      "DJ",
                      "GL",
                      "GR",
                      "GJ",
                      "HR",
                      "HD",
                      "IL",
                      "IS",
                      "IF",
                      "MM",
                      "MH",
                      "MS",
                      "NT",
                      "OT",
                      "PH",
                      "SM",
                      "SJ",
                      "SB",
                      "SV",
                      "TR",
                      "TM",
                      "TL",
                      "VS",
                      "VL",
                      "VN"
                    ]
                  }
                ]
              },
              "contactDetails": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "administrative": {
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "contactPerson": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "format": "email",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  "technical": {
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "contactPerson": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "format": "email",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  "billing": {
                    "type": "object",
                    "nullable": true,
                    "properties": {
                      "contactPerson": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "format": "email",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  }
                }
              },
              "notifications": {
                "type": "object",
                "properties": {
                  "technical": {
                    "type": "object",
                    "properties": {
                      "chargePointFaults": {
                        "type": "boolean",
                        "default": false
                      }
                    }
                  },
                  "billing": {
                    "type": "object",
                    "properties": {
                      "settlementReports": {
                        "type": "boolean",
                        "default": false
                      },
                      "settlementReportLanguage": {
                        "description": "IETF language tag.",
                        "type": "string",
                        "enum": [
                          "en",
                          "bg",
                          "mk",
                          "el",
                          "zh-CN",
                          "zh-HK",
                          "zh-TW",
                          "pt",
                          "sl",
                          "hr",
                          "it",
                          "de",
                          "hu",
                          "fi",
                          "is",
                          "sv-SE",
                          "da-DK",
                          "nb-NO",
                          "tr-TR",
                          "es-ES",
                          "ar",
                          "ary",
                          "he",
                          "ta",
                          "ms",
                          "cy",
                          "sr",
                          "fr",
                          "fr-MA",
                          "ro",
                          "lt",
                          "uk",
                          "ru",
                          "nl",
                          "ca-ES",
                          "id",
                          "ar-EG",
                          "pl",
                          "lo",
                          "th",
                          "sq-XK",
                          "ga-IE",
                          "bs",
                          "ja",
                          "ko-KR",
                          "cs",
                          "lv",
                          "et",
                          "az",
                          "ka",
                          "af",
                          "hi",
                          "de-CH",
                          "fr-CH",
                          "it-CH",
                          "en-GB"
                        ]
                      }
                    }
                  }
                }
              },
              "monthlyPlatformFee": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "receiptsPrefix": {
                "type": "string",
                "description": "Prefix used for the Partner's receipt numbering. Takes effect only when `options.supplierOnReceipts` is `true`."
              },
              "receiptsStartingNumber": {
                "type": "string",
                "pattern": "^\\d+(\\.\\d+)?$",
                "description": "Starting number for the Partner's receipt numbering. Numeric string; leading zeros are preserved. Takes effect only when `options.supplierOnReceipts` is `true`."
              },
              "invoiceNumberPrefix": {
                "type": "string",
                "minLength": 1,
                "maxLength": 10,
                "description": "Prefix used for the Partner's invoice numbering. Must be globally unique across all partner invoice prefixes, invoice integration prefixes, and previously-issued invoice prefixes. Takes effect only when `options.supplierOnInvoices` is `true`."
              },
              "startingInvoiceNumber": {
                "type": "string",
                "pattern": "^\\d+$",
                "description": "Starting number for the Partner's invoice numbering. Non-negative numeric string; leading zeros are preserved. Takes effect only when `options.supplierOnInvoices` is `true`."
              },
              "tags": {
                "type": "array",
                "description": "Tags can be used for filtering and grouping partners by tag (see the tag filter on the partners list). Partner tags are managed in the operator portal and are read-only via the API. Empty array when the partner has no tags.",
                "items": {
                  "type": "string"
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "userVisibility": {
                    "type": "string",
                    "enum": [
                      "none",
                      "all",
                      "corporateBillingOnly"
                    ],
                    "default": "none",
                    "description": "Controls which invited users are visible to Partner admins:\n- `none`: Partner admins cannot see any invited users\n- `all`: Partner admins can see all users who accepted their invite\n- `corporateBillingOnly`: Partner admins can see only users whose invite has corporate billing enabled\n"
                  },
                  "allowViewingUsersWhoAcceptedInvite": {
                    "type": "boolean",
                    "default": false,
                    "deprecated": true,
                    "description": "**Deprecated.** Use `userVisibility` instead.\nWhen enabled (`true`), maps to `userVisibility: all`. When disabled (`false`), maps to `userVisibility: none`.\nIf both `userVisibility` and `allowViewingUsersWhoAcceptedInvite` are provided, `userVisibility` takes precedence.\n"
                  },
                  "createUsers": {
                    "type": "boolean",
                    "default": false
                  },
                  "addUserBalance": {
                    "type": "boolean",
                    "default": false,
                    "description": "When set to false the API tokens related to this partner would not receive the users' balance in the response."
                  },
                  "allowViewingAllSessionsOfInvitedUsers": {
                    "type": "boolean",
                    "default": true,
                    "description": "If true, partner admins can view all sessions of users who accepted their invites. If false, partner admins can only view sessions that occurred on their charge points or were paid with their corporate billing."
                  },
                  "supplierOnReceipts": {
                    "type": "boolean",
                    "default": false
                  },
                  "supplierOnInvoices": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled, the Partner's data is used on invoices issued for sessions linked to this Partner."
                  },
                  "allowToControlTariffs": {
                    "description": "Allows the Partner to update the tariff pricing.",
                    "type": "boolean",
                    "default": false
                  },
                  "allowToControlTariffGroups": {
                    "description": "In addition to `allowToControlTariffs`, the Partner would also be able to manage Tariff Groups - attach and remove Tariffs, change Tariffs order in the Tariff Group.",
                    "type": "boolean",
                    "default": false
                  },
                  "allowToControlCpConfigurations": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allows the Partner to control configurations on their charge points."
                  },
                  "allowToLogExemptPeriods": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allows Partner admins with the Maintain permission from the DowntimePeriods permission set to log exempt periods."
                  },
                  "settlementReportBreakdown": {
                    "default": "none",
                    "description": "Controls how settlement report line items are aggregated for the Partner:\n- `none`: No breakdown, single aggregated report.\n- `by_location`: Separate breakdown per location.\n- `by_partner_contract`: Separate breakdown per partner contract.\n- `by_location_and_partner_contract`: Breakdown by both location and partner contract.\n",
                    "type": "string",
                    "enum": [
                      "none",
                      "by_location",
                      "by_partner_contract",
                      "by_location_and_partner_contract"
                    ]
                  }
                }
              },
              "corporateBilling": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "default": false
                  },
                  "monthlyLimit": {
                    "type": "number",
                    "format": "decimal",
                    "deprecated": true,
                    "description": "**Deprecated.** Use `limit` with `frequency` instead.\nThis field returns the same value as `limit` when `frequency` is 'monthly'.\n"
                  },
                  "frequency": {
                    "type": "string",
                    "enum": [
                      "monthly",
                      "quarterly",
                      "semiAnnually",
                      "annually"
                    ],
                    "description": "The billing frequency for the limit."
                  },
                  "limit": {
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "description": "The billing limit for the specified frequency."
                  },
                  "discount": {
                    "type": "number",
                    "format": "decimal"
                  }
                }
              },
              "reimbursement": {
                "description": "Home-charging reimbursement settings of the Partner.\n\nOmitted when the home-charging reimbursement feature is disabled.\n\n`payoutMode` is always present; it defaults to `operator_managed` until it is changed.\n",
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "Whether home-charging reimbursement is enabled for the Partner.\n\nDisabling it stops future reimbursement for the Partner. The reimbursement policies that are currently active for it remain attached but become ineligible, and the invites attached to them stop producing reimbursement records. Reimbursement records and reports that already exist are not affected.\n"
                  },
                  "payoutMode": {
                    "description": "Determines who pays out the home-charging reimbursement to the drivers:\n- **operator_managed**: The operator handles the payouts on behalf of the Partner.\n- **partner_managed**: The Partner handles the payouts to their own drivers.\n",
                    "type": "string",
                    "enum": [
                      "operator_managed",
                      "partner_managed"
                    ]
                  },
                  "cycle": {
                    "description": "How often the home-charging reimbursement is calculated and reported:\n- **monthly**: Reimbursement is processed every month.\n- **quarterly**: Reimbursement is processed every three months.\n- **annual**: Reimbursement is processed every year.\n",
                    "type": "string",
                    "enum": [
                      "monthly",
                      "quarterly",
                      "annual"
                    ]
                  }
                },
                "required": [
                  "enabled",
                  "payoutMode"
                ]
              },
              "externalId": {
                "type": "string",
                "nullable": true,
                "description": "Third party identifier of the partner"
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "bankDetails": {
                "type": "object",
                "properties": {
                  "bankIban": {
                    "type": "string",
                    "nullable": true,
                    "description": "IBAN of the bank account."
                  },
                  "bankCode": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                  },
                  "bankAccountNumber": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank account number."
                  },
                  "bankAccountType": {
                    "type": "string",
                    "nullable": true,
                    "description": "Type of the bank account."
                  },
                  "bankBic": {
                    "type": "string",
                    "nullable": true,
                    "description": "BIC/SWIFT code of the bank."
                  },
                  "bankName": {
                    "type": "string",
                    "nullable": true,
                    "description": "**This property is deprecated. Use `translatedBankName` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedBankName`.\n\nName of the bank.\n",
                    "deprecated": true
                  },
                  "bankAddress": {
                    "type": "string",
                    "nullable": true,
                    "description": "**This property is deprecated. Use `translatedBankAddress` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedBankAddress`.\n\nAddress of the bank.\n",
                    "deprecated": true
                  },
                  "bankAccountHolder": {
                    "type": "string",
                    "nullable": true,
                    "description": "**This property is deprecated. Use `translatedBankAccountHolder` instead.**\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedBankAccountHolder`.\n\nName of the bank account holder.\n",
                    "deprecated": true
                  },
                  "translatedBankName": {
                    "description": "Name of the bank in every locale it has been translated to. Empty when no translations exist.\n\nReturned only when the bank name field is enabled in the operator's bank details settings.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "translatedBankAddress": {
                    "description": "Address of the bank in every locale it has been translated to. Empty when no translations exist.\n\nReturned only when the bank address field is enabled in the operator's bank details settings.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "translatedBankAccountHolder": {
                    "description": "Name of the bank account holder in every locale it has been translated to. Empty when no translations exist.\n\nReturned only when the bank account holder field is enabled in the operator's bank details settings.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              },
              "customFields": {
                "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: boolean is a JSON boolean; text and long text are strings; email is an email-formatted string; URL is an HTTP or HTTPS URL string; number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; date is an ISO 8601 `YYYY-MM-DD` string; date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the partner are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                "type": "object",
                "additionalProperties": true
              },
              "notes": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "summary",
                    "pinned",
                    "createdAt",
                    "updatedAt"
                  ],
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Unique identifier for the note",
                      "example": 123
                    },
                    "summary": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "Short summary or title of the note",
                      "example": "Important maintenance note"
                    },
                    "details": {
                      "type": "string",
                      "maxLength": 2000,
                      "description": "Detailed content of the note. Omitted when empty.",
                      "example": "This charge point requires monthly inspection due to high usage."
                    },
                    "pinned": {
                      "type": "boolean",
                      "description": "Whether the note is pinned (appears first in listings)",
                      "example": true
                    },
                    "createdByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who created the note. Omitted when unavailable.",
                      "example": 1
                    },
                    "updatedByAdminId": {
                      "type": "integer",
                      "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                      "example": 2
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was created",
                      "example": "2025-12-16T10:00:00Z"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO-8601 timestamp when the note was last updated",
                      "example": "2025-12-16T12:00:00Z"
                    }
                  }
                },
                "description": "If `include[]=notes` is provided with the request, the notes attached to this partner will be provided here. Notes are returned with pinned notes first, then ordered by creation date descending."
              }
            },
            "required": [
              "id",
              "operatorId",
              "name",
              "translatedName",
              "translatedAddress",
              "translatedCity"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerAdminsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "Unique identifier of the partner administrator"
                },
                "name": {
                  "type": "string",
                  "description": "Name of the administrator"
                },
                "email": {
                  "type": "string",
                  "format": "email",
                  "description": "Email address of the administrator"
                },
                "adminType": {
                  "type": "string",
                  "enum": [
                    "partner",
                    "partnerSiteManager"
                  ],
                  "description": "Type of partner administrator:\n* `partner` - Full partner access, can manage all partner resources\n* `partnerSiteManager` - Location-restricted access, can only manage assigned locations\n"
                },
                "roleId": {
                  "type": "integer",
                  "description": "ID of the role assigned to this administrator"
                },
                "locale": {
                  "type": "string",
                  "description": "Locale code for the administrator (e.g., \"en\", \"de\"). Omitted from response when not set.",
                  "example": "en"
                },
                "whitelistedIps": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "List of IP addresses allowed for UI access",
                  "example": [
                    "192.168.1.1",
                    "10.0.0.1"
                  ]
                },
                "locationIds": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "Location IDs the administrator can manage. Only present for `partnerSiteManager` type; omitted for `partner` type.",
                  "example": [
                    1,
                    2,
                    3
                  ]
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true,
                  "description": "ISO 8601 timestamp of when the administrator was created"
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true,
                  "description": "ISO 8601 timestamp of when the administrator was last updated"
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerAdminCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "Unique identifier of the partner administrator"
              },
              "name": {
                "type": "string",
                "description": "Name of the administrator"
              },
              "email": {
                "type": "string",
                "format": "email",
                "description": "Email address of the administrator"
              },
              "adminType": {
                "type": "string",
                "enum": [
                  "partner",
                  "partnerSiteManager"
                ],
                "description": "Type of partner administrator:\n* `partner` - Full partner access, can manage all partner resources\n* `partnerSiteManager` - Location-restricted access, can only manage assigned locations\n"
              },
              "roleId": {
                "type": "integer",
                "description": "ID of the role assigned to this administrator"
              },
              "locale": {
                "type": "string",
                "description": "Locale code for the administrator (e.g., \"en\", \"de\"). Omitted from response when not set.",
                "example": "en"
              },
              "whitelistedIps": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "List of IP addresses allowed for UI access",
                "example": [
                  "192.168.1.1",
                  "10.0.0.1"
                ]
              },
              "locationIds": {
                "type": "array",
                "items": {
                  "type": "integer"
                },
                "description": "Location IDs the administrator can manage. Only present for `partnerSiteManager` type; omitted for `partner` type.",
                "example": [
                  1,
                  2,
                  3
                ]
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "ISO 8601 timestamp of when the administrator was created"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "ISO 8601 timestamp of when the administrator was last updated"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerAdminDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerAdminUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "Unique identifier of the partner administrator"
              },
              "name": {
                "type": "string",
                "description": "Name of the administrator"
              },
              "email": {
                "type": "string",
                "format": "email",
                "description": "Email address of the administrator"
              },
              "adminType": {
                "type": "string",
                "enum": [
                  "partner",
                  "partnerSiteManager"
                ],
                "description": "Type of partner administrator:\n* `partner` - Full partner access, can manage all partner resources\n* `partnerSiteManager` - Location-restricted access, can only manage assigned locations\n"
              },
              "roleId": {
                "type": "integer",
                "description": "ID of the role assigned to this administrator"
              },
              "locale": {
                "type": "string",
                "description": "Locale code for the administrator (e.g., \"en\", \"de\"). Omitted from response when not set.",
                "example": "en"
              },
              "whitelistedIps": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "List of IP addresses allowed for UI access",
                "example": [
                  "192.168.1.1",
                  "10.0.0.1"
                ]
              },
              "locationIds": {
                "type": "array",
                "items": {
                  "type": "integer"
                },
                "description": "Location IDs the administrator can manage. Only present for `partnerSiteManager` type; omitted for `partner` type.",
                "example": [
                  1,
                  2,
                  3
                ]
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "ISO 8601 timestamp of when the administrator was created"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "ISO 8601 timestamp of when the administrator was last updated"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerNotesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "summary",
                "pinned",
                "createdAt",
                "updatedAt"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Unique identifier for the note",
                  "example": 123
                },
                "summary": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "Short summary or title of the note",
                  "example": "Important maintenance note"
                },
                "details": {
                  "type": "string",
                  "maxLength": 2000,
                  "description": "Detailed content of the note. Omitted when empty.",
                  "example": "This charge point requires monthly inspection due to high usage."
                },
                "pinned": {
                  "type": "boolean",
                  "description": "Whether the note is pinned (appears first in listings)",
                  "example": true
                },
                "createdByAdminId": {
                  "type": "integer",
                  "description": "ID of the admin who created the note. Omitted when unavailable.",
                  "example": 1
                },
                "updatedByAdminId": {
                  "type": "integer",
                  "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                  "example": 2
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO-8601 timestamp when the note was created",
                  "example": "2025-12-16T10:00:00Z"
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO-8601 timestamp when the note was last updated",
                  "example": "2025-12-16T12:00:00Z"
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerNoteCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "pinned",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier for the note",
                "example": 123
              },
              "summary": {
                "type": "string",
                "maxLength": 255,
                "description": "Short summary or title of the note",
                "example": "Important maintenance note"
              },
              "details": {
                "type": "string",
                "maxLength": 2000,
                "description": "Detailed content of the note. Omitted when empty.",
                "example": "This charge point requires monthly inspection due to high usage."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the note is pinned (appears first in listings)",
                "example": true
              },
              "createdByAdminId": {
                "type": "integer",
                "description": "ID of the admin who created the note. Omitted when unavailable.",
                "example": 1
              },
              "updatedByAdminId": {
                "type": "integer",
                "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                "example": 2
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was created",
                "example": "2025-12-16T10:00:00Z"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was last updated",
                "example": "2025-12-16T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerNoteShow": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "pinned",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier for the note",
                "example": 123
              },
              "summary": {
                "type": "string",
                "maxLength": 255,
                "description": "Short summary or title of the note",
                "example": "Important maintenance note"
              },
              "details": {
                "type": "string",
                "maxLength": 2000,
                "description": "Detailed content of the note. Omitted when empty.",
                "example": "This charge point requires monthly inspection due to high usage."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the note is pinned (appears first in listings)",
                "example": true
              },
              "createdByAdminId": {
                "type": "integer",
                "description": "ID of the admin who created the note. Omitted when unavailable.",
                "example": 1
              },
              "updatedByAdminId": {
                "type": "integer",
                "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                "example": 2
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was created",
                "example": "2025-12-16T10:00:00Z"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was last updated",
                "example": "2025-12-16T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerNoteDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "partnerNoteUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "pinned",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier for the note",
                "example": 123
              },
              "summary": {
                "type": "string",
                "maxLength": 255,
                "description": "Short summary or title of the note",
                "example": "Important maintenance note"
              },
              "details": {
                "type": "string",
                "maxLength": 2000,
                "description": "Detailed content of the note. Omitted when empty.",
                "example": "This charge point requires monthly inspection due to high usage."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the note is pinned (appears first in listings)",
                "example": true
              },
              "createdByAdminId": {
                "type": "integer",
                "description": "ID of the admin who created the note. Omitted when unavailable.",
                "example": 1
              },
              "updatedByAdminId": {
                "type": "integer",
                "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                "example": 2
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was created",
                "example": "2025-12-16T10:00:00Z"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was last updated",
                "example": "2025-12-16T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getPaymentTerminalsDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Ampeco",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "defaultLanguage": {
                      "type": "string"
                    },
                    "displayTextTimeout": {
                      "type": "integer"
                    },
                    "displayText": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string",
                      "description": "An optional external identifier for the terminal that can be used to reference it in external systems."
                    },
                    "isOnline": {
                      "type": "boolean",
                      "nullable": true,
                      "deprecated": true,
                      "description": "Use `networkStatus` instead"
                    },
                    "networkStatus": {
                      "type": "string",
                      "enum": [
                        "online",
                        "offline",
                        "unknown"
                      ]
                    },
                    "suppressReceiptWhenInvoiceIssued": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                    }
                  },
                  "oneOf": [
                    {
                      "title": "Payter on CP",
                      "type": "object",
                      "properties": {
                        "preauthorizeAmount": {
                          "type": "number",
                          "description": "Provide a Pre-authorize amount when the terminal is linked to a single charger"
                        },
                        "currencyId": {
                          "type": "integer",
                          "readOnly": true
                        },
                        "valueAddedTaxId": {
                          "type": "integer",
                          "readOnly": true,
                          "deprecated": true,
                          "description": "**This property is deprecated and will be removed on Fri, 01 Jan 2027.**\nTax for payment terminals is derived from the operator's tax rules; when tax rules are disabled it falls back to the tariff's default tax, or to the operator's base tax when no tariff is assigned. Any value sent in create/update requests is accepted but ignored. Previously persisted values are still returned for backward compatibility but have no effect on billing.\n"
                        }
                      }
                    },
                    {
                      "title": "Payter on Location",
                      "type": "object",
                      "properties": {
                        "transactionTimeout": {
                          "type": "integer",
                          "description": "Provide a transaction timeout when the terminal is linked to a Location"
                        }
                      }
                    }
                  ],
                  "required": [
                    "id",
                    "name",
                    "defaultLanguage",
                    "serialNumber",
                    "integrationId",
                    "terminalType",
                    "operatorId",
                    "suppressReceiptWhenInvoiceIssued"
                  ]
                },
                {
                  "title": "Valina",
                  "required": [
                    "phone",
                    "defaultLanguage",
                    "info",
                    "bundle",
                    "suppressReceiptWhenInvoiceIssued",
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Ampeco",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "adminToken": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                    },
                    "isOnline": {
                      "type": "boolean",
                      "readOnly": true,
                      "deprecated": true,
                      "description": "Use `networkStatus` instead"
                    },
                    "networkStatus": {
                      "type": "string",
                      "enum": [
                        "online",
                        "offline",
                        "unknown"
                      ]
                    },
                    "phone": {
                      "type": "string"
                    },
                    "defaultLanguage": {
                      "type": "string"
                    },
                    "presentCardOnStopSession": {
                      "type": "boolean",
                      "default": false
                    },
                    "info": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "currencyCode": {
                      "type": "string",
                      "readOnly": true
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string"
                    },
                    "supportedLanguages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "readOnly": true
                    },
                    "bundle": {
                      "type": "object",
                      "readOnly": true,
                      "properties": {
                        "version": {
                          "type": "string",
                          "example": [
                            "1.0.0",
                            "1.0.1",
                            "2.1.0"
                          ],
                          "description": "Desired version of the terminal android bundle. This field should be used to detect version difference between the actual one running on the terminal and the configured on the server, in order to detect if an OTA update is required."
                        },
                        "downloadUrl": {
                          "type": "string",
                          "description": "Download link to the archived (zip) bundle version. Can be used to download the bundle and initiate the OTA update on the terminal."
                        }
                      }
                    },
                    "networkStatusMonitoringEnabled": {
                      "type": "boolean",
                      "readOnly": true
                    },
                    "kioskModeEnabled": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                    },
                    "suppressReceiptWhenInvoiceIssued": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                    },
                    "invoiceFields": {
                      "type": "array",
                      "readOnly": true,
                      "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string",
                            "description": "Field identifier (e.g., email, name, taxId, country)"
                          },
                          "required": {
                            "type": "boolean",
                            "description": "Whether this field is required or optional"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "individual",
                              "company"
                            ],
                            "description": "The invoice type this field belongs to (individual or company)"
                          },
                          "label": {
                            "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "locale": {
                                  "type": "string",
                                  "description": "valid locale"
                                },
                                "translation": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        },
                        "required": [
                          "field",
                          "required",
                          "type",
                          "label"
                        ]
                      }
                    },
                    "showTermsAndConditions": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                    },
                    "termVersionId": {
                      "type": "integer",
                      "readOnly": true,
                      "nullable": true,
                      "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                    }
                  }
                },
                {
                  "title": "Crane",
                  "required": [
                    "serialNumber",
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Ampeco",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string"
                    }
                  }
                },
                {
                  "title": "Ampeco",
                  "required": [
                    "suppressReceiptWhenInvoiceIssued",
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Ampeco",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "adminToken": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                    },
                    "webhookUrl": {
                      "type": "string",
                      "readOnly": true
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string"
                    },
                    "suppressReceiptWhenInvoiceIssued": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                    }
                  }
                },
                {
                  "title": "Nayax",
                  "required": [
                    "terminalId",
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Ampeco",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "terminalId": {
                      "type": "string",
                      "description": "This is the Device Number of the relevant Nayax terminal that is set up in the Nayax system. Please be careful to add the correct Device number on the relevant terminal."
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string"
                    }
                  }
                },
                {
                  "title": "Embedded",
                  "required": [
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Ampeco",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string"
                    }
                  }
                },
                {
                  "title": "Pax",
                  "required": [
                    "verificationCode",
                    "defaultLanguage",
                    "info",
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Ampeco",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "verificationCode": {
                      "type": "string"
                    },
                    "defaultLanguage": {
                      "type": "string"
                    },
                    "presentCardOnStopSession": {
                      "type": "boolean",
                      "default": false
                    },
                    "info": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string"
                    }
                  }
                },
                {
                  "title": "Windcave",
                  "required": [
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Ampeco",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string"
                    }
                  }
                },
                {
                  "title": "Web portal",
                  "required": [
                    "suppressReceiptWhenInvoiceIssued",
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Ampeco",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "invoiceFields": {
                      "type": "array",
                      "readOnly": true,
                      "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string",
                            "description": "Field identifier (e.g., email, name, taxId, country)"
                          },
                          "required": {
                            "type": "boolean",
                            "description": "Whether this field is required or optional"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "individual",
                              "company"
                            ],
                            "description": "The invoice type this field belongs to (individual or company)"
                          },
                          "label": {
                            "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "locale": {
                                  "type": "string",
                                  "description": "valid locale"
                                },
                                "translation": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        },
                        "required": [
                          "field",
                          "required",
                          "type",
                          "label"
                        ]
                      }
                    },
                    "suppressReceiptWhenInvoiceIssued": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                    }
                  }
                },
                {
                  "title": "AdyenCastles",
                  "required": [
                    "phone",
                    "defaultLanguage",
                    "info",
                    "merchantAccount",
                    "adyenApiKey",
                    "suppressReceiptWhenInvoiceIssued",
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Ampeco",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "adminToken": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                    },
                    "networkStatus": {
                      "type": "string",
                      "enum": [
                        "online",
                        "offline",
                        "unknown"
                      ]
                    },
                    "phone": {
                      "type": "string"
                    },
                    "defaultLanguage": {
                      "type": "string"
                    },
                    "presentCardOnStopSession": {
                      "type": "boolean",
                      "default": false
                    },
                    "info": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "currencyCode": {
                      "type": "string",
                      "readOnly": true
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string"
                    },
                    "merchantAccount": {
                      "type": "string",
                      "description": "Unique identifier of the merchant in Adyen's portal"
                    },
                    "adyenApiKey": {
                      "type": "string",
                      "description": "API key to authenticate requests to Adyen"
                    },
                    "supportedLanguages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "readOnly": true
                    },
                    "networkStatusMonitoringEnabled": {
                      "type": "boolean",
                      "readOnly": true
                    },
                    "kioskModeEnabled": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                    },
                    "suppressReceiptWhenInvoiceIssued": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                    },
                    "invoiceFields": {
                      "type": "array",
                      "readOnly": true,
                      "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string",
                            "description": "Field identifier (e.g., email, name, taxId, country)"
                          },
                          "required": {
                            "type": "boolean",
                            "description": "Whether this field is required or optional"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "individual",
                              "company"
                            ],
                            "description": "The invoice type this field belongs to (individual or company)"
                          },
                          "label": {
                            "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "locale": {
                                  "type": "string",
                                  "description": "valid locale"
                                },
                                "translation": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        },
                        "required": [
                          "field",
                          "required",
                          "type",
                          "label"
                        ]
                      }
                    },
                    "showTermsAndConditions": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                    },
                    "termVersionId": {
                      "type": "integer",
                      "readOnly": true,
                      "nullable": true,
                      "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                    }
                  }
                },
                {
                  "title": "Printec Castles",
                  "required": [
                    "phone",
                    "defaultLanguage",
                    "info",
                    "bundle",
                    "suppressReceiptWhenInvoiceIssued",
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Ampeco",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "adminToken": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                    },
                    "networkStatus": {
                      "type": "string",
                      "enum": [
                        "online",
                        "offline",
                        "unknown"
                      ]
                    },
                    "phone": {
                      "type": "string"
                    },
                    "defaultLanguage": {
                      "type": "string"
                    },
                    "presentCardOnStopSession": {
                      "type": "boolean",
                      "default": false
                    },
                    "info": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "currencyCode": {
                      "type": "string",
                      "readOnly": true
                    },
                    "countryCode": {
                      "type": "string",
                      "description": "ISO 3166-1 alpha-2 country code",
                      "readOnly": true
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string"
                    },
                    "supportedLanguages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "readOnly": true
                    },
                    "bundle": {
                      "type": "object",
                      "readOnly": true,
                      "properties": {
                        "version": {
                          "type": "string",
                          "example": [
                            "1.0.0",
                            "1.0.1",
                            "2.1.0"
                          ],
                          "description": "Desired version of the terminal android bundle. This field should be used to detect version difference between the actual one running on the terminal and the configured on the server, in order to detect if an OTA update is required."
                        },
                        "downloadUrl": {
                          "type": "string",
                          "description": "Download link to the archived (zip) bundle version. Can be used to download the bundle and initiate the OTA update on the terminal."
                        }
                      }
                    },
                    "networkStatusMonitoringEnabled": {
                      "type": "boolean",
                      "readOnly": true
                    },
                    "kioskModeEnabled": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                    },
                    "suppressReceiptWhenInvoiceIssued": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                    },
                    "invoiceFields": {
                      "type": "array",
                      "readOnly": true,
                      "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string",
                            "description": "Field identifier (e.g., email, name, taxId, country)"
                          },
                          "required": {
                            "type": "boolean",
                            "description": "Whether this field is required or optional"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "individual",
                              "company"
                            ],
                            "description": "The invoice type this field belongs to (individual or company)"
                          },
                          "label": {
                            "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "locale": {
                                  "type": "string",
                                  "description": "valid locale"
                                },
                                "translation": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        },
                        "required": [
                          "field",
                          "required",
                          "type",
                          "label"
                        ]
                      }
                    },
                    "showTermsAndConditions": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                    },
                    "termVersionId": {
                      "type": "integer",
                      "readOnly": true,
                      "nullable": true,
                      "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                    }
                  }
                },
                {
                  "title": "Cardlink Castles",
                  "required": [
                    "phone",
                    "defaultLanguage",
                    "info",
                    "bundle",
                    "suppressReceiptWhenInvoiceIssued",
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Ampeco",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "adminToken": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                    },
                    "isOnline": {
                      "type": "boolean",
                      "readOnly": true,
                      "deprecated": true,
                      "description": "Use `networkStatus` instead"
                    },
                    "networkStatus": {
                      "type": "string",
                      "enum": [
                        "online",
                        "offline",
                        "unknown"
                      ]
                    },
                    "phone": {
                      "type": "string"
                    },
                    "defaultLanguage": {
                      "type": "string"
                    },
                    "presentCardOnStopSession": {
                      "type": "boolean",
                      "default": false
                    },
                    "info": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "currencyCode": {
                      "type": "string",
                      "readOnly": true
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string"
                    },
                    "supportedLanguages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "readOnly": true
                    },
                    "bundle": {
                      "type": "object",
                      "readOnly": true,
                      "properties": {
                        "version": {
                          "type": "string",
                          "example": [
                            "1.0.0",
                            "1.0.1",
                            "2.1.0"
                          ],
                          "description": "Desired version of the terminal android bundle. This field should be used to detect version difference between the actual one running on the terminal and the configured on the server, in order to detect if an OTA update is required."
                        },
                        "downloadUrl": {
                          "type": "string",
                          "description": "Download link to the archived (zip) bundle version. Can be used to download the bundle and initiate the OTA update on the terminal."
                        }
                      }
                    },
                    "networkStatusMonitoringEnabled": {
                      "type": "boolean",
                      "readOnly": true
                    },
                    "kioskModeEnabled": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                    },
                    "suppressReceiptWhenInvoiceIssued": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                    },
                    "invoiceFields": {
                      "type": "array",
                      "readOnly": true,
                      "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string",
                            "description": "Field identifier (e.g., email, name, taxId, country)"
                          },
                          "required": {
                            "type": "boolean",
                            "description": "Whether this field is required or optional"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "individual",
                              "company"
                            ],
                            "description": "The invoice type this field belongs to (individual or company)"
                          },
                          "label": {
                            "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "locale": {
                                  "type": "string",
                                  "description": "valid locale"
                                },
                                "translation": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        },
                        "required": [
                          "field",
                          "required",
                          "type",
                          "label"
                        ]
                      }
                    },
                    "showTermsAndConditions": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                    },
                    "termVersionId": {
                      "type": "integer",
                      "readOnly": true,
                      "nullable": true,
                      "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                    }
                  }
                }
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page"
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page"
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page",
                "nullable": true
              }
            },
            "required": [
              "first",
              "last"
            ]
          },
          "meta": {
            "type": "object",
            "properties": {
              "current_page": {
                "type": "integer",
                "description": "The number of the current page being fetched"
              },
              "from": {
                "type": "integer",
                "description": "The first of the fetched item's position in the total list",
                "nullable": true
              },
              "last_page": {
                "type": "integer",
                "description": "The number of the past page"
              },
              "links": {
                "type": "array",
                "description": "Array of link objects pointing to the previous/current/next pages",
                "items": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string",
                      "nullable": true,
                      "description": "The URL to the previous/current/next page or null if such page does not exist"
                    },
                    "label": {
                      "type": "string",
                      "description": "The name of the page that the links should be pointing to"
                    },
                    "active": {
                      "type": "boolean",
                      "description": "Is the link active, it will be true only when there is an URL"
                    }
                  }
                }
              },
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "to": {
                "type": "integer",
                "description": "The last of the fetched item's position in the total list",
                "nullable": true
              },
              "total": {
                "type": "integer",
                "description": "The total number of items in the list"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "createPaymentTerminalDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "displayTextTimeout": {
                    "type": "integer"
                  },
                  "displayText": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string",
                    "description": "An optional external identifier for the terminal that can be used to reference it in external systems."
                  },
                  "isOnline": {
                    "type": "boolean",
                    "nullable": true,
                    "deprecated": true,
                    "description": "Use `networkStatus` instead"
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "suppressReceiptWhenInvoiceIssued": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                  }
                },
                "oneOf": [
                  {
                    "title": "Payter on CP",
                    "type": "object",
                    "properties": {
                      "preauthorizeAmount": {
                        "type": "number",
                        "description": "Provide a Pre-authorize amount when the terminal is linked to a single charger"
                      },
                      "currencyId": {
                        "type": "integer",
                        "readOnly": true
                      },
                      "valueAddedTaxId": {
                        "type": "integer",
                        "readOnly": true,
                        "deprecated": true,
                        "description": "**This property is deprecated and will be removed on Fri, 01 Jan 2027.**\nTax for payment terminals is derived from the operator's tax rules; when tax rules are disabled it falls back to the tariff's default tax, or to the operator's base tax when no tariff is assigned. Any value sent in create/update requests is accepted but ignored. Previously persisted values are still returned for backward compatibility but have no effect on billing.\n"
                      }
                    }
                  },
                  {
                    "title": "Payter on Location",
                    "type": "object",
                    "properties": {
                      "transactionTimeout": {
                        "type": "integer",
                        "description": "Provide a transaction timeout when the terminal is linked to a Location"
                      }
                    }
                  }
                ],
                "required": [
                  "id",
                  "name",
                  "defaultLanguage",
                  "serialNumber",
                  "integrationId",
                  "terminalType",
                  "operatorId",
                  "suppressReceiptWhenInvoiceIssued"
                ]
              },
              {
                "title": "Valina",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "bundle",
                  "suppressReceiptWhenInvoiceIssued",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "isOnline": {
                    "type": "boolean",
                    "readOnly": true,
                    "deprecated": true,
                    "description": "Use `networkStatus` instead"
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "bundle": {
                    "type": "object",
                    "readOnly": true,
                    "properties": {
                      "version": {
                        "type": "string",
                        "example": [
                          "1.0.0",
                          "1.0.1",
                          "2.1.0"
                        ],
                        "description": "Desired version of the terminal android bundle. This field should be used to detect version difference between the actual one running on the terminal and the configured on the server, in order to detect if an OTA update is required."
                      },
                      "downloadUrl": {
                        "type": "string",
                        "description": "Download link to the archived (zip) bundle version. Can be used to download the bundle and initiate the OTA update on the terminal."
                      }
                    }
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "suppressReceiptWhenInvoiceIssued": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  }
                }
              },
              {
                "title": "Crane",
                "required": [
                  "serialNumber",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Ampeco",
                "required": [
                  "suppressReceiptWhenInvoiceIssued",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "webhookUrl": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "suppressReceiptWhenInvoiceIssued": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                  }
                }
              },
              {
                "title": "Nayax",
                "required": [
                  "terminalId",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "This is the Device Number of the relevant Nayax terminal that is set up in the Nayax system. Please be careful to add the correct Device number on the relevant terminal."
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Embedded",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Pax",
                "required": [
                  "verificationCode",
                  "defaultLanguage",
                  "info",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "verificationCode": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Windcave",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Web portal",
                "required": [
                  "suppressReceiptWhenInvoiceIssued",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "suppressReceiptWhenInvoiceIssued": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                  }
                }
              },
              {
                "title": "AdyenCastles",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "merchantAccount",
                  "adyenApiKey",
                  "suppressReceiptWhenInvoiceIssued",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "merchantAccount": {
                    "type": "string",
                    "description": "Unique identifier of the merchant in Adyen's portal"
                  },
                  "adyenApiKey": {
                    "type": "string",
                    "description": "API key to authenticate requests to Adyen"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "suppressReceiptWhenInvoiceIssued": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  }
                }
              },
              {
                "title": "Printec Castles",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "bundle",
                  "suppressReceiptWhenInvoiceIssued",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "countryCode": {
                    "type": "string",
                    "description": "ISO 3166-1 alpha-2 country code",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "bundle": {
                    "type": "object",
                    "readOnly": true,
                    "properties": {
                      "version": {
                        "type": "string",
                        "example": [
                          "1.0.0",
                          "1.0.1",
                          "2.1.0"
                        ],
                        "description": "Desired version of the terminal android bundle. This field should be used to detect version difference between the actual one running on the terminal and the configured on the server, in order to detect if an OTA update is required."
                      },
                      "downloadUrl": {
                        "type": "string",
                        "description": "Download link to the archived (zip) bundle version. Can be used to download the bundle and initiate the OTA update on the terminal."
                      }
                    }
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "suppressReceiptWhenInvoiceIssued": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  }
                }
              },
              {
                "title": "Cardlink Castles",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "bundle",
                  "suppressReceiptWhenInvoiceIssued",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "isOnline": {
                    "type": "boolean",
                    "readOnly": true,
                    "deprecated": true,
                    "description": "Use `networkStatus` instead"
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "bundle": {
                    "type": "object",
                    "readOnly": true,
                    "properties": {
                      "version": {
                        "type": "string",
                        "example": [
                          "1.0.0",
                          "1.0.1",
                          "2.1.0"
                        ],
                        "description": "Desired version of the terminal android bundle. This field should be used to detect version difference between the actual one running on the terminal and the configured on the server, in order to detect if an OTA update is required."
                      },
                      "downloadUrl": {
                        "type": "string",
                        "description": "Download link to the archived (zip) bundle version. Can be used to download the bundle and initiate the OTA update on the terminal."
                      }
                    }
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "suppressReceiptWhenInvoiceIssued": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getPaymentTerminalDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "displayTextTimeout": {
                    "type": "integer"
                  },
                  "displayText": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string",
                    "description": "An optional external identifier for the terminal that can be used to reference it in external systems."
                  },
                  "isOnline": {
                    "type": "boolean",
                    "nullable": true,
                    "deprecated": true,
                    "description": "Use `networkStatus` instead"
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "suppressReceiptWhenInvoiceIssued": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                  }
                },
                "oneOf": [
                  {
                    "title": "Payter on CP",
                    "type": "object",
                    "properties": {
                      "preauthorizeAmount": {
                        "type": "number",
                        "description": "Provide a Pre-authorize amount when the terminal is linked to a single charger"
                      },
                      "currencyId": {
                        "type": "integer",
                        "readOnly": true
                      },
                      "valueAddedTaxId": {
                        "type": "integer",
                        "readOnly": true,
                        "deprecated": true,
                        "description": "**This property is deprecated and will be removed on Fri, 01 Jan 2027.**\nTax for payment terminals is derived from the operator's tax rules; when tax rules are disabled it falls back to the tariff's default tax, or to the operator's base tax when no tariff is assigned. Any value sent in create/update requests is accepted but ignored. Previously persisted values are still returned for backward compatibility but have no effect on billing.\n"
                      }
                    }
                  },
                  {
                    "title": "Payter on Location",
                    "type": "object",
                    "properties": {
                      "transactionTimeout": {
                        "type": "integer",
                        "description": "Provide a transaction timeout when the terminal is linked to a Location"
                      }
                    }
                  }
                ],
                "required": [
                  "id",
                  "name",
                  "defaultLanguage",
                  "serialNumber",
                  "integrationId",
                  "terminalType",
                  "operatorId",
                  "suppressReceiptWhenInvoiceIssued"
                ]
              },
              {
                "title": "Valina",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "bundle",
                  "suppressReceiptWhenInvoiceIssued",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "isOnline": {
                    "type": "boolean",
                    "readOnly": true,
                    "deprecated": true,
                    "description": "Use `networkStatus` instead"
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "bundle": {
                    "type": "object",
                    "readOnly": true,
                    "properties": {
                      "version": {
                        "type": "string",
                        "example": [
                          "1.0.0",
                          "1.0.1",
                          "2.1.0"
                        ],
                        "description": "Desired version of the terminal android bundle. This field should be used to detect version difference between the actual one running on the terminal and the configured on the server, in order to detect if an OTA update is required."
                      },
                      "downloadUrl": {
                        "type": "string",
                        "description": "Download link to the archived (zip) bundle version. Can be used to download the bundle and initiate the OTA update on the terminal."
                      }
                    }
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "suppressReceiptWhenInvoiceIssued": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  }
                }
              },
              {
                "title": "Crane",
                "required": [
                  "serialNumber",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Ampeco",
                "required": [
                  "suppressReceiptWhenInvoiceIssued",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "webhookUrl": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "suppressReceiptWhenInvoiceIssued": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                  }
                }
              },
              {
                "title": "Nayax",
                "required": [
                  "terminalId",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "This is the Device Number of the relevant Nayax terminal that is set up in the Nayax system. Please be careful to add the correct Device number on the relevant terminal."
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Embedded",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Pax",
                "required": [
                  "verificationCode",
                  "defaultLanguage",
                  "info",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "verificationCode": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Windcave",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Web portal",
                "required": [
                  "suppressReceiptWhenInvoiceIssued",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "suppressReceiptWhenInvoiceIssued": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                  }
                }
              },
              {
                "title": "AdyenCastles",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "merchantAccount",
                  "adyenApiKey",
                  "suppressReceiptWhenInvoiceIssued",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "merchantAccount": {
                    "type": "string",
                    "description": "Unique identifier of the merchant in Adyen's portal"
                  },
                  "adyenApiKey": {
                    "type": "string",
                    "description": "API key to authenticate requests to Adyen"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "suppressReceiptWhenInvoiceIssued": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  }
                }
              },
              {
                "title": "Printec Castles",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "bundle",
                  "suppressReceiptWhenInvoiceIssued",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "countryCode": {
                    "type": "string",
                    "description": "ISO 3166-1 alpha-2 country code",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "bundle": {
                    "type": "object",
                    "readOnly": true,
                    "properties": {
                      "version": {
                        "type": "string",
                        "example": [
                          "1.0.0",
                          "1.0.1",
                          "2.1.0"
                        ],
                        "description": "Desired version of the terminal android bundle. This field should be used to detect version difference between the actual one running on the terminal and the configured on the server, in order to detect if an OTA update is required."
                      },
                      "downloadUrl": {
                        "type": "string",
                        "description": "Download link to the archived (zip) bundle version. Can be used to download the bundle and initiate the OTA update on the terminal."
                      }
                    }
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "suppressReceiptWhenInvoiceIssued": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  }
                }
              },
              {
                "title": "Cardlink Castles",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "bundle",
                  "suppressReceiptWhenInvoiceIssued",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "isOnline": {
                    "type": "boolean",
                    "readOnly": true,
                    "deprecated": true,
                    "description": "Use `networkStatus` instead"
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "bundle": {
                    "type": "object",
                    "readOnly": true,
                    "properties": {
                      "version": {
                        "type": "string",
                        "example": [
                          "1.0.0",
                          "1.0.1",
                          "2.1.0"
                        ],
                        "description": "Desired version of the terminal android bundle. This field should be used to detect version difference between the actual one running on the terminal and the configured on the server, in order to detect if an OTA update is required."
                      },
                      "downloadUrl": {
                        "type": "string",
                        "description": "Download link to the archived (zip) bundle version. Can be used to download the bundle and initiate the OTA update on the terminal."
                      }
                    }
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "suppressReceiptWhenInvoiceIssued": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "deletePaymentTerminalDeprecated": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "updatePaymentTerminalDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "displayTextTimeout": {
                    "type": "integer"
                  },
                  "displayText": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string",
                    "description": "An optional external identifier for the terminal that can be used to reference it in external systems."
                  },
                  "isOnline": {
                    "type": "boolean",
                    "nullable": true,
                    "deprecated": true,
                    "description": "Use `networkStatus` instead"
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "suppressReceiptWhenInvoiceIssued": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                  }
                },
                "oneOf": [
                  {
                    "title": "Payter on CP",
                    "type": "object",
                    "properties": {
                      "preauthorizeAmount": {
                        "type": "number",
                        "description": "Provide a Pre-authorize amount when the terminal is linked to a single charger"
                      },
                      "currencyId": {
                        "type": "integer",
                        "readOnly": true
                      },
                      "valueAddedTaxId": {
                        "type": "integer",
                        "readOnly": true,
                        "deprecated": true,
                        "description": "**This property is deprecated and will be removed on Fri, 01 Jan 2027.**\nTax for payment terminals is derived from the operator's tax rules; when tax rules are disabled it falls back to the tariff's default tax, or to the operator's base tax when no tariff is assigned. Any value sent in create/update requests is accepted but ignored. Previously persisted values are still returned for backward compatibility but have no effect on billing.\n"
                      }
                    }
                  },
                  {
                    "title": "Payter on Location",
                    "type": "object",
                    "properties": {
                      "transactionTimeout": {
                        "type": "integer",
                        "description": "Provide a transaction timeout when the terminal is linked to a Location"
                      }
                    }
                  }
                ],
                "required": [
                  "id",
                  "name",
                  "defaultLanguage",
                  "serialNumber",
                  "integrationId",
                  "terminalType",
                  "operatorId",
                  "suppressReceiptWhenInvoiceIssued"
                ]
              },
              {
                "title": "Valina",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "bundle",
                  "suppressReceiptWhenInvoiceIssued",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "isOnline": {
                    "type": "boolean",
                    "readOnly": true,
                    "deprecated": true,
                    "description": "Use `networkStatus` instead"
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "bundle": {
                    "type": "object",
                    "readOnly": true,
                    "properties": {
                      "version": {
                        "type": "string",
                        "example": [
                          "1.0.0",
                          "1.0.1",
                          "2.1.0"
                        ],
                        "description": "Desired version of the terminal android bundle. This field should be used to detect version difference between the actual one running on the terminal and the configured on the server, in order to detect if an OTA update is required."
                      },
                      "downloadUrl": {
                        "type": "string",
                        "description": "Download link to the archived (zip) bundle version. Can be used to download the bundle and initiate the OTA update on the terminal."
                      }
                    }
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "suppressReceiptWhenInvoiceIssued": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  }
                }
              },
              {
                "title": "Crane",
                "required": [
                  "serialNumber",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Ampeco",
                "required": [
                  "suppressReceiptWhenInvoiceIssued",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "webhookUrl": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "suppressReceiptWhenInvoiceIssued": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                  }
                }
              },
              {
                "title": "Nayax",
                "required": [
                  "terminalId",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "This is the Device Number of the relevant Nayax terminal that is set up in the Nayax system. Please be careful to add the correct Device number on the relevant terminal."
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Embedded",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Pax",
                "required": [
                  "verificationCode",
                  "defaultLanguage",
                  "info",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "verificationCode": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Windcave",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Web portal",
                "required": [
                  "suppressReceiptWhenInvoiceIssued",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "suppressReceiptWhenInvoiceIssued": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                  }
                }
              },
              {
                "title": "AdyenCastles",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "merchantAccount",
                  "adyenApiKey",
                  "suppressReceiptWhenInvoiceIssued",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "merchantAccount": {
                    "type": "string",
                    "description": "Unique identifier of the merchant in Adyen's portal"
                  },
                  "adyenApiKey": {
                    "type": "string",
                    "description": "API key to authenticate requests to Adyen"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "suppressReceiptWhenInvoiceIssued": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  }
                }
              },
              {
                "title": "Printec Castles",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "bundle",
                  "suppressReceiptWhenInvoiceIssued",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "countryCode": {
                    "type": "string",
                    "description": "ISO 3166-1 alpha-2 country code",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "bundle": {
                    "type": "object",
                    "readOnly": true,
                    "properties": {
                      "version": {
                        "type": "string",
                        "example": [
                          "1.0.0",
                          "1.0.1",
                          "2.1.0"
                        ],
                        "description": "Desired version of the terminal android bundle. This field should be used to detect version difference between the actual one running on the terminal and the configured on the server, in order to detect if an OTA update is required."
                      },
                      "downloadUrl": {
                        "type": "string",
                        "description": "Download link to the archived (zip) bundle version. Can be used to download the bundle and initiate the OTA update on the terminal."
                      }
                    }
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "suppressReceiptWhenInvoiceIssued": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  }
                }
              },
              {
                "title": "Cardlink Castles",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "bundle",
                  "suppressReceiptWhenInvoiceIssued",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Ampeco",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "isOnline": {
                    "type": "boolean",
                    "readOnly": true,
                    "deprecated": true,
                    "description": "Use `networkStatus` instead"
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "bundle": {
                    "type": "object",
                    "readOnly": true,
                    "properties": {
                      "version": {
                        "type": "string",
                        "example": [
                          "1.0.0",
                          "1.0.1",
                          "2.1.0"
                        ],
                        "description": "Desired version of the terminal android bundle. This field should be used to detect version difference between the actual one running on the terminal and the configured on the server, in order to detect if an OTA update is required."
                      },
                      "downloadUrl": {
                        "type": "string",
                        "description": "Download link to the archived (zip) bundle version. Can be used to download the bundle and initiate the OTA update on the terminal."
                      }
                    }
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "suppressReceiptWhenInvoiceIssued": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "When true, receipts are suppressed when invoices are issued for tax compliance in markets where issuing both documents for the same purchase is prohibited"
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getPaymentTerminalsV1_1": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Generic",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Adyen Castles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "defaultLanguage": {
                      "type": "string"
                    },
                    "displayTextTimeout": {
                      "type": "integer"
                    },
                    "displayText": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string",
                      "description": "An optional external identifier for the terminal that can be used to reference it in external systems."
                    },
                    "isOnline": {
                      "type": "boolean",
                      "nullable": true,
                      "deprecated": true,
                      "description": "Use `networkStatus` instead"
                    },
                    "networkStatus": {
                      "type": "string",
                      "enum": [
                        "online",
                        "offline",
                        "unknown"
                      ]
                    }
                  },
                  "oneOf": [
                    {
                      "title": "Payter on CP",
                      "type": "object",
                      "properties": {
                        "preauthorizeAmount": {
                          "type": "number",
                          "description": "Provide a Pre-authorize amount when the terminal is linked to a single charger"
                        },
                        "currencyId": {
                          "type": "integer",
                          "readOnly": true
                        },
                        "valueAddedTaxId": {
                          "type": "integer",
                          "readOnly": true,
                          "deprecated": true,
                          "description": "**This property is deprecated and will be removed on Fri, 01 Jan 2027.**\nTax for payment terminals is derived from the operator's tax rules; when tax rules are disabled it falls back to the tariff's default tax, or to the operator's base tax when no tariff is assigned. Any value sent in create/update requests is accepted but ignored. Previously persisted values are still returned for backward compatibility but have no effect on billing.\n"
                        }
                      }
                    },
                    {
                      "title": "Payter on Location",
                      "type": "object",
                      "properties": {
                        "transactionTimeout": {
                          "type": "integer",
                          "description": "Provide a transaction timeout when the terminal is linked to a Location"
                        }
                      }
                    }
                  ],
                  "required": [
                    "id",
                    "name",
                    "defaultLanguage",
                    "serialNumber",
                    "integrationId",
                    "terminalType",
                    "operatorId"
                  ]
                },
                {
                  "title": "Valina",
                  "required": [
                    "phone",
                    "defaultLanguage",
                    "info",
                    "bundle",
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId",
                    "darkThemePrimaryColor",
                    "darkThemeSecondaryColor",
                    "darkThemeTertiaryColor",
                    "lightThemePrimaryColor",
                    "lightThemeSecondaryColor",
                    "lightThemeTertiaryColor"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Generic",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Adyen Castles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "adminToken": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                    },
                    "isOnline": {
                      "type": "boolean",
                      "readOnly": true,
                      "deprecated": true,
                      "description": "Use `networkStatus` instead"
                    },
                    "networkStatus": {
                      "type": "string",
                      "enum": [
                        "online",
                        "offline",
                        "unknown"
                      ]
                    },
                    "phone": {
                      "type": "string"
                    },
                    "defaultLanguage": {
                      "type": "string"
                    },
                    "presentCardOnStopSession": {
                      "type": "boolean",
                      "default": false
                    },
                    "info": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "currencyCode": {
                      "type": "string",
                      "readOnly": true
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string"
                    },
                    "supportedLanguages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "readOnly": true
                    },
                    "bundle": {
                      "type": "object",
                      "readOnly": true,
                      "properties": {
                        "version": {
                          "type": "string",
                          "example": [
                            "1.0.0",
                            "1.0.1",
                            "2.1.0"
                          ],
                          "description": "The target OTA bundle version configured for this terminal (terminal-level override if set, otherwise the integration default). Pairs with `currentBundleVersion`, which reflects the version actually running on the device."
                        },
                        "downloadUrl": {
                          "type": "string",
                          "description": "Download link to the archived (zip) bundle version."
                        }
                      }
                    },
                    "networkStatusMonitoringEnabled": {
                      "type": "boolean",
                      "readOnly": true
                    },
                    "kioskModeEnabled": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                    },
                    "simplifiedJourneyMode": {
                      "type": "string",
                      "enum": [
                        "off",
                        "evseList",
                        "screensaver"
                      ],
                      "default": "off",
                      "description": "Simplified journey mode for the terminal app:\n- **off**: Standard multi-step journey (default)\n- **evseList**: Driver selects an EVSE from a list on the terminal\n- **screensaver**: Passive branded display; terminal auto-triggers pre-authorization when an EVSE enters Preparing status\n",
                      "example": "off"
                    },
                    "screensaverWelcomeMessage": {
                      "description": "Translatable welcome message shown on the terminal's screensaver. Returned only when `simplifiedJourneyMode` is `screensaver`. The response value is resolved per field through a three-layer cascade: the per-terminal value if set, otherwise the integration-level default configured on the Worldline Valina/Castles integration, otherwise the property is omitted (the Terminal app falls back to its shipped default). Each translation is capped at 100 characters.\n",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "screensaverPaymentMethods": {
                      "type": "array",
                      "maxItems": 8,
                      "items": {
                        "type": "string",
                        "enum": [
                          "visa",
                          "mastercard",
                          "paypal",
                          "maestro",
                          "amex",
                          "bancontact",
                          "cartes_bancaires",
                          "diners_club",
                          "discover",
                          "interac",
                          "jcb",
                          "mada",
                          "visa_electron",
                          "applepay",
                          "googlepay",
                          "twint"
                        ],
                        "description": "Payment method icon displayed on the terminal's screensaver. Values cover supported card networks and digital wallet types.\n"
                      },
                      "description": "Ordered list of payment-method icons displayed on the terminal's screensaver. Returned only when `simplifiedJourneyMode` is `screensaver`. The response value is resolved per field through a three-layer cascade: the per-terminal value if set, otherwise the integration-level default configured on the Worldline Valina/Castles integration, otherwise the property is omitted (the Terminal app resolves the icon list at boot).\n"
                    },
                    "screensaverLogoUrl": {
                      "type": "string",
                      "format": "uri",
                      "readOnly": true,
                      "description": "URL of the uploaded screensaver logo asset. Returned only when `simplifiedJourneyMode` is `screensaver`. The response value is resolved per field through a three-layer cascade: the per-terminal value if set, otherwise the integration-level default configured on the Worldline Valina/Castles integration, otherwise the property is omitted (the Terminal app falls back to its shipped default).\n"
                    },
                    "invoiceFields": {
                      "type": "array",
                      "readOnly": true,
                      "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string",
                            "description": "Field identifier (e.g., email, name, taxId, country)"
                          },
                          "required": {
                            "type": "boolean",
                            "description": "Whether this field is required or optional"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "individual",
                              "company"
                            ],
                            "description": "The invoice type this field belongs to (individual or company)"
                          },
                          "label": {
                            "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "locale": {
                                  "type": "string",
                                  "description": "valid locale"
                                },
                                "translation": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        },
                        "required": [
                          "field",
                          "required",
                          "type",
                          "label"
                        ]
                      }
                    },
                    "invoiceDetailsMandatory": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                    },
                    "showTermsAndConditions": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                    },
                    "termVersionId": {
                      "type": "integer",
                      "readOnly": true,
                      "nullable": true,
                      "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                    },
                    "terminalId": {
                      "type": "string",
                      "description": "The terminal ID assigned by the acquirer."
                    },
                    "terminalModel": {
                      "type": "string",
                      "description": "The hardware model reported by the terminal."
                    },
                    "currentBundleVersion": {
                      "type": "string",
                      "description": "The bundle version currently running on the terminal."
                    },
                    "lastCertifiedAppVersion": {
                      "type": "string",
                      "description": "The last certified app version reported by the terminal."
                    },
                    "themeMode": {
                      "type": "string",
                      "enum": [
                        "dark",
                        "light",
                        "auto"
                      ],
                      "readOnly": true,
                      "description": "Color scheme configured for the terminal app. Defaults to `dark` when unset.\n- **dark**: Light text on a dark background (default).\n- **light**: Dark text on a light background.\n- **auto**: Shows the light theme during the day and the dark theme at night, based on the terminal's local time.\n",
                      "example": "dark"
                    },
                    "darkThemePrimaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the action buttons (CTA) in the dark theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                    },
                    "darkThemeSecondaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the action card surface fill in the dark theme, as a hex value. When no value is set, the platform default `#262D40` is returned."
                    },
                    "darkThemeTertiaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the background surface fill in the dark theme, as a hex value. When no value is set, the platform default `#1A1E2B` is returned."
                    },
                    "darkThemeLogoUrl": {
                      "type": "string",
                      "format": "uri",
                      "readOnly": true,
                      "description": "URL of the uploaded logo shown in the dark theme. Omitted when unset, in which case the terminal app uses its built-in default."
                    },
                    "lightThemePrimaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the action buttons (CTA) in the light theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                    },
                    "lightThemeSecondaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the action card surface fill in the light theme, as a hex value. When no value is set, the platform default `#FFFFFF` is returned."
                    },
                    "lightThemeTertiaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the background surface fill in the light theme, as a hex value. When no value is set, the platform default `#EDF1F7` is returned."
                    },
                    "lightThemeLogoUrl": {
                      "type": "string",
                      "format": "uri",
                      "readOnly": true,
                      "description": "URL of the uploaded logo shown in the light theme. Omitted when unset, in which case the terminal app uses its built-in default."
                    }
                  }
                },
                {
                  "title": "Crane",
                  "required": [
                    "serialNumber",
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Generic",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Adyen Castles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string"
                    }
                  }
                },
                {
                  "title": "Generic",
                  "required": [
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Generic",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Adyen Castles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "adminToken": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                    },
                    "webhookUrl": {
                      "type": "string",
                      "readOnly": true
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string"
                    }
                  }
                },
                {
                  "title": "Nayax",
                  "required": [
                    "terminalId",
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Generic",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Adyen Castles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "terminalId": {
                      "type": "string",
                      "description": "This is the Device Number of the relevant Nayax terminal that is set up in the Nayax system. Please be careful to add the correct Device number on the relevant terminal."
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string"
                    }
                  }
                },
                {
                  "title": "Embedded",
                  "required": [
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Generic",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Adyen Castles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string"
                    }
                  }
                },
                {
                  "title": "Pax",
                  "required": [
                    "verificationCode",
                    "defaultLanguage",
                    "info",
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Generic",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Adyen Castles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "verificationCode": {
                      "type": "string"
                    },
                    "defaultLanguage": {
                      "type": "string"
                    },
                    "presentCardOnStopSession": {
                      "type": "boolean",
                      "default": false
                    },
                    "info": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string"
                    }
                  }
                },
                {
                  "title": "Windcave",
                  "required": [
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Generic",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Adyen Castles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string"
                    }
                  }
                },
                {
                  "title": "Web portal",
                  "required": [
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Generic",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Adyen Castles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "invoiceFields": {
                      "type": "array",
                      "readOnly": true,
                      "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string",
                            "description": "Field identifier (e.g., email, name, taxId, country)"
                          },
                          "required": {
                            "type": "boolean",
                            "description": "Whether this field is required or optional"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "individual",
                              "company"
                            ],
                            "description": "The invoice type this field belongs to (individual or company)"
                          },
                          "label": {
                            "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "locale": {
                                  "type": "string",
                                  "description": "valid locale"
                                },
                                "translation": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        },
                        "required": [
                          "field",
                          "required",
                          "type",
                          "label"
                        ]
                      }
                    },
                    "invoiceDetailsMandatory": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                    }
                  }
                },
                {
                  "title": "AdyenCastles",
                  "required": [
                    "phone",
                    "defaultLanguage",
                    "info",
                    "merchantAccount",
                    "adyenApiKey",
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId",
                    "darkThemePrimaryColor",
                    "darkThemeSecondaryColor",
                    "darkThemeTertiaryColor",
                    "lightThemePrimaryColor",
                    "lightThemeSecondaryColor",
                    "lightThemeTertiaryColor"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Generic",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Adyen Castles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "adminToken": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                    },
                    "networkStatus": {
                      "type": "string",
                      "enum": [
                        "online",
                        "offline",
                        "unknown"
                      ]
                    },
                    "phone": {
                      "type": "string"
                    },
                    "defaultLanguage": {
                      "type": "string"
                    },
                    "presentCardOnStopSession": {
                      "type": "boolean",
                      "default": false
                    },
                    "info": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "currencyCode": {
                      "type": "string",
                      "readOnly": true
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string"
                    },
                    "merchantAccount": {
                      "type": "string",
                      "description": "Unique identifier of the merchant in Adyen's portal"
                    },
                    "adyenApiKey": {
                      "type": "string",
                      "description": "API key to authenticate requests to Adyen"
                    },
                    "supportedLanguages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "readOnly": true
                    },
                    "networkStatusMonitoringEnabled": {
                      "type": "boolean",
                      "readOnly": true
                    },
                    "kioskModeEnabled": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                    },
                    "invoiceFields": {
                      "type": "array",
                      "readOnly": true,
                      "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string",
                            "description": "Field identifier (e.g., email, name, taxId, country)"
                          },
                          "required": {
                            "type": "boolean",
                            "description": "Whether this field is required or optional"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "individual",
                              "company"
                            ],
                            "description": "The invoice type this field belongs to (individual or company)"
                          },
                          "label": {
                            "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "locale": {
                                  "type": "string",
                                  "description": "valid locale"
                                },
                                "translation": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        },
                        "required": [
                          "field",
                          "required",
                          "type",
                          "label"
                        ]
                      }
                    },
                    "invoiceDetailsMandatory": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                    },
                    "showTermsAndConditions": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                    },
                    "termVersionId": {
                      "type": "integer",
                      "readOnly": true,
                      "nullable": true,
                      "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                    },
                    "terminalId": {
                      "type": "string",
                      "description": "The terminal ID assigned by the acquirer."
                    },
                    "terminalModel": {
                      "type": "string",
                      "description": "The hardware model reported by the terminal."
                    },
                    "currentBundleVersion": {
                      "type": "string",
                      "description": "The bundle version currently running on the terminal."
                    },
                    "lastCertifiedAppVersion": {
                      "type": "string",
                      "description": "The last certified app version reported by the terminal."
                    },
                    "themeMode": {
                      "type": "string",
                      "enum": [
                        "dark",
                        "light",
                        "auto"
                      ],
                      "readOnly": true,
                      "description": "Color scheme configured for the terminal app. Defaults to `dark` when unset.\n- **dark**: Light text on a dark background (default).\n- **light**: Dark text on a light background.\n- **auto**: Shows the light theme during the day and the dark theme at night, based on the terminal's local time.\n",
                      "example": "dark"
                    },
                    "darkThemePrimaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the action buttons (CTA) in the dark theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                    },
                    "darkThemeSecondaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the action card surface fill in the dark theme, as a hex value. When no value is set, the platform default `#262D40` is returned."
                    },
                    "darkThemeTertiaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the background surface fill in the dark theme, as a hex value. When no value is set, the platform default `#1A1E2B` is returned."
                    },
                    "darkThemeLogoUrl": {
                      "type": "string",
                      "format": "uri",
                      "readOnly": true,
                      "description": "URL of the uploaded logo shown in the dark theme. Omitted when unset, in which case the terminal app uses its built-in default."
                    },
                    "lightThemePrimaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the action buttons (CTA) in the light theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                    },
                    "lightThemeSecondaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the action card surface fill in the light theme, as a hex value. When no value is set, the platform default `#FFFFFF` is returned."
                    },
                    "lightThemeTertiaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the background surface fill in the light theme, as a hex value. When no value is set, the platform default `#EDF1F7` is returned."
                    },
                    "lightThemeLogoUrl": {
                      "type": "string",
                      "format": "uri",
                      "readOnly": true,
                      "description": "URL of the uploaded logo shown in the light theme. Omitted when unset, in which case the terminal app uses its built-in default."
                    }
                  }
                },
                {
                  "title": "Printec Castles",
                  "required": [
                    "phone",
                    "defaultLanguage",
                    "info",
                    "bundle",
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId",
                    "darkThemePrimaryColor",
                    "darkThemeSecondaryColor",
                    "darkThemeTertiaryColor",
                    "lightThemePrimaryColor",
                    "lightThemeSecondaryColor",
                    "lightThemeTertiaryColor"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Generic",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Adyen Castles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "adminToken": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                    },
                    "networkStatus": {
                      "type": "string",
                      "enum": [
                        "online",
                        "offline",
                        "unknown"
                      ]
                    },
                    "phone": {
                      "type": "string"
                    },
                    "defaultLanguage": {
                      "type": "string"
                    },
                    "presentCardOnStopSession": {
                      "type": "boolean",
                      "default": false
                    },
                    "info": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "currencyCode": {
                      "type": "string",
                      "readOnly": true
                    },
                    "countryCode": {
                      "type": "string",
                      "description": "ISO 3166-1 alpha-2 country code",
                      "readOnly": true
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string"
                    },
                    "supportedLanguages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "readOnly": true
                    },
                    "bundle": {
                      "type": "object",
                      "readOnly": true,
                      "properties": {
                        "version": {
                          "type": "string",
                          "example": [
                            "1.0.0",
                            "1.0.1",
                            "2.1.0"
                          ],
                          "description": "The target OTA bundle version configured for this terminal (terminal-level override if set, otherwise the integration default). Pairs with `currentBundleVersion`, which reflects the version actually running on the device."
                        },
                        "downloadUrl": {
                          "type": "string",
                          "description": "Download link to the archived (zip) bundle version."
                        }
                      }
                    },
                    "networkStatusMonitoringEnabled": {
                      "type": "boolean",
                      "readOnly": true
                    },
                    "kioskModeEnabled": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                    },
                    "invoiceFields": {
                      "type": "array",
                      "readOnly": true,
                      "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string",
                            "description": "Field identifier (e.g., email, name, taxId, country)"
                          },
                          "required": {
                            "type": "boolean",
                            "description": "Whether this field is required or optional"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "individual",
                              "company"
                            ],
                            "description": "The invoice type this field belongs to (individual or company)"
                          },
                          "label": {
                            "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "locale": {
                                  "type": "string",
                                  "description": "valid locale"
                                },
                                "translation": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        },
                        "required": [
                          "field",
                          "required",
                          "type",
                          "label"
                        ]
                      }
                    },
                    "invoiceDetailsMandatory": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                    },
                    "showTermsAndConditions": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                    },
                    "termVersionId": {
                      "type": "integer",
                      "readOnly": true,
                      "nullable": true,
                      "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                    },
                    "terminalId": {
                      "type": "string",
                      "description": "The terminal ID assigned by the acquirer."
                    },
                    "terminalModel": {
                      "type": "string",
                      "description": "The hardware model reported by the terminal."
                    },
                    "currentBundleVersion": {
                      "type": "string",
                      "description": "The bundle version currently running on the terminal."
                    },
                    "lastCertifiedAppVersion": {
                      "type": "string",
                      "description": "The last certified app version reported by the terminal."
                    },
                    "themeMode": {
                      "type": "string",
                      "enum": [
                        "dark",
                        "light",
                        "auto"
                      ],
                      "readOnly": true,
                      "description": "Color scheme configured for the terminal app. Defaults to `dark` when unset.\n- **dark**: Light text on a dark background (default).\n- **light**: Dark text on a light background.\n- **auto**: Shows the light theme during the day and the dark theme at night, based on the terminal's local time.\n",
                      "example": "dark"
                    },
                    "darkThemePrimaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the action buttons (CTA) in the dark theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                    },
                    "darkThemeSecondaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the action card surface fill in the dark theme, as a hex value. When no value is set, the platform default `#262D40` is returned."
                    },
                    "darkThemeTertiaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the background surface fill in the dark theme, as a hex value. When no value is set, the platform default `#1A1E2B` is returned."
                    },
                    "darkThemeLogoUrl": {
                      "type": "string",
                      "format": "uri",
                      "readOnly": true,
                      "description": "URL of the uploaded logo shown in the dark theme. Omitted when unset, in which case the terminal app uses its built-in default."
                    },
                    "lightThemePrimaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the action buttons (CTA) in the light theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                    },
                    "lightThemeSecondaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the action card surface fill in the light theme, as a hex value. When no value is set, the platform default `#FFFFFF` is returned."
                    },
                    "lightThemeTertiaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the background surface fill in the light theme, as a hex value. When no value is set, the platform default `#EDF1F7` is returned."
                    },
                    "lightThemeLogoUrl": {
                      "type": "string",
                      "format": "uri",
                      "readOnly": true,
                      "description": "URL of the uploaded logo shown in the light theme. Omitted when unset, in which case the terminal app uses its built-in default."
                    }
                  }
                },
                {
                  "title": "Cardlink Castles",
                  "required": [
                    "phone",
                    "defaultLanguage",
                    "info",
                    "bundle",
                    "name",
                    "integrationId",
                    "terminalType",
                    "operatorId",
                    "darkThemePrimaryColor",
                    "darkThemeSecondaryColor",
                    "darkThemeTertiaryColor",
                    "lightThemePrimaryColor",
                    "lightThemeSecondaryColor",
                    "lightThemeTertiaryColor"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "name": {
                      "type": "string"
                    },
                    "integrationId": {
                      "type": "integer"
                    },
                    "terminalType": {
                      "type": "string",
                      "enum": [
                        "Payter",
                        "Valina",
                        "Crane",
                        "Generic",
                        "Nayax",
                        "Embedded",
                        "Pax",
                        "Windcave",
                        "Web portal",
                        "AdyenCastles",
                        "Adyen Castles",
                        "Printec Castles",
                        "Cardlink Castles"
                      ]
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "The operator ID for this terminal."
                    },
                    "chargingZoneId": {
                      "type": "integer",
                      "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                    },
                    "chargePointId": {
                      "type": "integer",
                      "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                    },
                    "adminToken": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                    },
                    "isOnline": {
                      "type": "boolean",
                      "readOnly": true,
                      "deprecated": true,
                      "description": "Use `networkStatus` instead"
                    },
                    "networkStatus": {
                      "type": "string",
                      "enum": [
                        "online",
                        "offline",
                        "unknown"
                      ]
                    },
                    "phone": {
                      "type": "string"
                    },
                    "defaultLanguage": {
                      "type": "string"
                    },
                    "presentCardOnStopSession": {
                      "type": "boolean",
                      "default": false
                    },
                    "info": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "currencyCode": {
                      "type": "string",
                      "readOnly": true
                    },
                    "serialNumber": {
                      "type": "string"
                    },
                    "externalId": {
                      "type": "string"
                    },
                    "supportedLanguages": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "readOnly": true
                    },
                    "bundle": {
                      "type": "object",
                      "readOnly": true,
                      "properties": {
                        "version": {
                          "type": "string",
                          "example": [
                            "1.0.0",
                            "1.0.1",
                            "2.1.0"
                          ],
                          "description": "The target OTA bundle version configured for this terminal (terminal-level override if set, otherwise the integration default). Pairs with `currentBundleVersion`, which reflects the version actually running on the device."
                        },
                        "downloadUrl": {
                          "type": "string",
                          "description": "Download link to the archived (zip) bundle version."
                        }
                      }
                    },
                    "networkStatusMonitoringEnabled": {
                      "type": "boolean",
                      "readOnly": true
                    },
                    "kioskModeEnabled": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                    },
                    "invoiceFields": {
                      "type": "array",
                      "readOnly": true,
                      "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string",
                            "description": "Field identifier (e.g., email, name, taxId, country)"
                          },
                          "required": {
                            "type": "boolean",
                            "description": "Whether this field is required or optional"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "individual",
                              "company"
                            ],
                            "description": "The invoice type this field belongs to (individual or company)"
                          },
                          "label": {
                            "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "locale": {
                                  "type": "string",
                                  "description": "valid locale"
                                },
                                "translation": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        },
                        "required": [
                          "field",
                          "required",
                          "type",
                          "label"
                        ]
                      }
                    },
                    "invoiceDetailsMandatory": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                    },
                    "showTermsAndConditions": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                    },
                    "termVersionId": {
                      "type": "integer",
                      "readOnly": true,
                      "nullable": true,
                      "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                    },
                    "terminalId": {
                      "type": "string",
                      "description": "The terminal ID assigned by the acquirer."
                    },
                    "terminalModel": {
                      "type": "string",
                      "description": "The hardware model reported by the terminal."
                    },
                    "currentBundleVersion": {
                      "type": "string",
                      "description": "The bundle version currently running on the terminal."
                    },
                    "lastCertifiedAppVersion": {
                      "type": "string",
                      "description": "The last certified app version reported by the terminal."
                    },
                    "themeMode": {
                      "type": "string",
                      "enum": [
                        "dark",
                        "light",
                        "auto"
                      ],
                      "readOnly": true,
                      "description": "Color scheme configured for the terminal app. Defaults to `dark` when unset.\n- **dark**: Light text on a dark background (default).\n- **light**: Dark text on a light background.\n- **auto**: Shows the light theme during the day and the dark theme at night, based on the terminal's local time.\n",
                      "example": "dark"
                    },
                    "darkThemePrimaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the action buttons (CTA) in the dark theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                    },
                    "darkThemeSecondaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the action card surface fill in the dark theme, as a hex value. When no value is set, the platform default `#262D40` is returned."
                    },
                    "darkThemeTertiaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the background surface fill in the dark theme, as a hex value. When no value is set, the platform default `#1A1E2B` is returned."
                    },
                    "darkThemeLogoUrl": {
                      "type": "string",
                      "format": "uri",
                      "readOnly": true,
                      "description": "URL of the uploaded logo shown in the dark theme. Omitted when unset, in which case the terminal app uses its built-in default."
                    },
                    "lightThemePrimaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the action buttons (CTA) in the light theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                    },
                    "lightThemeSecondaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the action card surface fill in the light theme, as a hex value. When no value is set, the platform default `#FFFFFF` is returned."
                    },
                    "lightThemeTertiaryColor": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Color of the background surface fill in the light theme, as a hex value. When no value is set, the platform default `#EDF1F7` is returned."
                    },
                    "lightThemeLogoUrl": {
                      "type": "string",
                      "format": "uri",
                      "readOnly": true,
                      "description": "URL of the uploaded logo shown in the light theme. Omitted when unset, in which case the terminal app uses its built-in default."
                    }
                  }
                }
              ],
              "discriminator": {
                "propertyName": "terminalType"
              },
              "type": "object",
              "properties": {
                "customFields": {
                  "readOnly": true,
                  "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the payment terminal are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "createPaymentTerminalV1_1": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "displayTextTimeout": {
                    "type": "integer"
                  },
                  "displayText": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string",
                    "description": "An optional external identifier for the terminal that can be used to reference it in external systems."
                  },
                  "isOnline": {
                    "type": "boolean",
                    "nullable": true,
                    "deprecated": true,
                    "description": "Use `networkStatus` instead"
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  }
                },
                "oneOf": [
                  {
                    "title": "Payter on CP",
                    "type": "object",
                    "properties": {
                      "preauthorizeAmount": {
                        "type": "number",
                        "description": "Provide a Pre-authorize amount when the terminal is linked to a single charger"
                      },
                      "currencyId": {
                        "type": "integer",
                        "readOnly": true
                      },
                      "valueAddedTaxId": {
                        "type": "integer",
                        "readOnly": true,
                        "deprecated": true,
                        "description": "**This property is deprecated and will be removed on Fri, 01 Jan 2027.**\nTax for payment terminals is derived from the operator's tax rules; when tax rules are disabled it falls back to the tariff's default tax, or to the operator's base tax when no tariff is assigned. Any value sent in create/update requests is accepted but ignored. Previously persisted values are still returned for backward compatibility but have no effect on billing.\n"
                      }
                    }
                  },
                  {
                    "title": "Payter on Location",
                    "type": "object",
                    "properties": {
                      "transactionTimeout": {
                        "type": "integer",
                        "description": "Provide a transaction timeout when the terminal is linked to a Location"
                      }
                    }
                  }
                ],
                "required": [
                  "id",
                  "name",
                  "defaultLanguage",
                  "serialNumber",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ]
              },
              {
                "title": "Valina",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "bundle",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId",
                  "darkThemePrimaryColor",
                  "darkThemeSecondaryColor",
                  "darkThemeTertiaryColor",
                  "lightThemePrimaryColor",
                  "lightThemeSecondaryColor",
                  "lightThemeTertiaryColor"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "isOnline": {
                    "type": "boolean",
                    "readOnly": true,
                    "deprecated": true,
                    "description": "Use `networkStatus` instead"
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "bundle": {
                    "type": "object",
                    "readOnly": true,
                    "properties": {
                      "version": {
                        "type": "string",
                        "example": [
                          "1.0.0",
                          "1.0.1",
                          "2.1.0"
                        ],
                        "description": "The target OTA bundle version configured for this terminal (terminal-level override if set, otherwise the integration default). Pairs with `currentBundleVersion`, which reflects the version actually running on the device."
                      },
                      "downloadUrl": {
                        "type": "string",
                        "description": "Download link to the archived (zip) bundle version."
                      }
                    }
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "simplifiedJourneyMode": {
                    "type": "string",
                    "enum": [
                      "off",
                      "evseList",
                      "screensaver"
                    ],
                    "default": "off",
                    "description": "Simplified journey mode for the terminal app:\n- **off**: Standard multi-step journey (default)\n- **evseList**: Driver selects an EVSE from a list on the terminal\n- **screensaver**: Passive branded display; terminal auto-triggers pre-authorization when an EVSE enters Preparing status\n",
                    "example": "off"
                  },
                  "screensaverWelcomeMessage": {
                    "description": "Translatable welcome message shown on the terminal's screensaver. Returned only when `simplifiedJourneyMode` is `screensaver`. The response value is resolved per field through a three-layer cascade: the per-terminal value if set, otherwise the integration-level default configured on the Worldline Valina/Castles integration, otherwise the property is omitted (the Terminal app falls back to its shipped default). Each translation is capped at 100 characters.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "screensaverPaymentMethods": {
                    "type": "array",
                    "maxItems": 8,
                    "items": {
                      "type": "string",
                      "enum": [
                        "visa",
                        "mastercard",
                        "paypal",
                        "maestro",
                        "amex",
                        "bancontact",
                        "cartes_bancaires",
                        "diners_club",
                        "discover",
                        "interac",
                        "jcb",
                        "mada",
                        "visa_electron",
                        "applepay",
                        "googlepay",
                        "twint"
                      ],
                      "description": "Payment method icon displayed on the terminal's screensaver. Values cover supported card networks and digital wallet types.\n"
                    },
                    "description": "Ordered list of payment-method icons displayed on the terminal's screensaver. Returned only when `simplifiedJourneyMode` is `screensaver`. The response value is resolved per field through a three-layer cascade: the per-terminal value if set, otherwise the integration-level default configured on the Worldline Valina/Castles integration, otherwise the property is omitted (the Terminal app resolves the icon list at boot).\n"
                  },
                  "screensaverLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded screensaver logo asset. Returned only when `simplifiedJourneyMode` is `screensaver`. The response value is resolved per field through a three-layer cascade: the per-terminal value if set, otherwise the integration-level default configured on the Worldline Valina/Castles integration, otherwise the property is omitted (the Terminal app falls back to its shipped default).\n"
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "invoiceDetailsMandatory": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "The terminal ID assigned by the acquirer."
                  },
                  "terminalModel": {
                    "type": "string",
                    "description": "The hardware model reported by the terminal."
                  },
                  "currentBundleVersion": {
                    "type": "string",
                    "description": "The bundle version currently running on the terminal."
                  },
                  "lastCertifiedAppVersion": {
                    "type": "string",
                    "description": "The last certified app version reported by the terminal."
                  },
                  "themeMode": {
                    "type": "string",
                    "enum": [
                      "dark",
                      "light",
                      "auto"
                    ],
                    "readOnly": true,
                    "description": "Color scheme configured for the terminal app. Defaults to `dark` when unset.\n- **dark**: Light text on a dark background (default).\n- **light**: Dark text on a light background.\n- **auto**: Shows the light theme during the day and the dark theme at night, based on the terminal's local time.\n",
                    "example": "dark"
                  },
                  "darkThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the dark theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "darkThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the dark theme, as a hex value. When no value is set, the platform default `#262D40` is returned."
                  },
                  "darkThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the dark theme, as a hex value. When no value is set, the platform default `#1A1E2B` is returned."
                  },
                  "darkThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the dark theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  },
                  "lightThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the light theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "lightThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the light theme, as a hex value. When no value is set, the platform default `#FFFFFF` is returned."
                  },
                  "lightThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the light theme, as a hex value. When no value is set, the platform default `#EDF1F7` is returned."
                  },
                  "lightThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the light theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  }
                }
              },
              {
                "title": "Crane",
                "required": [
                  "serialNumber",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Generic",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "webhookUrl": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Nayax",
                "required": [
                  "terminalId",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "This is the Device Number of the relevant Nayax terminal that is set up in the Nayax system. Please be careful to add the correct Device number on the relevant terminal."
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Embedded",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Pax",
                "required": [
                  "verificationCode",
                  "defaultLanguage",
                  "info",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "verificationCode": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Windcave",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Web portal",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "invoiceDetailsMandatory": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                  }
                }
              },
              {
                "title": "AdyenCastles",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "merchantAccount",
                  "adyenApiKey",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId",
                  "darkThemePrimaryColor",
                  "darkThemeSecondaryColor",
                  "darkThemeTertiaryColor",
                  "lightThemePrimaryColor",
                  "lightThemeSecondaryColor",
                  "lightThemeTertiaryColor"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "merchantAccount": {
                    "type": "string",
                    "description": "Unique identifier of the merchant in Adyen's portal"
                  },
                  "adyenApiKey": {
                    "type": "string",
                    "description": "API key to authenticate requests to Adyen"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "invoiceDetailsMandatory": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "The terminal ID assigned by the acquirer."
                  },
                  "terminalModel": {
                    "type": "string",
                    "description": "The hardware model reported by the terminal."
                  },
                  "currentBundleVersion": {
                    "type": "string",
                    "description": "The bundle version currently running on the terminal."
                  },
                  "lastCertifiedAppVersion": {
                    "type": "string",
                    "description": "The last certified app version reported by the terminal."
                  },
                  "themeMode": {
                    "type": "string",
                    "enum": [
                      "dark",
                      "light",
                      "auto"
                    ],
                    "readOnly": true,
                    "description": "Color scheme configured for the terminal app. Defaults to `dark` when unset.\n- **dark**: Light text on a dark background (default).\n- **light**: Dark text on a light background.\n- **auto**: Shows the light theme during the day and the dark theme at night, based on the terminal's local time.\n",
                    "example": "dark"
                  },
                  "darkThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the dark theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "darkThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the dark theme, as a hex value. When no value is set, the platform default `#262D40` is returned."
                  },
                  "darkThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the dark theme, as a hex value. When no value is set, the platform default `#1A1E2B` is returned."
                  },
                  "darkThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the dark theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  },
                  "lightThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the light theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "lightThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the light theme, as a hex value. When no value is set, the platform default `#FFFFFF` is returned."
                  },
                  "lightThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the light theme, as a hex value. When no value is set, the platform default `#EDF1F7` is returned."
                  },
                  "lightThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the light theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  }
                }
              },
              {
                "title": "Printec Castles",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "bundle",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId",
                  "darkThemePrimaryColor",
                  "darkThemeSecondaryColor",
                  "darkThemeTertiaryColor",
                  "lightThemePrimaryColor",
                  "lightThemeSecondaryColor",
                  "lightThemeTertiaryColor"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "countryCode": {
                    "type": "string",
                    "description": "ISO 3166-1 alpha-2 country code",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "bundle": {
                    "type": "object",
                    "readOnly": true,
                    "properties": {
                      "version": {
                        "type": "string",
                        "example": [
                          "1.0.0",
                          "1.0.1",
                          "2.1.0"
                        ],
                        "description": "The target OTA bundle version configured for this terminal (terminal-level override if set, otherwise the integration default). Pairs with `currentBundleVersion`, which reflects the version actually running on the device."
                      },
                      "downloadUrl": {
                        "type": "string",
                        "description": "Download link to the archived (zip) bundle version."
                      }
                    }
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "invoiceDetailsMandatory": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "The terminal ID assigned by the acquirer."
                  },
                  "terminalModel": {
                    "type": "string",
                    "description": "The hardware model reported by the terminal."
                  },
                  "currentBundleVersion": {
                    "type": "string",
                    "description": "The bundle version currently running on the terminal."
                  },
                  "lastCertifiedAppVersion": {
                    "type": "string",
                    "description": "The last certified app version reported by the terminal."
                  },
                  "themeMode": {
                    "type": "string",
                    "enum": [
                      "dark",
                      "light",
                      "auto"
                    ],
                    "readOnly": true,
                    "description": "Color scheme configured for the terminal app. Defaults to `dark` when unset.\n- **dark**: Light text on a dark background (default).\n- **light**: Dark text on a light background.\n- **auto**: Shows the light theme during the day and the dark theme at night, based on the terminal's local time.\n",
                    "example": "dark"
                  },
                  "darkThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the dark theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "darkThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the dark theme, as a hex value. When no value is set, the platform default `#262D40` is returned."
                  },
                  "darkThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the dark theme, as a hex value. When no value is set, the platform default `#1A1E2B` is returned."
                  },
                  "darkThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the dark theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  },
                  "lightThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the light theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "lightThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the light theme, as a hex value. When no value is set, the platform default `#FFFFFF` is returned."
                  },
                  "lightThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the light theme, as a hex value. When no value is set, the platform default `#EDF1F7` is returned."
                  },
                  "lightThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the light theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  }
                }
              },
              {
                "title": "Cardlink Castles",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "bundle",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId",
                  "darkThemePrimaryColor",
                  "darkThemeSecondaryColor",
                  "darkThemeTertiaryColor",
                  "lightThemePrimaryColor",
                  "lightThemeSecondaryColor",
                  "lightThemeTertiaryColor"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "isOnline": {
                    "type": "boolean",
                    "readOnly": true,
                    "deprecated": true,
                    "description": "Use `networkStatus` instead"
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "bundle": {
                    "type": "object",
                    "readOnly": true,
                    "properties": {
                      "version": {
                        "type": "string",
                        "example": [
                          "1.0.0",
                          "1.0.1",
                          "2.1.0"
                        ],
                        "description": "The target OTA bundle version configured for this terminal (terminal-level override if set, otherwise the integration default). Pairs with `currentBundleVersion`, which reflects the version actually running on the device."
                      },
                      "downloadUrl": {
                        "type": "string",
                        "description": "Download link to the archived (zip) bundle version."
                      }
                    }
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "invoiceDetailsMandatory": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "The terminal ID assigned by the acquirer."
                  },
                  "terminalModel": {
                    "type": "string",
                    "description": "The hardware model reported by the terminal."
                  },
                  "currentBundleVersion": {
                    "type": "string",
                    "description": "The bundle version currently running on the terminal."
                  },
                  "lastCertifiedAppVersion": {
                    "type": "string",
                    "description": "The last certified app version reported by the terminal."
                  },
                  "themeMode": {
                    "type": "string",
                    "enum": [
                      "dark",
                      "light",
                      "auto"
                    ],
                    "readOnly": true,
                    "description": "Color scheme configured for the terminal app. Defaults to `dark` when unset.\n- **dark**: Light text on a dark background (default).\n- **light**: Dark text on a light background.\n- **auto**: Shows the light theme during the day and the dark theme at night, based on the terminal's local time.\n",
                    "example": "dark"
                  },
                  "darkThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the dark theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "darkThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the dark theme, as a hex value. When no value is set, the platform default `#262D40` is returned."
                  },
                  "darkThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the dark theme, as a hex value. When no value is set, the platform default `#1A1E2B` is returned."
                  },
                  "darkThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the dark theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  },
                  "lightThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the light theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "lightThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the light theme, as a hex value. When no value is set, the platform default `#FFFFFF` is returned."
                  },
                  "lightThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the light theme, as a hex value. When no value is set, the platform default `#EDF1F7` is returned."
                  },
                  "lightThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the light theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getPaymentTerminalV1_1": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "displayTextTimeout": {
                    "type": "integer"
                  },
                  "displayText": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string",
                    "description": "An optional external identifier for the terminal that can be used to reference it in external systems."
                  },
                  "isOnline": {
                    "type": "boolean",
                    "nullable": true,
                    "deprecated": true,
                    "description": "Use `networkStatus` instead"
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  }
                },
                "oneOf": [
                  {
                    "title": "Payter on CP",
                    "type": "object",
                    "properties": {
                      "preauthorizeAmount": {
                        "type": "number",
                        "description": "Provide a Pre-authorize amount when the terminal is linked to a single charger"
                      },
                      "currencyId": {
                        "type": "integer",
                        "readOnly": true
                      },
                      "valueAddedTaxId": {
                        "type": "integer",
                        "readOnly": true,
                        "deprecated": true,
                        "description": "**This property is deprecated and will be removed on Fri, 01 Jan 2027.**\nTax for payment terminals is derived from the operator's tax rules; when tax rules are disabled it falls back to the tariff's default tax, or to the operator's base tax when no tariff is assigned. Any value sent in create/update requests is accepted but ignored. Previously persisted values are still returned for backward compatibility but have no effect on billing.\n"
                      }
                    }
                  },
                  {
                    "title": "Payter on Location",
                    "type": "object",
                    "properties": {
                      "transactionTimeout": {
                        "type": "integer",
                        "description": "Provide a transaction timeout when the terminal is linked to a Location"
                      }
                    }
                  }
                ],
                "required": [
                  "id",
                  "name",
                  "defaultLanguage",
                  "serialNumber",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ]
              },
              {
                "title": "Valina",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "bundle",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId",
                  "darkThemePrimaryColor",
                  "darkThemeSecondaryColor",
                  "darkThemeTertiaryColor",
                  "lightThemePrimaryColor",
                  "lightThemeSecondaryColor",
                  "lightThemeTertiaryColor"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "isOnline": {
                    "type": "boolean",
                    "readOnly": true,
                    "deprecated": true,
                    "description": "Use `networkStatus` instead"
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "bundle": {
                    "type": "object",
                    "readOnly": true,
                    "properties": {
                      "version": {
                        "type": "string",
                        "example": [
                          "1.0.0",
                          "1.0.1",
                          "2.1.0"
                        ],
                        "description": "The target OTA bundle version configured for this terminal (terminal-level override if set, otherwise the integration default). Pairs with `currentBundleVersion`, which reflects the version actually running on the device."
                      },
                      "downloadUrl": {
                        "type": "string",
                        "description": "Download link to the archived (zip) bundle version."
                      }
                    }
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "simplifiedJourneyMode": {
                    "type": "string",
                    "enum": [
                      "off",
                      "evseList",
                      "screensaver"
                    ],
                    "default": "off",
                    "description": "Simplified journey mode for the terminal app:\n- **off**: Standard multi-step journey (default)\n- **evseList**: Driver selects an EVSE from a list on the terminal\n- **screensaver**: Passive branded display; terminal auto-triggers pre-authorization when an EVSE enters Preparing status\n",
                    "example": "off"
                  },
                  "screensaverWelcomeMessage": {
                    "description": "Translatable welcome message shown on the terminal's screensaver. Returned only when `simplifiedJourneyMode` is `screensaver`. The response value is resolved per field through a three-layer cascade: the per-terminal value if set, otherwise the integration-level default configured on the Worldline Valina/Castles integration, otherwise the property is omitted (the Terminal app falls back to its shipped default). Each translation is capped at 100 characters.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "screensaverPaymentMethods": {
                    "type": "array",
                    "maxItems": 8,
                    "items": {
                      "type": "string",
                      "enum": [
                        "visa",
                        "mastercard",
                        "paypal",
                        "maestro",
                        "amex",
                        "bancontact",
                        "cartes_bancaires",
                        "diners_club",
                        "discover",
                        "interac",
                        "jcb",
                        "mada",
                        "visa_electron",
                        "applepay",
                        "googlepay",
                        "twint"
                      ],
                      "description": "Payment method icon displayed on the terminal's screensaver. Values cover supported card networks and digital wallet types.\n"
                    },
                    "description": "Ordered list of payment-method icons displayed on the terminal's screensaver. Returned only when `simplifiedJourneyMode` is `screensaver`. The response value is resolved per field through a three-layer cascade: the per-terminal value if set, otherwise the integration-level default configured on the Worldline Valina/Castles integration, otherwise the property is omitted (the Terminal app resolves the icon list at boot).\n"
                  },
                  "screensaverLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded screensaver logo asset. Returned only when `simplifiedJourneyMode` is `screensaver`. The response value is resolved per field through a three-layer cascade: the per-terminal value if set, otherwise the integration-level default configured on the Worldline Valina/Castles integration, otherwise the property is omitted (the Terminal app falls back to its shipped default).\n"
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "invoiceDetailsMandatory": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "The terminal ID assigned by the acquirer."
                  },
                  "terminalModel": {
                    "type": "string",
                    "description": "The hardware model reported by the terminal."
                  },
                  "currentBundleVersion": {
                    "type": "string",
                    "description": "The bundle version currently running on the terminal."
                  },
                  "lastCertifiedAppVersion": {
                    "type": "string",
                    "description": "The last certified app version reported by the terminal."
                  },
                  "themeMode": {
                    "type": "string",
                    "enum": [
                      "dark",
                      "light",
                      "auto"
                    ],
                    "readOnly": true,
                    "description": "Color scheme configured for the terminal app. Defaults to `dark` when unset.\n- **dark**: Light text on a dark background (default).\n- **light**: Dark text on a light background.\n- **auto**: Shows the light theme during the day and the dark theme at night, based on the terminal's local time.\n",
                    "example": "dark"
                  },
                  "darkThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the dark theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "darkThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the dark theme, as a hex value. When no value is set, the platform default `#262D40` is returned."
                  },
                  "darkThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the dark theme, as a hex value. When no value is set, the platform default `#1A1E2B` is returned."
                  },
                  "darkThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the dark theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  },
                  "lightThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the light theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "lightThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the light theme, as a hex value. When no value is set, the platform default `#FFFFFF` is returned."
                  },
                  "lightThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the light theme, as a hex value. When no value is set, the platform default `#EDF1F7` is returned."
                  },
                  "lightThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the light theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  }
                }
              },
              {
                "title": "Crane",
                "required": [
                  "serialNumber",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Generic",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "webhookUrl": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Nayax",
                "required": [
                  "terminalId",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "This is the Device Number of the relevant Nayax terminal that is set up in the Nayax system. Please be careful to add the correct Device number on the relevant terminal."
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Embedded",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Pax",
                "required": [
                  "verificationCode",
                  "defaultLanguage",
                  "info",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "verificationCode": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Windcave",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Web portal",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "invoiceDetailsMandatory": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                  }
                }
              },
              {
                "title": "AdyenCastles",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "merchantAccount",
                  "adyenApiKey",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId",
                  "darkThemePrimaryColor",
                  "darkThemeSecondaryColor",
                  "darkThemeTertiaryColor",
                  "lightThemePrimaryColor",
                  "lightThemeSecondaryColor",
                  "lightThemeTertiaryColor"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "merchantAccount": {
                    "type": "string",
                    "description": "Unique identifier of the merchant in Adyen's portal"
                  },
                  "adyenApiKey": {
                    "type": "string",
                    "description": "API key to authenticate requests to Adyen"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "invoiceDetailsMandatory": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "The terminal ID assigned by the acquirer."
                  },
                  "terminalModel": {
                    "type": "string",
                    "description": "The hardware model reported by the terminal."
                  },
                  "currentBundleVersion": {
                    "type": "string",
                    "description": "The bundle version currently running on the terminal."
                  },
                  "lastCertifiedAppVersion": {
                    "type": "string",
                    "description": "The last certified app version reported by the terminal."
                  },
                  "themeMode": {
                    "type": "string",
                    "enum": [
                      "dark",
                      "light",
                      "auto"
                    ],
                    "readOnly": true,
                    "description": "Color scheme configured for the terminal app. Defaults to `dark` when unset.\n- **dark**: Light text on a dark background (default).\n- **light**: Dark text on a light background.\n- **auto**: Shows the light theme during the day and the dark theme at night, based on the terminal's local time.\n",
                    "example": "dark"
                  },
                  "darkThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the dark theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "darkThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the dark theme, as a hex value. When no value is set, the platform default `#262D40` is returned."
                  },
                  "darkThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the dark theme, as a hex value. When no value is set, the platform default `#1A1E2B` is returned."
                  },
                  "darkThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the dark theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  },
                  "lightThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the light theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "lightThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the light theme, as a hex value. When no value is set, the platform default `#FFFFFF` is returned."
                  },
                  "lightThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the light theme, as a hex value. When no value is set, the platform default `#EDF1F7` is returned."
                  },
                  "lightThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the light theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  }
                }
              },
              {
                "title": "Printec Castles",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "bundle",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId",
                  "darkThemePrimaryColor",
                  "darkThemeSecondaryColor",
                  "darkThemeTertiaryColor",
                  "lightThemePrimaryColor",
                  "lightThemeSecondaryColor",
                  "lightThemeTertiaryColor"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "countryCode": {
                    "type": "string",
                    "description": "ISO 3166-1 alpha-2 country code",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "bundle": {
                    "type": "object",
                    "readOnly": true,
                    "properties": {
                      "version": {
                        "type": "string",
                        "example": [
                          "1.0.0",
                          "1.0.1",
                          "2.1.0"
                        ],
                        "description": "The target OTA bundle version configured for this terminal (terminal-level override if set, otherwise the integration default). Pairs with `currentBundleVersion`, which reflects the version actually running on the device."
                      },
                      "downloadUrl": {
                        "type": "string",
                        "description": "Download link to the archived (zip) bundle version."
                      }
                    }
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "invoiceDetailsMandatory": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "The terminal ID assigned by the acquirer."
                  },
                  "terminalModel": {
                    "type": "string",
                    "description": "The hardware model reported by the terminal."
                  },
                  "currentBundleVersion": {
                    "type": "string",
                    "description": "The bundle version currently running on the terminal."
                  },
                  "lastCertifiedAppVersion": {
                    "type": "string",
                    "description": "The last certified app version reported by the terminal."
                  },
                  "themeMode": {
                    "type": "string",
                    "enum": [
                      "dark",
                      "light",
                      "auto"
                    ],
                    "readOnly": true,
                    "description": "Color scheme configured for the terminal app. Defaults to `dark` when unset.\n- **dark**: Light text on a dark background (default).\n- **light**: Dark text on a light background.\n- **auto**: Shows the light theme during the day and the dark theme at night, based on the terminal's local time.\n",
                    "example": "dark"
                  },
                  "darkThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the dark theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "darkThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the dark theme, as a hex value. When no value is set, the platform default `#262D40` is returned."
                  },
                  "darkThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the dark theme, as a hex value. When no value is set, the platform default `#1A1E2B` is returned."
                  },
                  "darkThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the dark theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  },
                  "lightThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the light theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "lightThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the light theme, as a hex value. When no value is set, the platform default `#FFFFFF` is returned."
                  },
                  "lightThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the light theme, as a hex value. When no value is set, the platform default `#EDF1F7` is returned."
                  },
                  "lightThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the light theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  }
                }
              },
              {
                "title": "Cardlink Castles",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "bundle",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId",
                  "darkThemePrimaryColor",
                  "darkThemeSecondaryColor",
                  "darkThemeTertiaryColor",
                  "lightThemePrimaryColor",
                  "lightThemeSecondaryColor",
                  "lightThemeTertiaryColor"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "isOnline": {
                    "type": "boolean",
                    "readOnly": true,
                    "deprecated": true,
                    "description": "Use `networkStatus` instead"
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "bundle": {
                    "type": "object",
                    "readOnly": true,
                    "properties": {
                      "version": {
                        "type": "string",
                        "example": [
                          "1.0.0",
                          "1.0.1",
                          "2.1.0"
                        ],
                        "description": "The target OTA bundle version configured for this terminal (terminal-level override if set, otherwise the integration default). Pairs with `currentBundleVersion`, which reflects the version actually running on the device."
                      },
                      "downloadUrl": {
                        "type": "string",
                        "description": "Download link to the archived (zip) bundle version."
                      }
                    }
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "invoiceDetailsMandatory": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "The terminal ID assigned by the acquirer."
                  },
                  "terminalModel": {
                    "type": "string",
                    "description": "The hardware model reported by the terminal."
                  },
                  "currentBundleVersion": {
                    "type": "string",
                    "description": "The bundle version currently running on the terminal."
                  },
                  "lastCertifiedAppVersion": {
                    "type": "string",
                    "description": "The last certified app version reported by the terminal."
                  },
                  "themeMode": {
                    "type": "string",
                    "enum": [
                      "dark",
                      "light",
                      "auto"
                    ],
                    "readOnly": true,
                    "description": "Color scheme configured for the terminal app. Defaults to `dark` when unset.\n- **dark**: Light text on a dark background (default).\n- **light**: Dark text on a light background.\n- **auto**: Shows the light theme during the day and the dark theme at night, based on the terminal's local time.\n",
                    "example": "dark"
                  },
                  "darkThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the dark theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "darkThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the dark theme, as a hex value. When no value is set, the platform default `#262D40` is returned."
                  },
                  "darkThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the dark theme, as a hex value. When no value is set, the platform default `#1A1E2B` is returned."
                  },
                  "darkThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the dark theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  },
                  "lightThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the light theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "lightThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the light theme, as a hex value. When no value is set, the platform default `#FFFFFF` is returned."
                  },
                  "lightThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the light theme, as a hex value. When no value is set, the platform default `#EDF1F7` is returned."
                  },
                  "lightThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the light theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  }
                }
              }
            ],
            "discriminator": {
              "propertyName": "terminalType"
            },
            "type": "object",
            "properties": {
              "customFields": {
                "readOnly": true,
                "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the payment terminal are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "deletePaymentTerminalV1_1": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "updatePaymentTerminalV1_1": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "displayTextTimeout": {
                    "type": "integer"
                  },
                  "displayText": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string",
                    "description": "An optional external identifier for the terminal that can be used to reference it in external systems."
                  },
                  "isOnline": {
                    "type": "boolean",
                    "nullable": true,
                    "deprecated": true,
                    "description": "Use `networkStatus` instead"
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  }
                },
                "oneOf": [
                  {
                    "title": "Payter on CP",
                    "type": "object",
                    "properties": {
                      "preauthorizeAmount": {
                        "type": "number",
                        "description": "Provide a Pre-authorize amount when the terminal is linked to a single charger"
                      },
                      "currencyId": {
                        "type": "integer",
                        "readOnly": true
                      },
                      "valueAddedTaxId": {
                        "type": "integer",
                        "readOnly": true,
                        "deprecated": true,
                        "description": "**This property is deprecated and will be removed on Fri, 01 Jan 2027.**\nTax for payment terminals is derived from the operator's tax rules; when tax rules are disabled it falls back to the tariff's default tax, or to the operator's base tax when no tariff is assigned. Any value sent in create/update requests is accepted but ignored. Previously persisted values are still returned for backward compatibility but have no effect on billing.\n"
                      }
                    }
                  },
                  {
                    "title": "Payter on Location",
                    "type": "object",
                    "properties": {
                      "transactionTimeout": {
                        "type": "integer",
                        "description": "Provide a transaction timeout when the terminal is linked to a Location"
                      }
                    }
                  }
                ],
                "required": [
                  "id",
                  "name",
                  "defaultLanguage",
                  "serialNumber",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ]
              },
              {
                "title": "Valina",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "bundle",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId",
                  "darkThemePrimaryColor",
                  "darkThemeSecondaryColor",
                  "darkThemeTertiaryColor",
                  "lightThemePrimaryColor",
                  "lightThemeSecondaryColor",
                  "lightThemeTertiaryColor"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "isOnline": {
                    "type": "boolean",
                    "readOnly": true,
                    "deprecated": true,
                    "description": "Use `networkStatus` instead"
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "bundle": {
                    "type": "object",
                    "readOnly": true,
                    "properties": {
                      "version": {
                        "type": "string",
                        "example": [
                          "1.0.0",
                          "1.0.1",
                          "2.1.0"
                        ],
                        "description": "The target OTA bundle version configured for this terminal (terminal-level override if set, otherwise the integration default). Pairs with `currentBundleVersion`, which reflects the version actually running on the device."
                      },
                      "downloadUrl": {
                        "type": "string",
                        "description": "Download link to the archived (zip) bundle version."
                      }
                    }
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "simplifiedJourneyMode": {
                    "type": "string",
                    "enum": [
                      "off",
                      "evseList",
                      "screensaver"
                    ],
                    "default": "off",
                    "description": "Simplified journey mode for the terminal app:\n- **off**: Standard multi-step journey (default)\n- **evseList**: Driver selects an EVSE from a list on the terminal\n- **screensaver**: Passive branded display; terminal auto-triggers pre-authorization when an EVSE enters Preparing status\n",
                    "example": "off"
                  },
                  "screensaverWelcomeMessage": {
                    "description": "Translatable welcome message shown on the terminal's screensaver. Returned only when `simplifiedJourneyMode` is `screensaver`. The response value is resolved per field through a three-layer cascade: the per-terminal value if set, otherwise the integration-level default configured on the Worldline Valina/Castles integration, otherwise the property is omitted (the Terminal app falls back to its shipped default). Each translation is capped at 100 characters.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "screensaverPaymentMethods": {
                    "type": "array",
                    "maxItems": 8,
                    "items": {
                      "type": "string",
                      "enum": [
                        "visa",
                        "mastercard",
                        "paypal",
                        "maestro",
                        "amex",
                        "bancontact",
                        "cartes_bancaires",
                        "diners_club",
                        "discover",
                        "interac",
                        "jcb",
                        "mada",
                        "visa_electron",
                        "applepay",
                        "googlepay",
                        "twint"
                      ],
                      "description": "Payment method icon displayed on the terminal's screensaver. Values cover supported card networks and digital wallet types.\n"
                    },
                    "description": "Ordered list of payment-method icons displayed on the terminal's screensaver. Returned only when `simplifiedJourneyMode` is `screensaver`. The response value is resolved per field through a three-layer cascade: the per-terminal value if set, otherwise the integration-level default configured on the Worldline Valina/Castles integration, otherwise the property is omitted (the Terminal app resolves the icon list at boot).\n"
                  },
                  "screensaverLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded screensaver logo asset. Returned only when `simplifiedJourneyMode` is `screensaver`. The response value is resolved per field through a three-layer cascade: the per-terminal value if set, otherwise the integration-level default configured on the Worldline Valina/Castles integration, otherwise the property is omitted (the Terminal app falls back to its shipped default).\n"
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "invoiceDetailsMandatory": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "The terminal ID assigned by the acquirer."
                  },
                  "terminalModel": {
                    "type": "string",
                    "description": "The hardware model reported by the terminal."
                  },
                  "currentBundleVersion": {
                    "type": "string",
                    "description": "The bundle version currently running on the terminal."
                  },
                  "lastCertifiedAppVersion": {
                    "type": "string",
                    "description": "The last certified app version reported by the terminal."
                  },
                  "themeMode": {
                    "type": "string",
                    "enum": [
                      "dark",
                      "light",
                      "auto"
                    ],
                    "readOnly": true,
                    "description": "Color scheme configured for the terminal app. Defaults to `dark` when unset.\n- **dark**: Light text on a dark background (default).\n- **light**: Dark text on a light background.\n- **auto**: Shows the light theme during the day and the dark theme at night, based on the terminal's local time.\n",
                    "example": "dark"
                  },
                  "darkThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the dark theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "darkThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the dark theme, as a hex value. When no value is set, the platform default `#262D40` is returned."
                  },
                  "darkThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the dark theme, as a hex value. When no value is set, the platform default `#1A1E2B` is returned."
                  },
                  "darkThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the dark theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  },
                  "lightThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the light theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "lightThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the light theme, as a hex value. When no value is set, the platform default `#FFFFFF` is returned."
                  },
                  "lightThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the light theme, as a hex value. When no value is set, the platform default `#EDF1F7` is returned."
                  },
                  "lightThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the light theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  }
                }
              },
              {
                "title": "Crane",
                "required": [
                  "serialNumber",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Generic",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "webhookUrl": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Nayax",
                "required": [
                  "terminalId",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "This is the Device Number of the relevant Nayax terminal that is set up in the Nayax system. Please be careful to add the correct Device number on the relevant terminal."
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Embedded",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Pax",
                "required": [
                  "verificationCode",
                  "defaultLanguage",
                  "info",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "verificationCode": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Windcave",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  }
                }
              },
              {
                "title": "Web portal",
                "required": [
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "invoiceDetailsMandatory": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                  }
                }
              },
              {
                "title": "AdyenCastles",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "merchantAccount",
                  "adyenApiKey",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId",
                  "darkThemePrimaryColor",
                  "darkThemeSecondaryColor",
                  "darkThemeTertiaryColor",
                  "lightThemePrimaryColor",
                  "lightThemeSecondaryColor",
                  "lightThemeTertiaryColor"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "merchantAccount": {
                    "type": "string",
                    "description": "Unique identifier of the merchant in Adyen's portal"
                  },
                  "adyenApiKey": {
                    "type": "string",
                    "description": "API key to authenticate requests to Adyen"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "invoiceDetailsMandatory": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "The terminal ID assigned by the acquirer."
                  },
                  "terminalModel": {
                    "type": "string",
                    "description": "The hardware model reported by the terminal."
                  },
                  "currentBundleVersion": {
                    "type": "string",
                    "description": "The bundle version currently running on the terminal."
                  },
                  "lastCertifiedAppVersion": {
                    "type": "string",
                    "description": "The last certified app version reported by the terminal."
                  },
                  "themeMode": {
                    "type": "string",
                    "enum": [
                      "dark",
                      "light",
                      "auto"
                    ],
                    "readOnly": true,
                    "description": "Color scheme configured for the terminal app. Defaults to `dark` when unset.\n- **dark**: Light text on a dark background (default).\n- **light**: Dark text on a light background.\n- **auto**: Shows the light theme during the day and the dark theme at night, based on the terminal's local time.\n",
                    "example": "dark"
                  },
                  "darkThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the dark theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "darkThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the dark theme, as a hex value. When no value is set, the platform default `#262D40` is returned."
                  },
                  "darkThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the dark theme, as a hex value. When no value is set, the platform default `#1A1E2B` is returned."
                  },
                  "darkThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the dark theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  },
                  "lightThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the light theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "lightThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the light theme, as a hex value. When no value is set, the platform default `#FFFFFF` is returned."
                  },
                  "lightThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the light theme, as a hex value. When no value is set, the platform default `#EDF1F7` is returned."
                  },
                  "lightThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the light theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  }
                }
              },
              {
                "title": "Printec Castles",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "bundle",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId",
                  "darkThemePrimaryColor",
                  "darkThemeSecondaryColor",
                  "darkThemeTertiaryColor",
                  "lightThemePrimaryColor",
                  "lightThemeSecondaryColor",
                  "lightThemeTertiaryColor"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "countryCode": {
                    "type": "string",
                    "description": "ISO 3166-1 alpha-2 country code",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "bundle": {
                    "type": "object",
                    "readOnly": true,
                    "properties": {
                      "version": {
                        "type": "string",
                        "example": [
                          "1.0.0",
                          "1.0.1",
                          "2.1.0"
                        ],
                        "description": "The target OTA bundle version configured for this terminal (terminal-level override if set, otherwise the integration default). Pairs with `currentBundleVersion`, which reflects the version actually running on the device."
                      },
                      "downloadUrl": {
                        "type": "string",
                        "description": "Download link to the archived (zip) bundle version."
                      }
                    }
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "invoiceDetailsMandatory": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "The terminal ID assigned by the acquirer."
                  },
                  "terminalModel": {
                    "type": "string",
                    "description": "The hardware model reported by the terminal."
                  },
                  "currentBundleVersion": {
                    "type": "string",
                    "description": "The bundle version currently running on the terminal."
                  },
                  "lastCertifiedAppVersion": {
                    "type": "string",
                    "description": "The last certified app version reported by the terminal."
                  },
                  "themeMode": {
                    "type": "string",
                    "enum": [
                      "dark",
                      "light",
                      "auto"
                    ],
                    "readOnly": true,
                    "description": "Color scheme configured for the terminal app. Defaults to `dark` when unset.\n- **dark**: Light text on a dark background (default).\n- **light**: Dark text on a light background.\n- **auto**: Shows the light theme during the day and the dark theme at night, based on the terminal's local time.\n",
                    "example": "dark"
                  },
                  "darkThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the dark theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "darkThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the dark theme, as a hex value. When no value is set, the platform default `#262D40` is returned."
                  },
                  "darkThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the dark theme, as a hex value. When no value is set, the platform default `#1A1E2B` is returned."
                  },
                  "darkThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the dark theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  },
                  "lightThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the light theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "lightThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the light theme, as a hex value. When no value is set, the platform default `#FFFFFF` is returned."
                  },
                  "lightThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the light theme, as a hex value. When no value is set, the platform default `#EDF1F7` is returned."
                  },
                  "lightThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the light theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  }
                }
              },
              {
                "title": "Cardlink Castles",
                "required": [
                  "phone",
                  "defaultLanguage",
                  "info",
                  "bundle",
                  "name",
                  "integrationId",
                  "terminalType",
                  "operatorId",
                  "darkThemePrimaryColor",
                  "darkThemeSecondaryColor",
                  "darkThemeTertiaryColor",
                  "lightThemePrimaryColor",
                  "lightThemeSecondaryColor",
                  "lightThemeTertiaryColor"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string"
                  },
                  "integrationId": {
                    "type": "integer"
                  },
                  "terminalType": {
                    "type": "string",
                    "enum": [
                      "Payter",
                      "Valina",
                      "Crane",
                      "Generic",
                      "Nayax",
                      "Embedded",
                      "Pax",
                      "Windcave",
                      "Web portal",
                      "AdyenCastles",
                      "Adyen Castles",
                      "Printec Castles",
                      "Cardlink Castles"
                    ]
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator ID for this terminal."
                  },
                  "chargingZoneId": {
                    "type": "integer",
                    "description": "The charging zone the terminal belongs to. Note that either the `chargePointId` OR this attribute should be provided;"
                  },
                  "chargePointId": {
                    "type": "integer",
                    "description": "The Charge point the terminal belongs to. Note that either the `chargingZoneId` OR this attribute should be provided;"
                  },
                  "adminToken": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Specific token, linked to each terminal that can be used for access to the API. The token is created automatically when a new payment terminal is created."
                  },
                  "isOnline": {
                    "type": "boolean",
                    "readOnly": true,
                    "deprecated": true,
                    "description": "Use `networkStatus` instead"
                  },
                  "networkStatus": {
                    "type": "string",
                    "enum": [
                      "online",
                      "offline",
                      "unknown"
                    ]
                  },
                  "phone": {
                    "type": "string"
                  },
                  "defaultLanguage": {
                    "type": "string"
                  },
                  "presentCardOnStopSession": {
                    "type": "boolean",
                    "default": false
                  },
                  "info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "locale": {
                          "type": "string",
                          "description": "valid locale"
                        },
                        "translation": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "currencyCode": {
                    "type": "string",
                    "readOnly": true
                  },
                  "serialNumber": {
                    "type": "string"
                  },
                  "externalId": {
                    "type": "string"
                  },
                  "supportedLanguages": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "readOnly": true
                  },
                  "bundle": {
                    "type": "object",
                    "readOnly": true,
                    "properties": {
                      "version": {
                        "type": "string",
                        "example": [
                          "1.0.0",
                          "1.0.1",
                          "2.1.0"
                        ],
                        "description": "The target OTA bundle version configured for this terminal (terminal-level override if set, otherwise the integration default). Pairs with `currentBundleVersion`, which reflects the version actually running on the device."
                      },
                      "downloadUrl": {
                        "type": "string",
                        "description": "Download link to the archived (zip) bundle version."
                      }
                    }
                  },
                  "networkStatusMonitoringEnabled": {
                    "type": "boolean",
                    "readOnly": true
                  },
                  "kioskModeEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether kiosk mode is enabled for this terminal. For Location-mapped terminals, this is always true (Location-mapped terminals inherently operate in kiosk mode). For Single Charge Point terminals, this reflects the operator-configured setting."
                  },
                  "invoiceFields": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Invoice field configurations for ad-hoc invoicing. Only included when ad-hoc invoicing is enabled for this terminal.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "Field identifier (e.g., email, name, taxId, country)"
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether this field is required or optional"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "description": "The invoice type this field belongs to (individual or company)"
                        },
                        "label": {
                          "description": "Translated label for the field. Always contains at least an English system translation entry. When custom labels are configured, they are appended after the English fallback.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "locale": {
                                "type": "string",
                                "description": "valid locale"
                              },
                              "translation": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "field",
                        "required",
                        "type",
                        "label"
                      ]
                    }
                  },
                  "invoiceDetailsMandatory": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Indicates whether invoice details collection is mandatory for ad-hoc charging sessions on this terminal. Only included when ad-hoc invoicing is enabled for this terminal."
                  },
                  "showTermsAndConditions": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether Terms and Conditions should be displayed on this terminal before ad-hoc charging sessions."
                  },
                  "termVersionId": {
                    "type": "integer",
                    "readOnly": true,
                    "nullable": true,
                    "description": "The ID of the active Terms version to display. Only present when showTermsAndConditions is true. Use the Terms and Policies Read endpoint to fetch the content."
                  },
                  "terminalId": {
                    "type": "string",
                    "description": "The terminal ID assigned by the acquirer."
                  },
                  "terminalModel": {
                    "type": "string",
                    "description": "The hardware model reported by the terminal."
                  },
                  "currentBundleVersion": {
                    "type": "string",
                    "description": "The bundle version currently running on the terminal."
                  },
                  "lastCertifiedAppVersion": {
                    "type": "string",
                    "description": "The last certified app version reported by the terminal."
                  },
                  "themeMode": {
                    "type": "string",
                    "enum": [
                      "dark",
                      "light",
                      "auto"
                    ],
                    "readOnly": true,
                    "description": "Color scheme configured for the terminal app. Defaults to `dark` when unset.\n- **dark**: Light text on a dark background (default).\n- **light**: Dark text on a light background.\n- **auto**: Shows the light theme during the day and the dark theme at night, based on the terminal's local time.\n",
                    "example": "dark"
                  },
                  "darkThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the dark theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "darkThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the dark theme, as a hex value. When no value is set, the platform default `#262D40` is returned."
                  },
                  "darkThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the dark theme, as a hex value. When no value is set, the platform default `#1A1E2B` is returned."
                  },
                  "darkThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the dark theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  },
                  "lightThemePrimaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action buttons (CTA) in the light theme, as a hex value. When no value is set, the platform default `#0257BB` is returned."
                  },
                  "lightThemeSecondaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the action card surface fill in the light theme, as a hex value. When no value is set, the platform default `#FFFFFF` is returned."
                  },
                  "lightThemeTertiaryColor": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Color of the background surface fill in the light theme, as a hex value. When no value is set, the platform default `#EDF1F7` is returned."
                  },
                  "lightThemeLogoUrl": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "description": "URL of the uploaded logo shown in the light theme. Omitted when unset, in which case the terminal app uses its built-in default."
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "listPcIds": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "required": [
                "pcId",
                "name",
                "vehicleType",
                "userId"
              ],
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "pcId": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "vehicleType": {
                  "type": "string",
                  "enum": [
                    "company",
                    "private"
                  ]
                },
                "userId": {
                  "type": "integer"
                },
                "idTags": {
                  "type": "array",
                  "description": "Only present when the certificate has at least one active id tag. Absent on a certificate without active id tags, e.g. the response of a freshly created certificate.",
                  "items": {
                    "required": [
                      "paymentMethod",
                      "defaultPaymentOption"
                    ],
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer"
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "rfid",
                          "mac_address",
                          "emaid"
                        ]
                      },
                      "name": {
                        "type": "string"
                      },
                      "paymentMethod": {
                        "type": "string",
                        "deprecated": true,
                        "description": "**This property is deprecated. Use `defaultPaymentOption` instead.**\n\nId tag payment options are changed via the issue-emaid action, where `defaultPaymentOption` takes precedence over this field.\n"
                      },
                      "defaultPaymentOption": {
                        "type": "string",
                        "description": "The default payment option for this ID tag. Accepted values:\n* `auto` - Automated fallback sequence\n* A payment card ID - Specific registered payment card\n* `corporate:{id}` - Corporate billing account (replace {id} with the corporate billing ID)\n* `subscription` - User's active post-paid subscription\n\nAt charging time, if the chosen payment option doesn't apply to the session (e.g., corporate billing not eligible for the charge point, subscription not applicable), the platform falls back to the user's other available payment methods.\n",
                        "example": "auto"
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "active",
                          "disabled",
                          "suspended"
                        ]
                      },
                      "expireAt": {
                        "type": "string",
                        "format": "date-time"
                      }
                    }
                  }
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "createPcId": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "pcId",
              "name",
              "vehicleType",
              "userId"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "pcId": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "vehicleType": {
                "type": "string",
                "enum": [
                  "company",
                  "private"
                ]
              },
              "userId": {
                "type": "integer"
              },
              "idTags": {
                "type": "array",
                "description": "Only present when the certificate has at least one active id tag. Absent on a certificate without active id tags, e.g. the response of a freshly created certificate.",
                "items": {
                  "required": [
                    "paymentMethod",
                    "defaultPaymentOption"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "rfid",
                        "mac_address",
                        "emaid"
                      ]
                    },
                    "name": {
                      "type": "string"
                    },
                    "paymentMethod": {
                      "type": "string",
                      "deprecated": true,
                      "description": "**This property is deprecated. Use `defaultPaymentOption` instead.**\n\nId tag payment options are changed via the issue-emaid action, where `defaultPaymentOption` takes precedence over this field.\n"
                    },
                    "defaultPaymentOption": {
                      "type": "string",
                      "description": "The default payment option for this ID tag. Accepted values:\n* `auto` - Automated fallback sequence\n* A payment card ID - Specific registered payment card\n* `corporate:{id}` - Corporate billing account (replace {id} with the corporate billing ID)\n* `subscription` - User's active post-paid subscription\n\nAt charging time, if the chosen payment option doesn't apply to the session (e.g., corporate billing not eligible for the charge point, subscription not applicable), the platform falls back to the user's other available payment methods.\n",
                      "example": "auto"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "active",
                        "disabled",
                        "suspended"
                      ]
                    },
                    "expireAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getPcId": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "pcId",
              "name",
              "vehicleType",
              "userId"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "pcId": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "vehicleType": {
                "type": "string",
                "enum": [
                  "company",
                  "private"
                ]
              },
              "userId": {
                "type": "integer"
              },
              "idTags": {
                "type": "array",
                "description": "Only present when the certificate has at least one active id tag. Absent on a certificate without active id tags, e.g. the response of a freshly created certificate.",
                "items": {
                  "required": [
                    "paymentMethod",
                    "defaultPaymentOption"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "rfid",
                        "mac_address",
                        "emaid"
                      ]
                    },
                    "name": {
                      "type": "string"
                    },
                    "paymentMethod": {
                      "type": "string",
                      "deprecated": true,
                      "description": "**This property is deprecated. Use `defaultPaymentOption` instead.**\n\nId tag payment options are changed via the issue-emaid action, where `defaultPaymentOption` takes precedence over this field.\n"
                    },
                    "defaultPaymentOption": {
                      "type": "string",
                      "description": "The default payment option for this ID tag. Accepted values:\n* `auto` - Automated fallback sequence\n* A payment card ID - Specific registered payment card\n* `corporate:{id}` - Corporate billing account (replace {id} with the corporate billing ID)\n* `subscription` - User's active post-paid subscription\n\nAt charging time, if the chosen payment option doesn't apply to the session (e.g., corporate billing not eligible for the charge point, subscription not applicable), the platform falls back to the user's other available payment methods.\n",
                      "example": "auto"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "active",
                        "disabled",
                        "suspended"
                      ]
                    },
                    "expireAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "deletePcId": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "updatePcId": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "pcId",
              "name",
              "vehicleType",
              "userId"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "pcId": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "vehicleType": {
                "type": "string",
                "enum": [
                  "company",
                  "private"
                ]
              },
              "userId": {
                "type": "integer"
              },
              "idTags": {
                "type": "array",
                "description": "Only present when the certificate has at least one active id tag. Absent on a certificate without active id tags, e.g. the response of a freshly created certificate.",
                "items": {
                  "required": [
                    "paymentMethod",
                    "defaultPaymentOption"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "rfid",
                        "mac_address",
                        "emaid"
                      ]
                    },
                    "name": {
                      "type": "string"
                    },
                    "paymentMethod": {
                      "type": "string",
                      "deprecated": true,
                      "description": "**This property is deprecated. Use `defaultPaymentOption` instead.**\n\nId tag payment options are changed via the issue-emaid action, where `defaultPaymentOption` takes precedence over this field.\n"
                    },
                    "defaultPaymentOption": {
                      "type": "string",
                      "description": "The default payment option for this ID tag. Accepted values:\n* `auto` - Automated fallback sequence\n* A payment card ID - Specific registered payment card\n* `corporate:{id}` - Corporate billing account (replace {id} with the corporate billing ID)\n* `subscription` - User's active post-paid subscription\n\nAt charging time, if the chosen payment option doesn't apply to the session (e.g., corporate billing not eligible for the charge point, subscription not applicable), the platform falls back to the user's other available payment methods.\n",
                      "example": "auto"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "active",
                        "disabled",
                        "suspended"
                      ]
                    },
                    "expireAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "receiptsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "partnerId": {
                  "type": "integer",
                  "description": "The ID of the partner this receipt was issued from. Omitted when the receipt is not associated with a partner."
                },
                "receiptNo": {
                  "type": "string"
                },
                "issuedOn": {
                  "type": "string",
                  "format": "date",
                  "description": "The date when the receipt was issued"
                },
                "userId": {
                  "type": "integer",
                  "nullable": true
                },
                "totalKwh": {
                  "type": "number",
                  "format": "decimal"
                },
                "periodStart": {
                  "type": "string",
                  "format": "date-time",
                  "description": "For monthly and post-paid subscription receipts shows the start date of the period for which the receipt is issued",
                  "nullable": true
                },
                "periodEnd": {
                  "type": "string",
                  "format": "date-time",
                  "description": "For monthly and post-paid subscription receipts shows the end date of the period for which the receipt is issued",
                  "nullable": true
                },
                "totalAmount": {
                  "type": "number"
                },
                "tax": {
                  "type": "object",
                  "properties": {
                    "taxId": {
                      "type": "integer"
                    },
                    "taxPercentage": {
                      "type": "number",
                      "format": "decimal"
                    }
                  }
                },
                "paymentStatus": {
                  "type": "string",
                  "enum": [
                    "pending",
                    "paid",
                    "partially_paid"
                  ]
                },
                "downloadUrl": {
                  "type": "string",
                  "description": "The link where the receipt could be downloaded."
                }
              },
              "required": [
                "id",
                "operatorId",
                "receiptNo",
                "issuedOn",
                "userId",
                "totalAmount"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "receiptRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "partnerId": {
                "type": "integer",
                "description": "The ID of the partner this receipt was issued from. Omitted when the receipt is not associated with a partner."
              },
              "receiptNo": {
                "type": "string"
              },
              "issuedOn": {
                "type": "string",
                "format": "date",
                "description": "The date when the receipt was issued"
              },
              "userId": {
                "type": "integer",
                "nullable": true
              },
              "totalKwh": {
                "type": "number",
                "format": "decimal"
              },
              "periodStart": {
                "type": "string",
                "format": "date-time",
                "description": "For monthly and post-paid subscription receipts shows the start date of the period for which the receipt is issued",
                "nullable": true
              },
              "periodEnd": {
                "type": "string",
                "format": "date-time",
                "description": "For monthly and post-paid subscription receipts shows the end date of the period for which the receipt is issued",
                "nullable": true
              },
              "totalAmount": {
                "type": "number"
              },
              "tax": {
                "type": "object",
                "properties": {
                  "taxId": {
                    "type": "integer"
                  },
                  "taxPercentage": {
                    "type": "number",
                    "format": "decimal"
                  }
                }
              },
              "paymentStatus": {
                "type": "string",
                "enum": [
                  "pending",
                  "paid",
                  "partially_paid"
                ]
              },
              "downloadUrl": {
                "type": "string",
                "description": "The link where the receipt could be downloaded."
              }
            },
            "required": [
              "id",
              "operatorId",
              "receiptNo",
              "issuedOn",
              "userId",
              "totalAmount"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "reimbursementPoliciesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "description": "Reimbursement policy read schema. The policy defines how a home-charging session's reimbursement rate is resolved and the validity window during which it applies.",
              "required": [
                "id",
                "operatorId",
                "name",
                "electricityRateSource",
                "validityStartsOn",
                "createdAt",
                "lastUpdatedAt"
              ],
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "maxLength": 255
                },
                "validityStartsOn": {
                  "description": "Uses the YYYY-MM-DD date format.",
                  "type": "string",
                  "format": "date"
                },
                "partnerId": {
                  "type": "integer",
                  "description": "Partner the policy is scoped to. When not set, the policy applies to every partner of the operator."
                },
                "partnerContractId": {
                  "type": "integer",
                  "description": "Partner contract the policy is scoped to. Required whenever `partnerId` is set, and must belong to that partner. Policies without a partner are not scoped to a contract."
                },
                "electricityRateId": {
                  "type": "integer",
                  "description": "Linked electricity rate providing the reimbursement rate. Set only when `electricityRateSource` is `policy`, where it is required."
                },
                "validityEndsOn": {
                  "description": "Uses the YYYY-MM-DD date format.",
                  "type": "string",
                  "format": "date"
                },
                "electricityRateSource": {
                  "type": "string",
                  "enum": [
                    "policy",
                    "charge_point",
                    "integration"
                  ],
                  "description": "Origin of the per-kWh rate used to reimburse a home-charging session:\n- **policy**: The electricity rate linked to the policy provides the rate. `electricityRateId` is required and must belong to the same operator as the policy.\n- **charge_point**: The electricity rate assigned to the personal charge point provides the rate, whichever surface assigned it. `electricityRateId` must not be set on the policy.\n- **integration**: An integration resolves the electricity rate — for example by the charge point's region. The integration and its region-to-rate bindings are configured in the admin panel. `electricityRateId` is not set on the policy.\n"
                },
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "reimbursementPolicyCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Reimbursement policy read schema. The policy defines how a home-charging session's reimbursement rate is resolved and the validity window during which it applies.",
            "required": [
              "id",
              "operatorId",
              "name",
              "electricityRateSource",
              "validityStartsOn",
              "createdAt",
              "lastUpdatedAt"
            ],
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 255
              },
              "validityStartsOn": {
                "description": "Uses the YYYY-MM-DD date format.",
                "type": "string",
                "format": "date"
              },
              "partnerId": {
                "type": "integer",
                "description": "Partner the policy is scoped to. When not set, the policy applies to every partner of the operator."
              },
              "partnerContractId": {
                "type": "integer",
                "description": "Partner contract the policy is scoped to. Required whenever `partnerId` is set, and must belong to that partner. Policies without a partner are not scoped to a contract."
              },
              "electricityRateId": {
                "type": "integer",
                "description": "Linked electricity rate providing the reimbursement rate. Set only when `electricityRateSource` is `policy`, where it is required."
              },
              "validityEndsOn": {
                "description": "Uses the YYYY-MM-DD date format.",
                "type": "string",
                "format": "date"
              },
              "electricityRateSource": {
                "type": "string",
                "enum": [
                  "policy",
                  "charge_point",
                  "integration"
                ],
                "description": "Origin of the per-kWh rate used to reimburse a home-charging session:\n- **policy**: The electricity rate linked to the policy provides the rate. `electricityRateId` is required and must belong to the same operator as the policy.\n- **charge_point**: The electricity rate assigned to the personal charge point provides the rate, whichever surface assigned it. `electricityRateId` must not be set on the policy.\n- **integration**: An integration resolves the electricity rate — for example by the charge point's region. The integration and its region-to-rate bindings are configured in the admin panel. `electricityRateId` is not set on the policy.\n"
              },
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "reimbursementPolicyRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Reimbursement policy read schema. The policy defines how a home-charging session's reimbursement rate is resolved and the validity window during which it applies.",
            "required": [
              "id",
              "operatorId",
              "name",
              "electricityRateSource",
              "validityStartsOn",
              "createdAt",
              "lastUpdatedAt"
            ],
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 255
              },
              "validityStartsOn": {
                "description": "Uses the YYYY-MM-DD date format.",
                "type": "string",
                "format": "date"
              },
              "partnerId": {
                "type": "integer",
                "description": "Partner the policy is scoped to. When not set, the policy applies to every partner of the operator."
              },
              "partnerContractId": {
                "type": "integer",
                "description": "Partner contract the policy is scoped to. Required whenever `partnerId` is set, and must belong to that partner. Policies without a partner are not scoped to a contract."
              },
              "electricityRateId": {
                "type": "integer",
                "description": "Linked electricity rate providing the reimbursement rate. Set only when `electricityRateSource` is `policy`, where it is required."
              },
              "validityEndsOn": {
                "description": "Uses the YYYY-MM-DD date format.",
                "type": "string",
                "format": "date"
              },
              "electricityRateSource": {
                "type": "string",
                "enum": [
                  "policy",
                  "charge_point",
                  "integration"
                ],
                "description": "Origin of the per-kWh rate used to reimburse a home-charging session:\n- **policy**: The electricity rate linked to the policy provides the rate. `electricityRateId` is required and must belong to the same operator as the policy.\n- **charge_point**: The electricity rate assigned to the personal charge point provides the rate, whichever surface assigned it. `electricityRateId` must not be set on the policy.\n- **integration**: An integration resolves the electricity rate — for example by the charge point's region. The integration and its region-to-rate bindings are configured in the admin panel. `electricityRateId` is not set on the policy.\n"
              },
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "reimbursementPolicyDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "reimbursementPolicyUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Reimbursement policy read schema. The policy defines how a home-charging session's reimbursement rate is resolved and the validity window during which it applies.",
            "required": [
              "id",
              "operatorId",
              "name",
              "electricityRateSource",
              "validityStartsOn",
              "createdAt",
              "lastUpdatedAt"
            ],
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 255
              },
              "validityStartsOn": {
                "description": "Uses the YYYY-MM-DD date format.",
                "type": "string",
                "format": "date"
              },
              "partnerId": {
                "type": "integer",
                "description": "Partner the policy is scoped to. When not set, the policy applies to every partner of the operator."
              },
              "partnerContractId": {
                "type": "integer",
                "description": "Partner contract the policy is scoped to. Required whenever `partnerId` is set, and must belong to that partner. Policies without a partner are not scoped to a contract."
              },
              "electricityRateId": {
                "type": "integer",
                "description": "Linked electricity rate providing the reimbursement rate. Set only when `electricityRateSource` is `policy`, where it is required."
              },
              "validityEndsOn": {
                "description": "Uses the YYYY-MM-DD date format.",
                "type": "string",
                "format": "date"
              },
              "electricityRateSource": {
                "type": "string",
                "enum": [
                  "policy",
                  "charge_point",
                  "integration"
                ],
                "description": "Origin of the per-kWh rate used to reimburse a home-charging session:\n- **policy**: The electricity rate linked to the policy provides the rate. `electricityRateId` is required and must belong to the same operator as the policy.\n- **charge_point**: The electricity rate assigned to the personal charge point provides the rate, whichever surface assigned it. `electricityRateId` must not be set on the policy.\n- **integration**: An integration resolves the electricity rate — for example by the charge point's region. The integration and its region-to-rate bindings are configured in the admin panel. `electricityRateId` is not set on the policy.\n"
              },
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "reimbursementRecordsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "description": "Reimbursement record read schema. A record is one immutable computed reimbursement entry for a single charging session, and has no write surface. Reversing (credit) records are records too — they carry negated amounts and point at the record they reverse.\n",
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "Identifier of this reimbursement record."
                },
                "operatorId": {
                  "type": "integer",
                  "description": "Operator the record belongs to, as exposed by the operators resource."
                },
                "sessionId": {
                  "type": "integer",
                  "description": "Charging session the reimbursement was computed for, as exposed by the sessions resource. Reversing (credit) records repeat the reversed record's session."
                },
                "beneficiary": {
                  "description": "Party the reimbursement is owed to.\n",
                  "type": "object",
                  "properties": {
                    "userId": {
                      "type": "integer",
                      "description": "User the reimbursement is owed to, as exposed by the users resource."
                    }
                  }
                },
                "payer": {
                  "description": "Party that owes the reimbursement. Company reimbursements carry `partnerId` (and `partnerContractId` when the payment is governed by a partner contract); public reimbursements carry `operatorId`.\n",
                  "type": "object",
                  "properties": {
                    "partnerId": {
                      "type": "integer",
                      "description": "Partner paying the reimbursement. Present on company reimbursements."
                    },
                    "partnerContractId": {
                      "type": "integer",
                      "description": "Partner contract the reimbursement is settled under. Present when the paying partner has a contract."
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "Operator paying the reimbursement. Present on public reimbursements."
                    }
                  }
                },
                "reimbursementPolicyId": {
                  "type": "integer",
                  "description": "Reimbursement policy whose terms were applied when the amount was computed. Omitted when no policy governed the session."
                },
                "energy": {
                  "type": "integer",
                  "description": "Reimbursed energy in Wh."
                },
                "rate": {
                  "type": "number",
                  "format": "float",
                  "description": "Monetary rate per kWh applied when computing the reimbursement amount, in the record currency. Its origin is given by `electricityRateSource`. Omitted, together with `electricityRateSource`, on records computed before the platform required a resolved rate; such records are no longer produced."
                },
                "electricityRateSource": {
                  "description": "Origin of the per-kWh rate used to reimburse a home-charging session:\n- **policy**: The electricity rate linked to the policy provides the rate. `electricityRateId` is required and must belong to the same operator as the policy.\n- **charge_point**: The electricity rate assigned to the personal charge point provides the rate, whichever surface assigned it. `electricityRateId` must not be set on the policy.\n- **integration**: An integration resolves the electricity rate — for example by the charge point's region. The integration and its region-to-rate bindings are configured in the admin panel. `electricityRateId` is not set on the policy.\n",
                  "type": "string",
                  "enum": [
                    "policy",
                    "charge_point",
                    "integration"
                  ]
                },
                "taxBasis": {
                  "description": "How tax was applied when the reimbursement amount was computed:\n- **exempt**: No tax was applied. The amount is identical with and without tax.\n- **percentage**: Tax was applied as a percentage of the net amount — see `taxPercentage`.\n- **flat_amount**: Tax was applied as a fixed amount per record, independent of the reimbursed energy.\n- **compound**: Tax was applied as a combination of a percentage and a fixed component.\n",
                  "type": "string",
                  "enum": [
                    "exempt",
                    "percentage",
                    "flat_amount",
                    "compound"
                  ]
                },
                "taxPercentage": {
                  "type": "number",
                  "format": "float",
                  "description": "Tax percentage applied to the reimbursement amount. Present when the applied `taxBasis` carries a percentage component; omitted when no tax percentage could be resolved."
                },
                "amount": {
                  "description": "Reimbursement amount, split by tax inclusion. Reversing (credit) records carry negated amounts.",
                  "type": "object",
                  "properties": {
                    "withTax": {
                      "type": "number"
                    },
                    "withoutTax": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "withTax"
                  ]
                },
                "currency": {
                  "description": "ISO 4217 currency code for the record's monetary amounts.",
                  "type": "string",
                  "enum": [
                    "AED",
                    "AFN",
                    "ALL",
                    "AMD",
                    "ANG",
                    "AOA",
                    "ARS",
                    "AUD",
                    "AWG",
                    "AZN",
                    "BAM",
                    "BBD",
                    "BDT",
                    "BGN",
                    "BHD",
                    "BIF",
                    "BMD",
                    "BND",
                    "BOB",
                    "BOV",
                    "BRL",
                    "BSD",
                    "BTN",
                    "BWP",
                    "BYN",
                    "BZD",
                    "CAD",
                    "CDF",
                    "CHE",
                    "CHF",
                    "CHW",
                    "CLF",
                    "CLP",
                    "CNY",
                    "COP",
                    "COU",
                    "CRC",
                    "CUC",
                    "CUP",
                    "CVE",
                    "CZK",
                    "DJF",
                    "DKK",
                    "DOP",
                    "DZD",
                    "EGP",
                    "ERN",
                    "ETB",
                    "EUR",
                    "FJD",
                    "FKP",
                    "GBP",
                    "GEL",
                    "GHS",
                    "GIP",
                    "GMD",
                    "GNF",
                    "GTQ",
                    "GYD",
                    "HKD",
                    "HNL",
                    "HRK",
                    "HTG",
                    "HUF",
                    "IDR",
                    "ILS",
                    "INR",
                    "IQD",
                    "IRR",
                    "ISK",
                    "JMD",
                    "JOD",
                    "JPY",
                    "KES",
                    "KGS",
                    "KHR",
                    "KMF",
                    "KPW",
                    "KRW",
                    "KWD",
                    "KYD",
                    "KZT",
                    "LAK",
                    "LBP",
                    "LKR",
                    "LRD",
                    "LSL",
                    "LYD",
                    "MAD",
                    "MDL",
                    "MGA",
                    "MKD",
                    "MMK",
                    "MNT",
                    "MOP",
                    "MRU",
                    "MUR",
                    "MVR",
                    "MWK",
                    "MXN",
                    "MXV",
                    "MYR",
                    "MZN",
                    "NAD",
                    "NGN",
                    "NIO",
                    "NOK",
                    "NPR",
                    "NZD",
                    "OMR",
                    "PAB",
                    "PEN",
                    "PGK",
                    "PHP",
                    "PKR",
                    "PLN",
                    "PYG",
                    "QAR",
                    "RON",
                    "RSD",
                    "RUB",
                    "RWF",
                    "SAR",
                    "SBD",
                    "SCR",
                    "SDG",
                    "SEK",
                    "SGD",
                    "SHP",
                    "SLL",
                    "SOS",
                    "SRD",
                    "SSP",
                    "STN",
                    "SVC",
                    "SYP",
                    "SZL",
                    "THB",
                    "TJS",
                    "TMT",
                    "TND",
                    "TOP",
                    "TRY",
                    "TTD",
                    "TWD",
                    "TZS",
                    "UAH",
                    "UGX",
                    "USD",
                    "USN",
                    "UYI",
                    "UYU",
                    "UYW",
                    "UZS",
                    "VES",
                    "VND",
                    "VUV",
                    "WST",
                    "XAF",
                    "XAG",
                    "XAU",
                    "XBA",
                    "XBB",
                    "XBC",
                    "XBD",
                    "XCD",
                    "XDR",
                    "XOF",
                    "XPD",
                    "XPF",
                    "XPT",
                    "XSU",
                    "XTS",
                    "XUA",
                    "XXX",
                    "YER",
                    "ZAR",
                    "ZMW",
                    "ZWL"
                  ]
                },
                "periodStartsOn": {
                  "description": "Uses the YYYY-MM-DD date format.",
                  "type": "string",
                  "format": "date"
                },
                "periodEndsOn": {
                  "description": "Uses the YYYY-MM-DD date format.",
                  "type": "string",
                  "format": "date"
                },
                "credit": {
                  "description": "Reversal this record carries out. Present only on reversing (credit) records.\n",
                  "type": "object",
                  "properties": {
                    "reimbursementRecordId": {
                      "type": "integer",
                      "description": "Reimbursement record this record reverses, as exposed by this same resource."
                    },
                    "reason": {
                      "type": "string",
                      "description": "Reason the reversal was issued, as supplied when the credit was requested."
                    }
                  }
                },
                "creditedByReimbursementRecordId": {
                  "type": "integer",
                  "description": "Reversing (credit) record that reverses this record, as exposed by this same resource. Omitted when this record has not been reversed."
                },
                "authUserId": {
                  "type": "integer",
                  "description": "User whose credential authorized the charging session, as exposed by the users resource. `effectiveUserId` differs from it when the session's vehicle belongs to the charge point owner and the reimbursement was attributed to that owner instead."
                },
                "effectiveUserId": {
                  "type": "integer",
                  "description": "User the session was attributed to for reimbursement purposes, as exposed by the users resource. Equal to `beneficiary.userId` on company reimbursements; on public reimbursements the beneficiary is the charge point owner while the effective user is the driver."
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "operatorId",
                "sessionId",
                "energy",
                "taxBasis",
                "amount",
                "periodStartsOn",
                "periodEndsOn",
                "createdAt",
                "updatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "reimbursementRecordRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Reimbursement record read schema. A record is one immutable computed reimbursement entry for a single charging session, and has no write surface. Reversing (credit) records are records too — they carry negated amounts and point at the record they reverse.\n",
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "Identifier of this reimbursement record."
              },
              "operatorId": {
                "type": "integer",
                "description": "Operator the record belongs to, as exposed by the operators resource."
              },
              "sessionId": {
                "type": "integer",
                "description": "Charging session the reimbursement was computed for, as exposed by the sessions resource. Reversing (credit) records repeat the reversed record's session."
              },
              "beneficiary": {
                "description": "Party the reimbursement is owed to.\n",
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "integer",
                    "description": "User the reimbursement is owed to, as exposed by the users resource."
                  }
                }
              },
              "payer": {
                "description": "Party that owes the reimbursement. Company reimbursements carry `partnerId` (and `partnerContractId` when the payment is governed by a partner contract); public reimbursements carry `operatorId`.\n",
                "type": "object",
                "properties": {
                  "partnerId": {
                    "type": "integer",
                    "description": "Partner paying the reimbursement. Present on company reimbursements."
                  },
                  "partnerContractId": {
                    "type": "integer",
                    "description": "Partner contract the reimbursement is settled under. Present when the paying partner has a contract."
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "Operator paying the reimbursement. Present on public reimbursements."
                  }
                }
              },
              "reimbursementPolicyId": {
                "type": "integer",
                "description": "Reimbursement policy whose terms were applied when the amount was computed. Omitted when no policy governed the session."
              },
              "energy": {
                "type": "integer",
                "description": "Reimbursed energy in Wh."
              },
              "rate": {
                "type": "number",
                "format": "float",
                "description": "Monetary rate per kWh applied when computing the reimbursement amount, in the record currency. Its origin is given by `electricityRateSource`. Omitted, together with `electricityRateSource`, on records computed before the platform required a resolved rate; such records are no longer produced."
              },
              "electricityRateSource": {
                "description": "Origin of the per-kWh rate used to reimburse a home-charging session:\n- **policy**: The electricity rate linked to the policy provides the rate. `electricityRateId` is required and must belong to the same operator as the policy.\n- **charge_point**: The electricity rate assigned to the personal charge point provides the rate, whichever surface assigned it. `electricityRateId` must not be set on the policy.\n- **integration**: An integration resolves the electricity rate — for example by the charge point's region. The integration and its region-to-rate bindings are configured in the admin panel. `electricityRateId` is not set on the policy.\n",
                "type": "string",
                "enum": [
                  "policy",
                  "charge_point",
                  "integration"
                ]
              },
              "taxBasis": {
                "description": "How tax was applied when the reimbursement amount was computed:\n- **exempt**: No tax was applied. The amount is identical with and without tax.\n- **percentage**: Tax was applied as a percentage of the net amount — see `taxPercentage`.\n- **flat_amount**: Tax was applied as a fixed amount per record, independent of the reimbursed energy.\n- **compound**: Tax was applied as a combination of a percentage and a fixed component.\n",
                "type": "string",
                "enum": [
                  "exempt",
                  "percentage",
                  "flat_amount",
                  "compound"
                ]
              },
              "taxPercentage": {
                "type": "number",
                "format": "float",
                "description": "Tax percentage applied to the reimbursement amount. Present when the applied `taxBasis` carries a percentage component; omitted when no tax percentage could be resolved."
              },
              "amount": {
                "description": "Reimbursement amount, split by tax inclusion. Reversing (credit) records carry negated amounts.",
                "type": "object",
                "properties": {
                  "withTax": {
                    "type": "number"
                  },
                  "withoutTax": {
                    "type": "number"
                  }
                },
                "required": [
                  "withTax"
                ]
              },
              "currency": {
                "description": "ISO 4217 currency code for the record's monetary amounts.",
                "type": "string",
                "enum": [
                  "AED",
                  "AFN",
                  "ALL",
                  "AMD",
                  "ANG",
                  "AOA",
                  "ARS",
                  "AUD",
                  "AWG",
                  "AZN",
                  "BAM",
                  "BBD",
                  "BDT",
                  "BGN",
                  "BHD",
                  "BIF",
                  "BMD",
                  "BND",
                  "BOB",
                  "BOV",
                  "BRL",
                  "BSD",
                  "BTN",
                  "BWP",
                  "BYN",
                  "BZD",
                  "CAD",
                  "CDF",
                  "CHE",
                  "CHF",
                  "CHW",
                  "CLF",
                  "CLP",
                  "CNY",
                  "COP",
                  "COU",
                  "CRC",
                  "CUC",
                  "CUP",
                  "CVE",
                  "CZK",
                  "DJF",
                  "DKK",
                  "DOP",
                  "DZD",
                  "EGP",
                  "ERN",
                  "ETB",
                  "EUR",
                  "FJD",
                  "FKP",
                  "GBP",
                  "GEL",
                  "GHS",
                  "GIP",
                  "GMD",
                  "GNF",
                  "GTQ",
                  "GYD",
                  "HKD",
                  "HNL",
                  "HRK",
                  "HTG",
                  "HUF",
                  "IDR",
                  "ILS",
                  "INR",
                  "IQD",
                  "IRR",
                  "ISK",
                  "JMD",
                  "JOD",
                  "JPY",
                  "KES",
                  "KGS",
                  "KHR",
                  "KMF",
                  "KPW",
                  "KRW",
                  "KWD",
                  "KYD",
                  "KZT",
                  "LAK",
                  "LBP",
                  "LKR",
                  "LRD",
                  "LSL",
                  "LYD",
                  "MAD",
                  "MDL",
                  "MGA",
                  "MKD",
                  "MMK",
                  "MNT",
                  "MOP",
                  "MRU",
                  "MUR",
                  "MVR",
                  "MWK",
                  "MXN",
                  "MXV",
                  "MYR",
                  "MZN",
                  "NAD",
                  "NGN",
                  "NIO",
                  "NOK",
                  "NPR",
                  "NZD",
                  "OMR",
                  "PAB",
                  "PEN",
                  "PGK",
                  "PHP",
                  "PKR",
                  "PLN",
                  "PYG",
                  "QAR",
                  "RON",
                  "RSD",
                  "RUB",
                  "RWF",
                  "SAR",
                  "SBD",
                  "SCR",
                  "SDG",
                  "SEK",
                  "SGD",
                  "SHP",
                  "SLL",
                  "SOS",
                  "SRD",
                  "SSP",
                  "STN",
                  "SVC",
                  "SYP",
                  "SZL",
                  "THB",
                  "TJS",
                  "TMT",
                  "TND",
                  "TOP",
                  "TRY",
                  "TTD",
                  "TWD",
                  "TZS",
                  "UAH",
                  "UGX",
                  "USD",
                  "USN",
                  "UYI",
                  "UYU",
                  "UYW",
                  "UZS",
                  "VES",
                  "VND",
                  "VUV",
                  "WST",
                  "XAF",
                  "XAG",
                  "XAU",
                  "XBA",
                  "XBB",
                  "XBC",
                  "XBD",
                  "XCD",
                  "XDR",
                  "XOF",
                  "XPD",
                  "XPF",
                  "XPT",
                  "XSU",
                  "XTS",
                  "XUA",
                  "XXX",
                  "YER",
                  "ZAR",
                  "ZMW",
                  "ZWL"
                ]
              },
              "periodStartsOn": {
                "description": "Uses the YYYY-MM-DD date format.",
                "type": "string",
                "format": "date"
              },
              "periodEndsOn": {
                "description": "Uses the YYYY-MM-DD date format.",
                "type": "string",
                "format": "date"
              },
              "credit": {
                "description": "Reversal this record carries out. Present only on reversing (credit) records.\n",
                "type": "object",
                "properties": {
                  "reimbursementRecordId": {
                    "type": "integer",
                    "description": "Reimbursement record this record reverses, as exposed by this same resource."
                  },
                  "reason": {
                    "type": "string",
                    "description": "Reason the reversal was issued, as supplied when the credit was requested."
                  }
                }
              },
              "creditedByReimbursementRecordId": {
                "type": "integer",
                "description": "Reversing (credit) record that reverses this record, as exposed by this same resource. Omitted when this record has not been reversed."
              },
              "authUserId": {
                "type": "integer",
                "description": "User whose credential authorized the charging session, as exposed by the users resource. `effectiveUserId` differs from it when the session's vehicle belongs to the charge point owner and the reimbursement was attributed to that owner instead."
              },
              "effectiveUserId": {
                "type": "integer",
                "description": "User the session was attributed to for reimbursement purposes, as exposed by the users resource. Equal to `beneficiary.userId` on company reimbursements; on public reimbursements the beneficiary is the charge point owner while the effective user is the driver."
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "sessionId",
              "energy",
              "taxBasis",
              "amount",
              "periodStartsOn",
              "periodEndsOn",
              "createdAt",
              "updatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "reimbursementReportsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "description": "Reimbursement report read schema. A report is a computed aggregate over the reimbursement records that share a beneficiary/payer tuple and period. Its constituent records can be fetched from the reimbursement records listing via `filter[reportId]`.\n",
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "Identifier of this reimbursement report. A regenerated report is replaced by a new one with a different identifier."
                },
                "operatorId": {
                  "type": "integer",
                  "description": "Operator the report belongs to, as exposed by the operators resource."
                },
                "beneficiary": {
                  "description": "Party the reimbursement is owed to.\n",
                  "type": "object",
                  "properties": {
                    "userId": {
                      "type": "integer",
                      "description": "User the reimbursement is owed to, as exposed by the users resource."
                    }
                  }
                },
                "payer": {
                  "description": "Party that owes the reimbursement. Company reimbursements carry `partnerId` (and `partnerContractId` when the payment is governed by a partner contract); public reimbursements carry `operatorId`.\n",
                  "type": "object",
                  "properties": {
                    "partnerId": {
                      "type": "integer",
                      "description": "Partner paying the reimbursement. Present on company reimbursements."
                    },
                    "partnerContractId": {
                      "type": "integer",
                      "description": "Partner contract the reimbursement is settled under. Present when the paying partner has a contract."
                    },
                    "operatorId": {
                      "type": "integer",
                      "description": "Operator paying the reimbursement. Present on public reimbursements."
                    }
                  }
                },
                "reimbursementPolicyId": {
                  "type": "integer",
                  "description": "Reimbursement policy whose terms the report's constituent records were computed under. Omitted when no policy governed them."
                },
                "currency": {
                  "description": "ISO 4217 currency code for the report's monetary aggregates.",
                  "type": "string",
                  "enum": [
                    "AED",
                    "AFN",
                    "ALL",
                    "AMD",
                    "ANG",
                    "AOA",
                    "ARS",
                    "AUD",
                    "AWG",
                    "AZN",
                    "BAM",
                    "BBD",
                    "BDT",
                    "BGN",
                    "BHD",
                    "BIF",
                    "BMD",
                    "BND",
                    "BOB",
                    "BOV",
                    "BRL",
                    "BSD",
                    "BTN",
                    "BWP",
                    "BYN",
                    "BZD",
                    "CAD",
                    "CDF",
                    "CHE",
                    "CHF",
                    "CHW",
                    "CLF",
                    "CLP",
                    "CNY",
                    "COP",
                    "COU",
                    "CRC",
                    "CUC",
                    "CUP",
                    "CVE",
                    "CZK",
                    "DJF",
                    "DKK",
                    "DOP",
                    "DZD",
                    "EGP",
                    "ERN",
                    "ETB",
                    "EUR",
                    "FJD",
                    "FKP",
                    "GBP",
                    "GEL",
                    "GHS",
                    "GIP",
                    "GMD",
                    "GNF",
                    "GTQ",
                    "GYD",
                    "HKD",
                    "HNL",
                    "HRK",
                    "HTG",
                    "HUF",
                    "IDR",
                    "ILS",
                    "INR",
                    "IQD",
                    "IRR",
                    "ISK",
                    "JMD",
                    "JOD",
                    "JPY",
                    "KES",
                    "KGS",
                    "KHR",
                    "KMF",
                    "KPW",
                    "KRW",
                    "KWD",
                    "KYD",
                    "KZT",
                    "LAK",
                    "LBP",
                    "LKR",
                    "LRD",
                    "LSL",
                    "LYD",
                    "MAD",
                    "MDL",
                    "MGA",
                    "MKD",
                    "MMK",
                    "MNT",
                    "MOP",
                    "MRU",
                    "MUR",
                    "MVR",
                    "MWK",
                    "MXN",
                    "MXV",
                    "MYR",
                    "MZN",
                    "NAD",
                    "NGN",
                    "NIO",
                    "NOK",
                    "NPR",
                    "NZD",
                    "OMR",
                    "PAB",
                    "PEN",
                    "PGK",
                    "PHP",
                    "PKR",
                    "PLN",
                    "PYG",
                    "QAR",
                    "RON",
                    "RSD",
                    "RUB",
                    "RWF",
                    "SAR",
                    "SBD",
                    "SCR",
                    "SDG",
                    "SEK",
                    "SGD",
                    "SHP",
                    "SLL",
                    "SOS",
                    "SRD",
                    "SSP",
                    "STN",
                    "SVC",
                    "SYP",
                    "SZL",
                    "THB",
                    "TJS",
                    "TMT",
                    "TND",
                    "TOP",
                    "TRY",
                    "TTD",
                    "TWD",
                    "TZS",
                    "UAH",
                    "UGX",
                    "USD",
                    "USN",
                    "UYI",
                    "UYU",
                    "UYW",
                    "UZS",
                    "VES",
                    "VND",
                    "VUV",
                    "WST",
                    "XAF",
                    "XAG",
                    "XAU",
                    "XBA",
                    "XBB",
                    "XBC",
                    "XBD",
                    "XCD",
                    "XDR",
                    "XOF",
                    "XPD",
                    "XPF",
                    "XPT",
                    "XSU",
                    "XTS",
                    "XUA",
                    "XXX",
                    "YER",
                    "ZAR",
                    "ZMW",
                    "ZWL"
                  ]
                },
                "totalEnergy": {
                  "type": "integer",
                  "description": "Sum of the reimbursed energy across the report's constituent records, in Wh."
                },
                "totalAmount": {
                  "description": "Sum of the reimbursement amount across the report's constituent records, split by tax inclusion.",
                  "type": "object",
                  "properties": {
                    "withTax": {
                      "type": "number"
                    },
                    "withoutTax": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "withTax"
                  ]
                },
                "periodStartsOn": {
                  "description": "Uses the YYYY-MM-DD date format.",
                  "type": "string",
                  "format": "date"
                },
                "periodEndsOn": {
                  "description": "Uses the YYYY-MM-DD date format.",
                  "type": "string",
                  "format": "date"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "operatorId",
                "totalEnergy",
                "totalAmount",
                "periodStartsOn",
                "periodEndsOn",
                "createdAt",
                "updatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "reimbursementReportRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Reimbursement report read schema. A report is a computed aggregate over the reimbursement records that share a beneficiary/payer tuple and period. Its constituent records can be fetched from the reimbursement records listing via `filter[reportId]`.\n",
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "Identifier of this reimbursement report. A regenerated report is replaced by a new one with a different identifier."
              },
              "operatorId": {
                "type": "integer",
                "description": "Operator the report belongs to, as exposed by the operators resource."
              },
              "beneficiary": {
                "description": "Party the reimbursement is owed to.\n",
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "integer",
                    "description": "User the reimbursement is owed to, as exposed by the users resource."
                  }
                }
              },
              "payer": {
                "description": "Party that owes the reimbursement. Company reimbursements carry `partnerId` (and `partnerContractId` when the payment is governed by a partner contract); public reimbursements carry `operatorId`.\n",
                "type": "object",
                "properties": {
                  "partnerId": {
                    "type": "integer",
                    "description": "Partner paying the reimbursement. Present on company reimbursements."
                  },
                  "partnerContractId": {
                    "type": "integer",
                    "description": "Partner contract the reimbursement is settled under. Present when the paying partner has a contract."
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "Operator paying the reimbursement. Present on public reimbursements."
                  }
                }
              },
              "reimbursementPolicyId": {
                "type": "integer",
                "description": "Reimbursement policy whose terms the report's constituent records were computed under. Omitted when no policy governed them."
              },
              "currency": {
                "description": "ISO 4217 currency code for the report's monetary aggregates.",
                "type": "string",
                "enum": [
                  "AED",
                  "AFN",
                  "ALL",
                  "AMD",
                  "ANG",
                  "AOA",
                  "ARS",
                  "AUD",
                  "AWG",
                  "AZN",
                  "BAM",
                  "BBD",
                  "BDT",
                  "BGN",
                  "BHD",
                  "BIF",
                  "BMD",
                  "BND",
                  "BOB",
                  "BOV",
                  "BRL",
                  "BSD",
                  "BTN",
                  "BWP",
                  "BYN",
                  "BZD",
                  "CAD",
                  "CDF",
                  "CHE",
                  "CHF",
                  "CHW",
                  "CLF",
                  "CLP",
                  "CNY",
                  "COP",
                  "COU",
                  "CRC",
                  "CUC",
                  "CUP",
                  "CVE",
                  "CZK",
                  "DJF",
                  "DKK",
                  "DOP",
                  "DZD",
                  "EGP",
                  "ERN",
                  "ETB",
                  "EUR",
                  "FJD",
                  "FKP",
                  "GBP",
                  "GEL",
                  "GHS",
                  "GIP",
                  "GMD",
                  "GNF",
                  "GTQ",
                  "GYD",
                  "HKD",
                  "HNL",
                  "HRK",
                  "HTG",
                  "HUF",
                  "IDR",
                  "ILS",
                  "INR",
                  "IQD",
                  "IRR",
                  "ISK",
                  "JMD",
                  "JOD",
                  "JPY",
                  "KES",
                  "KGS",
                  "KHR",
                  "KMF",
                  "KPW",
                  "KRW",
                  "KWD",
                  "KYD",
                  "KZT",
                  "LAK",
                  "LBP",
                  "LKR",
                  "LRD",
                  "LSL",
                  "LYD",
                  "MAD",
                  "MDL",
                  "MGA",
                  "MKD",
                  "MMK",
                  "MNT",
                  "MOP",
                  "MRU",
                  "MUR",
                  "MVR",
                  "MWK",
                  "MXN",
                  "MXV",
                  "MYR",
                  "MZN",
                  "NAD",
                  "NGN",
                  "NIO",
                  "NOK",
                  "NPR",
                  "NZD",
                  "OMR",
                  "PAB",
                  "PEN",
                  "PGK",
                  "PHP",
                  "PKR",
                  "PLN",
                  "PYG",
                  "QAR",
                  "RON",
                  "RSD",
                  "RUB",
                  "RWF",
                  "SAR",
                  "SBD",
                  "SCR",
                  "SDG",
                  "SEK",
                  "SGD",
                  "SHP",
                  "SLL",
                  "SOS",
                  "SRD",
                  "SSP",
                  "STN",
                  "SVC",
                  "SYP",
                  "SZL",
                  "THB",
                  "TJS",
                  "TMT",
                  "TND",
                  "TOP",
                  "TRY",
                  "TTD",
                  "TWD",
                  "TZS",
                  "UAH",
                  "UGX",
                  "USD",
                  "USN",
                  "UYI",
                  "UYU",
                  "UYW",
                  "UZS",
                  "VES",
                  "VND",
                  "VUV",
                  "WST",
                  "XAF",
                  "XAG",
                  "XAU",
                  "XBA",
                  "XBB",
                  "XBC",
                  "XBD",
                  "XCD",
                  "XDR",
                  "XOF",
                  "XPD",
                  "XPF",
                  "XPT",
                  "XSU",
                  "XTS",
                  "XUA",
                  "XXX",
                  "YER",
                  "ZAR",
                  "ZMW",
                  "ZWL"
                ]
              },
              "totalEnergy": {
                "type": "integer",
                "description": "Sum of the reimbursed energy across the report's constituent records, in Wh."
              },
              "totalAmount": {
                "description": "Sum of the reimbursement amount across the report's constituent records, split by tax inclusion.",
                "type": "object",
                "properties": {
                  "withTax": {
                    "type": "number"
                  },
                  "withoutTax": {
                    "type": "number"
                  }
                },
                "required": [
                  "withTax"
                ]
              },
              "periodStartsOn": {
                "description": "Uses the YYYY-MM-DD date format.",
                "type": "string",
                "format": "date"
              },
              "periodEndsOn": {
                "description": "Uses the YYYY-MM-DD date format.",
                "type": "string",
                "format": "date"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "totalEnergy",
              "totalAmount",
              "periodStartsOn",
              "periodEndsOn",
              "createdAt",
              "updatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "reservationsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Reservation",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "chargePointId": {
                  "type": "integer",
                  "readOnly": true
                },
                "evseId": {
                  "type": "integer",
                  "readOnly": true
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "active",
                    "expired",
                    "canceled",
                    "done"
                  ],
                  "readOnly": true
                },
                "userId": {
                  "type": "integer",
                  "description": "The id of the user that started the session",
                  "readOnly": true
                },
                "reservedAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                },
                "canceledAt": {
                  "type": "string",
                  "format": "date-time",
                  "nullable": true,
                  "readOnly": true
                },
                "duration": {
                  "type": "integer",
                  "description": "In minutes",
                  "readOnly": true
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "operatorId",
                "userId",
                "chargePointId",
                "evseId",
                "status",
                "reservedAt",
                "duration"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "reservationRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Reservation",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "chargePointId": {
                "type": "integer",
                "readOnly": true
              },
              "evseId": {
                "type": "integer",
                "readOnly": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "active",
                  "expired",
                  "canceled",
                  "done"
                ],
                "readOnly": true
              },
              "userId": {
                "type": "integer",
                "description": "The id of the user that started the session",
                "readOnly": true
              },
              "reservedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "canceledAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "readOnly": true
              },
              "duration": {
                "type": "integer",
                "description": "In minutes",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "userId",
              "chargePointId",
              "evseId",
              "status",
              "reservedAt",
              "duration"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "rfidTagsListingDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "rfidTagUid": {
                  "type": "string",
                  "description": "Token used for authorization",
                  "example": 123456
                },
                "rfidLabel": {
                  "type": "string",
                  "description": "Visual label on the card",
                  "nullable": true
                },
                "expireAt": {
                  "type": "string",
                  "format": "date",
                  "nullable": true
                },
                "createdAt": {
                  "type": "string",
                  "format": "datatime",
                  "readOnly": true
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "enabled",
                    "disabled",
                    "suspended"
                  ],
                  "description": "The status of the RFID tag. Use it to disable or suspend a tag\n* `enabled` The tag is enabled and is accepted as authentication method\n* `disabled` The tag is disabled by the admin user and is not acceptable as authorization method\n* `suspended` The tag is suspended by the owner of the tag and is not acceptable as authorization method\n"
                },
                "userId": {
                  "type": "integer",
                  "description": "Associate the RFID tag with a user account. If the user is not presented, the tag will not be authorized! It makes sense to prepare the tags in advance, in case there is another process/entity is going to later assign them!",
                  "nullable": true
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "rfidTagUid",
                "status"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "rfidTagCreateDeprecated": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "rfidTagUid": {
                "type": "string",
                "description": "Token used for authorization",
                "example": 123456
              },
              "rfidLabel": {
                "type": "string",
                "description": "Visual label on the card",
                "nullable": true
              },
              "expireAt": {
                "type": "string",
                "format": "date",
                "nullable": true
              },
              "createdAt": {
                "type": "string",
                "format": "datatime",
                "readOnly": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled",
                  "suspended"
                ],
                "description": "The status of the RFID tag. Use it to disable or suspend a tag\n* `enabled` The tag is enabled and is accepted as authentication method\n* `disabled` The tag is disabled by the admin user and is not acceptable as authorization method\n* `suspended` The tag is suspended by the owner of the tag and is not acceptable as authorization method\n"
              },
              "userId": {
                "type": "integer",
                "description": "Associate the RFID tag with a user account. If the user is not presented, the tag will not be authorized! It makes sense to prepare the tags in advance, in case there is another process/entity is going to later assign them!",
                "nullable": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "rfidTagUid",
              "status"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "rfidTagReadDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "rfidTagUid": {
                "type": "string",
                "description": "Token used for authorization",
                "example": 123456
              },
              "rfidLabel": {
                "type": "string",
                "description": "Visual label on the card",
                "nullable": true
              },
              "expireAt": {
                "type": "string",
                "format": "date",
                "nullable": true
              },
              "createdAt": {
                "type": "string",
                "format": "datatime",
                "readOnly": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled",
                  "suspended"
                ],
                "description": "The status of the RFID tag. Use it to disable or suspend a tag\n* `enabled` The tag is enabled and is accepted as authentication method\n* `disabled` The tag is disabled by the admin user and is not acceptable as authorization method\n* `suspended` The tag is suspended by the owner of the tag and is not acceptable as authorization method\n"
              },
              "userId": {
                "type": "integer",
                "description": "Associate the RFID tag with a user account. If the user is not presented, the tag will not be authorized! It makes sense to prepare the tags in advance, in case there is another process/entity is going to later assign them!",
                "nullable": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "rfidTagUid",
              "status"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "rfidTagDeleteDeprecated": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "rfidTagUpdateDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "rfidTagUid": {
                "type": "string",
                "description": "Token used for authorization",
                "example": 123456
              },
              "rfidLabel": {
                "type": "string",
                "description": "Visual label on the card",
                "nullable": true
              },
              "expireAt": {
                "type": "string",
                "format": "date",
                "nullable": true
              },
              "createdAt": {
                "type": "string",
                "format": "datatime",
                "readOnly": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled",
                  "suspended"
                ],
                "description": "The status of the RFID tag. Use it to disable or suspend a tag\n* `enabled` The tag is enabled and is accepted as authentication method\n* `disabled` The tag is disabled by the admin user and is not acceptable as authorization method\n* `suspended` The tag is suspended by the owner of the tag and is not acceptable as authorization method\n"
              },
              "userId": {
                "type": "integer",
                "description": "Associate the RFID tag with a user account. If the user is not presented, the tag will not be authorized! It makes sense to prepare the tags in advance, in case there is another process/entity is going to later assign them!",
                "nullable": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "rfidTagUid",
              "status"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "listRoamingConnections": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Roaming Connection",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "protocol": {
                  "type": "string",
                  "enum": [
                    "OCPI",
                    "ocpi_e_clearing_2_1_1",
                    "ocpi_e_clearing_2_2_1",
                    "OCPI Gireve",
                    "Gireve OCPI 2.1.1",
                    "Hubject OICP 2.2",
                    "Hubject OICP 2.3",
                    "hubject_ocpi"
                  ],
                  "description": "The roaming protocol used to exchange data with the partner.\n\n* `OCPI` — a direct, bilateral OCPI connection with the partner.\n* `ocpi_e_clearing_2_1_1` — an OCPI 2.1.1 connection to the e-clearing.net hub.\n* `ocpi_e_clearing_2_2_1` — an OCPI 2.2.1 connection to the e-clearing.net hub.\n* `OCPI Gireve` — a connection to the GIREVE hub over OCPI 2.2.1.\n* `Gireve OCPI 2.1.1` — a legacy connection to the GIREVE hub over OCPI 2.1.1.\n* `Hubject OICP 2.2` — a connection to Hubject over OICP 2.2, a protocol family distinct from OCPI.\n* `Hubject OICP 2.3` — a connection to Hubject over OICP 2.3, a protocol family distinct from OCPI.\n* `hubject_ocpi` — a connection to Hubject Intercharge over OCPI.\n"
                },
                "endpoint": {
                  "type": "string"
                },
                "ocpi": {
                  "type": "object",
                  "nullable": true,
                  "properties": {
                    "token": {
                      "type": "string"
                    }
                  }
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "disputePeriodLength": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "Length of the dispute period, in weekdays after the CDR processing date, during which a dispute may be formalised."
                },
                "issuer": {
                  "type": "string",
                  "maxLength": 64,
                  "readOnly": true,
                  "description": "Issuer name sent for own tokens shared with this partner over OCPI. Omitted when no connection-level issuer is configured, in which case the operator-level issuer applies."
                },
                "preferRealtimeAuthorization": {
                  "type": "boolean",
                  "description": "Whether outbound Token/Authorize requests are sent to the hub for real-time authorization even when the local token whitelist would normally answer them directly. Published only for connections whose `protocol` is `hubject_ocpi`."
                }
              },
              "required": [
                "id",
                "protocol",
                "endpoint",
                "disputePeriodLength"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getRoamingConnection": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Roaming Connection",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "protocol": {
                "type": "string",
                "enum": [
                  "OCPI",
                  "ocpi_e_clearing_2_1_1",
                  "ocpi_e_clearing_2_2_1",
                  "OCPI Gireve",
                  "Gireve OCPI 2.1.1",
                  "Hubject OICP 2.2",
                  "Hubject OICP 2.3",
                  "hubject_ocpi"
                ],
                "description": "The roaming protocol used to exchange data with the partner.\n\n* `OCPI` — a direct, bilateral OCPI connection with the partner.\n* `ocpi_e_clearing_2_1_1` — an OCPI 2.1.1 connection to the e-clearing.net hub.\n* `ocpi_e_clearing_2_2_1` — an OCPI 2.2.1 connection to the e-clearing.net hub.\n* `OCPI Gireve` — a connection to the GIREVE hub over OCPI 2.2.1.\n* `Gireve OCPI 2.1.1` — a legacy connection to the GIREVE hub over OCPI 2.1.1.\n* `Hubject OICP 2.2` — a connection to Hubject over OICP 2.2, a protocol family distinct from OCPI.\n* `Hubject OICP 2.3` — a connection to Hubject over OICP 2.3, a protocol family distinct from OCPI.\n* `hubject_ocpi` — a connection to Hubject Intercharge over OCPI.\n"
              },
              "endpoint": {
                "type": "string"
              },
              "ocpi": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "token": {
                    "type": "string"
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "disputePeriodLength": {
                "type": "integer",
                "readOnly": true,
                "description": "Length of the dispute period, in weekdays after the CDR processing date, during which a dispute may be formalised."
              },
              "issuer": {
                "type": "string",
                "maxLength": 64,
                "readOnly": true,
                "description": "Issuer name sent for own tokens shared with this partner over OCPI. Omitted when no connection-level issuer is configured, in which case the operator-level issuer applies."
              },
              "preferRealtimeAuthorization": {
                "type": "boolean",
                "description": "Whether outbound Token/Authorize requests are sent to the hub for real-time authorization even when the local token whitelist would normally answer them directly. Published only for connections whose `protocol` is `hubject_ocpi`."
              }
            },
            "required": [
              "id",
              "protocol",
              "endpoint",
              "disputePeriodLength"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "roamingCposListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Unique identifier of the CPO in our system"
                },
                "hubjectId": {
                  "type": "string",
                  "description": "Hubject Operator ID assigned to the CPO"
                },
                "businessName": {
                  "type": "string",
                  "description": "Business name of the CPO"
                },
                "connectionId": {
                  "type": "integer",
                  "description": "ID of the roaming connection (see /resources/roaming-connections)"
                },
                "enabled": {
                  "type": "boolean",
                  "description": "Whether the CPO is enabled for roaming"
                },
                "countryCode": {
                  "type": "string",
                  "description": "The code provided during the token exchange process"
                },
                "partyId": {
                  "type": "string",
                  "description": "Roaming party ID of the CPO"
                },
                "cpoSettings": {
                  "type": "object",
                  "properties": {
                    "cpoQrCodePrefix": {
                      "type": "string",
                      "description": "Example - \"http://m.intercharge.eu/qr?evseid=\" if the URL in the QR Code is http://m.intercharge.eu/qr?evseid=CH*ION*E213604"
                    },
                    "tariffMappingMode": {
                      "type": "string",
                      "enum": [
                        "per_roaming_tariff",
                        "per_evse",
                        "single_tariff_group"
                      ],
                      "default": "per_roaming_tariff",
                      "description": "Selects how tariff groups are assigned to this roaming partner's EVSEs.\n\n- `per_roaming_tariff`: each EVSE inherits the tariff group via the `RoamingTariff.tariffGroupId` of the roaming tariff it receives (see `/resources/roaming-tariffs`).\n- `per_evse`: a tariff group is assigned individually to each EVSE.\n- `single_tariff_group`: one tariff group is applied to all of this partner's EVSEs — useful when that group contains a \"Roaming pricing plus markup\" tariff.\n\nThe underlying `tariff_mapping_mode` column is nullable; `null` falls back to `per_roaming_tariff` (the documented default). The API resolves the fallback before returning, so responses always carry one of the three values.\n"
                    },
                    "applyCustomTariffsToEvsesWithRoamingTariff": {
                      "type": "boolean"
                    },
                    "sendsPeriodicMeterUpdates": {
                      "type": "boolean"
                    },
                    "externalTariffIntegration": {
                      "type": "string",
                      "enum": [
                        "has.to.be"
                      ],
                      "description": "External vendor identifier for an alternative tariff source. Currently the platform only supports the `has.to.be` integration."
                    },
                    "treatEvseStatusUnknownAs": {
                      "type": "string",
                      "enum": [
                        "available",
                        "unavailable"
                      ],
                      "default": "available",
                      "description": "How the platform should treat an EVSE whose status received from the CPO is `unknown`.\n\n- `available`: assume the EVSE is available and surface it to drivers as such.\n- `unavailable`: assume the EVSE is unavailable and hide it from drivers.\n"
                    },
                    "phaseAcPowerFormula": {
                      "type": "string",
                      "enum": [
                        "amperage_voltage_3",
                        "amperage_voltage_sqr3"
                      ],
                      "default": "amperage_voltage_3",
                      "description": "Formula used to derive AC power from amperage and voltage for this CPO's EVSEs.\n\n- `amperage_voltage_3`: P = U × I × 3 (sum of per-phase products — the platform default).\n- `amperage_voltage_sqr3`: P = U × I × √3 (line-to-line product for balanced three-phase).\n"
                    }
                  },
                  "required": [
                    "tariffMappingMode",
                    "applyCustomTariffsToEvsesWithRoamingTariff",
                    "sendsPeriodicMeterUpdates",
                    "treatEvseStatusUnknownAs",
                    "phaseAcPowerFormula"
                  ]
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "connectionId",
                "enabled",
                "cpoSettings",
                "lastUpdatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "roamingCpoRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier of the CPO in our system"
              },
              "hubjectId": {
                "type": "string",
                "description": "Hubject Operator ID assigned to the CPO"
              },
              "businessName": {
                "type": "string",
                "description": "Business name of the CPO"
              },
              "connectionId": {
                "type": "integer",
                "description": "ID of the roaming connection (see /resources/roaming-connections)"
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether the CPO is enabled for roaming"
              },
              "countryCode": {
                "type": "string",
                "description": "The code provided during the token exchange process"
              },
              "partyId": {
                "type": "string",
                "description": "Roaming party ID of the CPO"
              },
              "cpoSettings": {
                "type": "object",
                "properties": {
                  "cpoQrCodePrefix": {
                    "type": "string",
                    "description": "Example - \"http://m.intercharge.eu/qr?evseid=\" if the URL in the QR Code is http://m.intercharge.eu/qr?evseid=CH*ION*E213604"
                  },
                  "tariffMappingMode": {
                    "type": "string",
                    "enum": [
                      "per_roaming_tariff",
                      "per_evse",
                      "single_tariff_group"
                    ],
                    "default": "per_roaming_tariff",
                    "description": "Selects how tariff groups are assigned to this roaming partner's EVSEs.\n\n- `per_roaming_tariff`: each EVSE inherits the tariff group via the `RoamingTariff.tariffGroupId` of the roaming tariff it receives (see `/resources/roaming-tariffs`).\n- `per_evse`: a tariff group is assigned individually to each EVSE.\n- `single_tariff_group`: one tariff group is applied to all of this partner's EVSEs — useful when that group contains a \"Roaming pricing plus markup\" tariff.\n\nThe underlying `tariff_mapping_mode` column is nullable; `null` falls back to `per_roaming_tariff` (the documented default). The API resolves the fallback before returning, so responses always carry one of the three values.\n"
                  },
                  "applyCustomTariffsToEvsesWithRoamingTariff": {
                    "type": "boolean"
                  },
                  "sendsPeriodicMeterUpdates": {
                    "type": "boolean"
                  },
                  "externalTariffIntegration": {
                    "type": "string",
                    "enum": [
                      "has.to.be"
                    ],
                    "description": "External vendor identifier for an alternative tariff source. Currently the platform only supports the `has.to.be` integration."
                  },
                  "treatEvseStatusUnknownAs": {
                    "type": "string",
                    "enum": [
                      "available",
                      "unavailable"
                    ],
                    "default": "available",
                    "description": "How the platform should treat an EVSE whose status received from the CPO is `unknown`.\n\n- `available`: assume the EVSE is available and surface it to drivers as such.\n- `unavailable`: assume the EVSE is unavailable and hide it from drivers.\n"
                  },
                  "phaseAcPowerFormula": {
                    "type": "string",
                    "enum": [
                      "amperage_voltage_3",
                      "amperage_voltage_sqr3"
                    ],
                    "default": "amperage_voltage_3",
                    "description": "Formula used to derive AC power from amperage and voltage for this CPO's EVSEs.\n\n- `amperage_voltage_3`: P = U × I × 3 (sum of per-phase products — the platform default).\n- `amperage_voltage_sqr3`: P = U × I × √3 (line-to-line product for balanced three-phase).\n"
                  }
                },
                "required": [
                  "tariffMappingMode",
                  "applyCustomTariffsToEvsesWithRoamingTariff",
                  "sendsPeriodicMeterUpdates",
                  "treatEvseStatusUnknownAs",
                  "phaseAcPowerFormula"
                ]
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "connectionId",
              "enabled",
              "cpoSettings",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "roamingCpoUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier of the CPO in our system"
              },
              "hubjectId": {
                "type": "string",
                "description": "Hubject Operator ID assigned to the CPO"
              },
              "businessName": {
                "type": "string",
                "description": "Business name of the CPO"
              },
              "connectionId": {
                "type": "integer",
                "description": "ID of the roaming connection (see /resources/roaming-connections)"
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether the CPO is enabled for roaming"
              },
              "countryCode": {
                "type": "string",
                "description": "The code provided during the token exchange process"
              },
              "partyId": {
                "type": "string",
                "description": "Roaming party ID of the CPO"
              },
              "cpoSettings": {
                "type": "object",
                "properties": {
                  "cpoQrCodePrefix": {
                    "type": "string",
                    "description": "Example - \"http://m.intercharge.eu/qr?evseid=\" if the URL in the QR Code is http://m.intercharge.eu/qr?evseid=CH*ION*E213604"
                  },
                  "tariffMappingMode": {
                    "type": "string",
                    "enum": [
                      "per_roaming_tariff",
                      "per_evse",
                      "single_tariff_group"
                    ],
                    "default": "per_roaming_tariff",
                    "description": "Selects how tariff groups are assigned to this roaming partner's EVSEs.\n\n- `per_roaming_tariff`: each EVSE inherits the tariff group via the `RoamingTariff.tariffGroupId` of the roaming tariff it receives (see `/resources/roaming-tariffs`).\n- `per_evse`: a tariff group is assigned individually to each EVSE.\n- `single_tariff_group`: one tariff group is applied to all of this partner's EVSEs — useful when that group contains a \"Roaming pricing plus markup\" tariff.\n\nThe underlying `tariff_mapping_mode` column is nullable; `null` falls back to `per_roaming_tariff` (the documented default). The API resolves the fallback before returning, so responses always carry one of the three values.\n"
                  },
                  "applyCustomTariffsToEvsesWithRoamingTariff": {
                    "type": "boolean"
                  },
                  "sendsPeriodicMeterUpdates": {
                    "type": "boolean"
                  },
                  "externalTariffIntegration": {
                    "type": "string",
                    "enum": [
                      "has.to.be"
                    ],
                    "description": "External vendor identifier for an alternative tariff source. Currently the platform only supports the `has.to.be` integration."
                  },
                  "treatEvseStatusUnknownAs": {
                    "type": "string",
                    "enum": [
                      "available",
                      "unavailable"
                    ],
                    "default": "available",
                    "description": "How the platform should treat an EVSE whose status received from the CPO is `unknown`.\n\n- `available`: assume the EVSE is available and surface it to drivers as such.\n- `unavailable`: assume the EVSE is unavailable and hide it from drivers.\n"
                  },
                  "phaseAcPowerFormula": {
                    "type": "string",
                    "enum": [
                      "amperage_voltage_3",
                      "amperage_voltage_sqr3"
                    ],
                    "default": "amperage_voltage_3",
                    "description": "Formula used to derive AC power from amperage and voltage for this CPO's EVSEs.\n\n- `amperage_voltage_3`: P = U × I × 3 (sum of per-phase products — the platform default).\n- `amperage_voltage_sqr3`: P = U × I × √3 (line-to-line product for balanced three-phase).\n"
                  }
                },
                "required": [
                  "tariffMappingMode",
                  "applyCustomTariffsToEvsesWithRoamingTariff",
                  "sendsPeriodicMeterUpdates",
                  "treatEvseStatusUnknownAs",
                  "phaseAcPowerFormula"
                ]
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "connectionId",
              "enabled",
              "cpoSettings",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "roamingEmspsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Unique identifier of the EMSP"
                },
                "hubjectId": {
                  "type": "string",
                  "description": "Hubject Provider ID assigned to the EMSP"
                },
                "businessName": {
                  "type": "string",
                  "description": "Business name of the EMSP"
                },
                "connectionId": {
                  "type": "integer",
                  "description": "ID of the roaming connection (see /resources/roaming-connections)"
                },
                "countryCode": {
                  "type": "string",
                  "description": "The code provided during the token exchange process"
                },
                "partyId": {
                  "type": "string",
                  "description": "Roaming party ID of the EMSP"
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "connectionId",
                "lastUpdatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "roamingEmspCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier of the EMSP"
              },
              "hubjectId": {
                "type": "string",
                "description": "Hubject Provider ID assigned to the EMSP"
              },
              "businessName": {
                "type": "string",
                "description": "Business name of the EMSP"
              },
              "connectionId": {
                "type": "integer",
                "description": "ID of the roaming connection (see /resources/roaming-connections)"
              },
              "countryCode": {
                "type": "string",
                "description": "The code provided during the token exchange process"
              },
              "partyId": {
                "type": "string",
                "description": "Roaming party ID of the EMSP"
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "connectionId",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "roamingEmspRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier of the EMSP"
              },
              "hubjectId": {
                "type": "string",
                "description": "Hubject Provider ID assigned to the EMSP"
              },
              "businessName": {
                "type": "string",
                "description": "Business name of the EMSP"
              },
              "connectionId": {
                "type": "integer",
                "description": "ID of the roaming connection (see /resources/roaming-connections)"
              },
              "countryCode": {
                "type": "string",
                "description": "The code provided during the token exchange process"
              },
              "partyId": {
                "type": "string",
                "description": "Roaming party ID of the EMSP"
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "connectionId",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "roamingEmspDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "405": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "roamingEmspUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier of the EMSP"
              },
              "hubjectId": {
                "type": "string",
                "description": "Hubject Provider ID assigned to the EMSP"
              },
              "businessName": {
                "type": "string",
                "description": "Business name of the EMSP"
              },
              "connectionId": {
                "type": "integer",
                "description": "ID of the roaming connection (see /resources/roaming-connections)"
              },
              "countryCode": {
                "type": "string",
                "description": "The code provided during the token exchange process"
              },
              "partyId": {
                "type": "string",
                "description": "Roaming party ID of the EMSP"
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "connectionId",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "roamingEmspPartnersListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "operatorId": {
                  "type": "integer",
                  "description": "ID of the platform operator this row belongs to."
                },
                "partnerId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "ID of the partner assigned to the EMSP for this operator, or `null` if none is assigned."
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "operatorId",
                "partnerId",
                "lastUpdatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "roamingOperatorsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "operatorId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "role": {
                  "type": "string"
                },
                "hubjectId": {
                  "type": "string",
                  "nullable": true
                },
                "businessName": {
                  "type": "string",
                  "nullable": true
                },
                "platformId": {
                  "type": "integer"
                },
                "partnerId": {
                  "type": "integer",
                  "nullable": true,
                  "deprecated": true
                },
                "enabled": {
                  "type": "boolean"
                },
                "countryCode": {
                  "type": "string",
                  "description": "The code provided during the token exchange process",
                  "nullable": true
                },
                "partyId": {
                  "type": "string",
                  "description": "ID of the Operator or Provider of roaming"
                },
                "cpoSettings": {
                  "type": "object",
                  "properties": {
                    "cpoQrcodePrefix": {
                      "type": "string",
                      "description": "Example - \"http://m.intercharge.eu/qr?evseid=\" if the URL in the QR Code is http://m.intercharge.eu/qr?evseid=CH*ION*E213604",
                      "nullable": true
                    },
                    "manualEvseManagement": {
                      "type": "boolean",
                      "default": false,
                      "nullable": true
                    },
                    "applyCustomTariffsToEvsesWithRoamingTariff": {
                      "type": "boolean",
                      "default": false,
                      "nullable": true
                    },
                    "sendsPeriodicMeterUpdates": {
                      "type": "boolean",
                      "default": true,
                      "nullable": true
                    },
                    "externalTariffIntegration": {
                      "type": "string",
                      "nullable": true,
                      "description": "Only possible value is `has.to.be`"
                    },
                    "threatEvseStatusUnknownAs": {
                      "type": "string",
                      "enum": [
                        "available",
                        "unavailable"
                      ]
                    },
                    "phaseAcPowerFormula": {
                      "type": "string",
                      "enum": [
                        "amperage_voltage_3",
                        "amperage_voltage_sqr3"
                      ],
                      "default": "amperage_voltage_3"
                    }
                  }
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "operatorId"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "roamingOperatorRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "role": {
                "type": "string"
              },
              "hubjectId": {
                "type": "string",
                "nullable": true
              },
              "businessName": {
                "type": "string",
                "nullable": true
              },
              "platformId": {
                "type": "integer"
              },
              "partnerId": {
                "type": "integer",
                "nullable": true,
                "deprecated": true
              },
              "enabled": {
                "type": "boolean"
              },
              "countryCode": {
                "type": "string",
                "description": "The code provided during the token exchange process",
                "nullable": true
              },
              "partyId": {
                "type": "string",
                "description": "ID of the Operator or Provider of roaming"
              },
              "cpoSettings": {
                "type": "object",
                "properties": {
                  "cpoQrcodePrefix": {
                    "type": "string",
                    "description": "Example - \"http://m.intercharge.eu/qr?evseid=\" if the URL in the QR Code is http://m.intercharge.eu/qr?evseid=CH*ION*E213604",
                    "nullable": true
                  },
                  "manualEvseManagement": {
                    "type": "boolean",
                    "default": false,
                    "nullable": true
                  },
                  "applyCustomTariffsToEvsesWithRoamingTariff": {
                    "type": "boolean",
                    "default": false,
                    "nullable": true
                  },
                  "sendsPeriodicMeterUpdates": {
                    "type": "boolean",
                    "default": true,
                    "nullable": true
                  },
                  "externalTariffIntegration": {
                    "type": "string",
                    "nullable": true,
                    "description": "Only possible value is `has.to.be`"
                  },
                  "threatEvseStatusUnknownAs": {
                    "type": "string",
                    "enum": [
                      "available",
                      "unavailable"
                    ]
                  },
                  "phaseAcPowerFormula": {
                    "type": "string",
                    "enum": [
                      "amperage_voltage_3",
                      "amperage_voltage_sqr3"
                    ],
                    "default": "amperage_voltage_3"
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "roamingOperatorUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "role": {
                "type": "string"
              },
              "hubjectId": {
                "type": "string",
                "nullable": true
              },
              "businessName": {
                "type": "string",
                "nullable": true
              },
              "platformId": {
                "type": "integer"
              },
              "partnerId": {
                "type": "integer",
                "nullable": true,
                "deprecated": true
              },
              "enabled": {
                "type": "boolean"
              },
              "countryCode": {
                "type": "string",
                "description": "The code provided during the token exchange process",
                "nullable": true
              },
              "partyId": {
                "type": "string",
                "description": "ID of the Operator or Provider of roaming"
              },
              "cpoSettings": {
                "type": "object",
                "properties": {
                  "cpoQrcodePrefix": {
                    "type": "string",
                    "description": "Example - \"http://m.intercharge.eu/qr?evseid=\" if the URL in the QR Code is http://m.intercharge.eu/qr?evseid=CH*ION*E213604",
                    "nullable": true
                  },
                  "manualEvseManagement": {
                    "type": "boolean",
                    "default": false,
                    "nullable": true
                  },
                  "applyCustomTariffsToEvsesWithRoamingTariff": {
                    "type": "boolean",
                    "default": false,
                    "nullable": true
                  },
                  "sendsPeriodicMeterUpdates": {
                    "type": "boolean",
                    "default": true,
                    "nullable": true
                  },
                  "externalTariffIntegration": {
                    "type": "string",
                    "nullable": true,
                    "description": "Only possible value is `has.to.be`"
                  },
                  "threatEvseStatusUnknownAs": {
                    "type": "string",
                    "enum": [
                      "available",
                      "unavailable"
                    ]
                  },
                  "phaseAcPowerFormula": {
                    "type": "string",
                    "enum": [
                      "amperage_voltage_3",
                      "amperage_voltage_sqr3"
                    ],
                    "default": "amperage_voltage_3"
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "listRoamingCustomTariffFilters": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "required": [
                "id",
                "name",
                "status",
                "applicableCurrentTypes",
                "order",
                "createdAt",
                "updatedAt"
              ],
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "Unique identifier of the tariff filter"
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "enabled",
                    "disabled"
                  ]
                },
                "countryCode": {
                  "type": "string",
                  "pattern": "^[A-Z]{2}$",
                  "description": "ISO 3166-1 alpha-2 country code"
                },
                "applicableCurrentTypes": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "AC",
                      "DC"
                    ]
                  },
                  "description": "Array of current types (AC, DC) that this filter applies to, pass an empty array to clear all current type restrictions."
                },
                "powerBelowKw": {
                  "type": "number",
                  "minimum": 0,
                  "description": "Filter EVSEs with power below specified kW value"
                },
                "evseIdPrefix": {
                  "type": "string",
                  "maxLength": 1000,
                  "description": "Filter EVSEs whose IDs start with specified prefix(es). Multiple prefixes separated by newlines"
                },
                "order": {
                  "type": "integer",
                  "description": "Position of the tariff filter in the ordering sequence. When not provided during creation, it will go last. If an already existing order number is provided, it will reorder the other tariff filters to take their place in the sequence."
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "createRoamingCustomTariffFilter": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "name",
              "status",
              "applicableCurrentTypes",
              "order",
              "createdAt",
              "updatedAt"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "Unique identifier of the tariff filter"
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 255
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "countryCode": {
                "type": "string",
                "pattern": "^[A-Z]{2}$",
                "description": "ISO 3166-1 alpha-2 country code"
              },
              "applicableCurrentTypes": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "AC",
                    "DC"
                  ]
                },
                "description": "Array of current types (AC, DC) that this filter applies to, pass an empty array to clear all current type restrictions."
              },
              "powerBelowKw": {
                "type": "number",
                "minimum": 0,
                "description": "Filter EVSEs with power below specified kW value"
              },
              "evseIdPrefix": {
                "type": "string",
                "maxLength": 1000,
                "description": "Filter EVSEs whose IDs start with specified prefix(es). Multiple prefixes separated by newlines"
              },
              "order": {
                "type": "integer",
                "description": "Position of the tariff filter in the ordering sequence. When not provided during creation, it will go last. If an already existing order number is provided, it will reorder the other tariff filters to take their place in the sequence."
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            }
          }
        }
      }
    },
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "reorderRoamingCustomTariffFilters": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "example": "Order updated successfully"
          }
        }
      }
    },
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getRoamingCustomTariffFilter": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "name",
              "status",
              "applicableCurrentTypes",
              "order",
              "createdAt",
              "updatedAt"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "Unique identifier of the tariff filter"
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 255
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "countryCode": {
                "type": "string",
                "pattern": "^[A-Z]{2}$",
                "description": "ISO 3166-1 alpha-2 country code"
              },
              "applicableCurrentTypes": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "AC",
                    "DC"
                  ]
                },
                "description": "Array of current types (AC, DC) that this filter applies to, pass an empty array to clear all current type restrictions."
              },
              "powerBelowKw": {
                "type": "number",
                "minimum": 0,
                "description": "Filter EVSEs with power below specified kW value"
              },
              "evseIdPrefix": {
                "type": "string",
                "maxLength": 1000,
                "description": "Filter EVSEs whose IDs start with specified prefix(es). Multiple prefixes separated by newlines"
              },
              "order": {
                "type": "integer",
                "description": "Position of the tariff filter in the ordering sequence. When not provided during creation, it will go last. If an already existing order number is provided, it will reorder the other tariff filters to take their place in the sequence."
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "deleteRoamingCustomTariffFilter": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "updateRoamingCustomTariffFilter": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "name",
              "status",
              "applicableCurrentTypes",
              "order",
              "createdAt",
              "updatedAt"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "Unique identifier of the tariff filter"
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 255
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "countryCode": {
                "type": "string",
                "pattern": "^[A-Z]{2}$",
                "description": "ISO 3166-1 alpha-2 country code"
              },
              "applicableCurrentTypes": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "AC",
                    "DC"
                  ]
                },
                "description": "Array of current types (AC, DC) that this filter applies to, pass an empty array to clear all current type restrictions."
              },
              "powerBelowKw": {
                "type": "number",
                "minimum": 0,
                "description": "Filter EVSEs with power below specified kW value"
              },
              "evseIdPrefix": {
                "type": "string",
                "maxLength": 1000,
                "description": "Filter EVSEs whose IDs start with specified prefix(es). Multiple prefixes separated by newlines"
              },
              "order": {
                "type": "integer",
                "description": "Position of the tariff filter in the ordering sequence. When not provided during creation, it will go last. If an already existing order number is provided, it will reorder the other tariff filters to take their place in the sequence."
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            }
          }
        }
      }
    },
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "roamingPlatformsListingDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Roaming Platform",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "protocol": {
                  "type": "string",
                  "enum": [
                    "OCPI",
                    "OCPI Gireve",
                    "Gireve OCPI 2.1.1",
                    "Hubject OICP 2.2",
                    "Hubject OICP 2.3",
                    "hubject_ocpi"
                  ],
                  "description": "The roaming protocol used to exchange data with the partner.\n\n* `OCPI` — a direct, bilateral OCPI connection with the partner, or an OCPI connection to the e-clearing.net hub.\n* `OCPI Gireve` — a connection to the GIREVE hub over OCPI 2.2.1.\n* `Gireve OCPI 2.1.1` — a legacy connection to the GIREVE hub over OCPI 2.1.1.\n* `Hubject OICP 2.2` — a connection to Hubject over OICP 2.2, a protocol family distinct from OCPI.\n* `Hubject OICP 2.3` — a connection to Hubject over OICP 2.3, a protocol family distinct from OCPI.\n* `hubject_ocpi` — a connection to Hubject Intercharge over OCPI.\n"
                },
                "endpoint": {
                  "type": "string",
                  "format": "url"
                },
                "ocpi": {
                  "type": "object",
                  "nullable": true,
                  "properties": {
                    "token": {
                      "type": "string"
                    }
                  }
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "protocol",
                "endpoint"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page"
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page"
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page",
                "nullable": true
              }
            },
            "required": [
              "first",
              "last"
            ]
          },
          "meta": {
            "type": "object",
            "properties": {
              "current_page": {
                "type": "integer",
                "description": "The number of the current page being fetched"
              },
              "from": {
                "type": "integer",
                "description": "The first of the fetched item's position in the total list",
                "nullable": true
              },
              "last_page": {
                "type": "integer",
                "description": "The number of the past page"
              },
              "links": {
                "type": "array",
                "description": "Array of link objects pointing to the previous/current/next pages",
                "items": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string",
                      "nullable": true,
                      "description": "The URL to the previous/current/next page or null if such page does not exist"
                    },
                    "label": {
                      "type": "string",
                      "description": "The name of the page that the links should be pointing to"
                    },
                    "active": {
                      "type": "boolean",
                      "description": "Is the link active, it will be true only when there is an URL"
                    }
                  }
                }
              },
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "to": {
                "type": "integer",
                "description": "The last of the fetched item's position in the total list",
                "nullable": true
              },
              "total": {
                "type": "integer",
                "description": "The total number of items in the list"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "roamingPlatformReadDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Roaming Platform",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "protocol": {
                "type": "string",
                "enum": [
                  "OCPI",
                  "OCPI Gireve",
                  "Gireve OCPI 2.1.1",
                  "Hubject OICP 2.2",
                  "Hubject OICP 2.3",
                  "hubject_ocpi"
                ],
                "description": "The roaming protocol used to exchange data with the partner.\n\n* `OCPI` — a direct, bilateral OCPI connection with the partner, or an OCPI connection to the e-clearing.net hub.\n* `OCPI Gireve` — a connection to the GIREVE hub over OCPI 2.2.1.\n* `Gireve OCPI 2.1.1` — a legacy connection to the GIREVE hub over OCPI 2.1.1.\n* `Hubject OICP 2.2` — a connection to Hubject over OICP 2.2, a protocol family distinct from OCPI.\n* `Hubject OICP 2.3` — a connection to Hubject over OICP 2.3, a protocol family distinct from OCPI.\n* `hubject_ocpi` — a connection to Hubject Intercharge over OCPI.\n"
              },
              "endpoint": {
                "type": "string",
                "format": "url"
              },
              "ocpi": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "token": {
                    "type": "string"
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "protocol",
              "endpoint"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "roamingProvidersListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "role": {
                  "type": "string"
                },
                "hubjectId": {
                  "type": "string",
                  "nullable": true
                },
                "businessName": {
                  "type": "string",
                  "nullable": true
                },
                "platformId": {
                  "type": "integer"
                },
                "partnerId": {
                  "type": "integer",
                  "nullable": true
                },
                "countryCode": {
                  "type": "string",
                  "description": "The code provided during the token exchange process",
                  "nullable": true
                },
                "partyId": {
                  "type": "string",
                  "description": "ID of the Operator or Provider of roaming"
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "role",
                "lastUpdatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "roamingProviderCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "role": {
                "type": "string"
              },
              "hubjectId": {
                "type": "string",
                "nullable": true
              },
              "businessName": {
                "type": "string",
                "nullable": true
              },
              "platformId": {
                "type": "integer"
              },
              "partnerId": {
                "type": "integer",
                "nullable": true
              },
              "countryCode": {
                "type": "string",
                "description": "The code provided during the token exchange process",
                "nullable": true
              },
              "partyId": {
                "type": "string",
                "description": "ID of the Operator or Provider of roaming"
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "role",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "roamingProviderRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "role": {
                "type": "string"
              },
              "hubjectId": {
                "type": "string",
                "nullable": true
              },
              "businessName": {
                "type": "string",
                "nullable": true
              },
              "platformId": {
                "type": "integer"
              },
              "partnerId": {
                "type": "integer",
                "nullable": true
              },
              "countryCode": {
                "type": "string",
                "description": "The code provided during the token exchange process",
                "nullable": true
              },
              "partyId": {
                "type": "string",
                "description": "ID of the Operator or Provider of roaming"
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "role",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "roamingProviderDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "405": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "roamingProviderUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "role": {
                "type": "string"
              },
              "hubjectId": {
                "type": "string",
                "nullable": true
              },
              "businessName": {
                "type": "string",
                "nullable": true
              },
              "platformId": {
                "type": "integer"
              },
              "partnerId": {
                "type": "integer",
                "nullable": true
              },
              "countryCode": {
                "type": "string",
                "description": "The code provided during the token exchange process",
                "nullable": true
              },
              "partyId": {
                "type": "string",
                "description": "ID of the Operator or Provider of roaming"
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "role",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "roamingTariffsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "roamingIds": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "readOnly": true
                },
                "roamingTariffHumanReadable": {
                  "type": "string",
                  "readOnly": true,
                  "description": "This is the human readable roaming tariff as extracted from the tariff(s) shared by the CPO."
                },
                "rawRoamingTariffs": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  },
                  "readOnly": true,
                  "description": "The original roaming tariffs as provided by the CPO in the respective roaming protocol format."
                },
                "operatorId": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "The ID of the Roaming Operator that provided this tariff. This refers to the Roaming Operator resource, not the CPO Operator."
                },
                "tariffGroupId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The ID of the local Tariff Group assigned to the EVSEs with this roaming tariff(s)."
                },
                "cpoTariffGroupId": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "The ID of the CPO's Tariff Group associated with the internal roaming map. Only present for internal roaming tariff maps."
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "roamingTariffRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "roamingIds": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "readOnly": true
              },
              "roamingTariffHumanReadable": {
                "type": "string",
                "readOnly": true,
                "description": "This is the human readable roaming tariff as extracted from the tariff(s) shared by the CPO."
              },
              "rawRoamingTariffs": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "readOnly": true,
                "description": "The original roaming tariffs as provided by the CPO in the respective roaming protocol format."
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the Roaming Operator that provided this tariff. This refers to the Roaming Operator resource, not the CPO Operator."
              },
              "tariffGroupId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the local Tariff Group assigned to the EVSEs with this roaming tariff(s)."
              },
              "cpoTariffGroupId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the CPO's Tariff Group associated with the internal roaming map. Only present for internal roaming tariff maps."
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "roamingTariffUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "roamingIds": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "readOnly": true
              },
              "roamingTariffHumanReadable": {
                "type": "string",
                "readOnly": true,
                "description": "This is the human readable roaming tariff as extracted from the tariff(s) shared by the CPO."
              },
              "rawRoamingTariffs": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "readOnly": true,
                "description": "The original roaming tariffs as provided by the CPO in the respective roaming protocol format."
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the Roaming Operator that provided this tariff. This refers to the Roaming Operator resource, not the CPO Operator."
              },
              "tariffGroupId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the local Tariff Group assigned to the EVSEs with this roaming tariff(s)."
              },
              "cpoTariffGroupId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the CPO's Tariff Group associated with the internal roaming map. Only present for internal roaming tariff maps."
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "securityEventLogsListingDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "required": [
                "type",
                "timestamp"
              ],
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "chargePoint": {
                  "type": "integer",
                  "readOnly": true
                },
                "type": {
                  "type": "string",
                  "description": "Type of critical security events that are pushed from the Charge Point to the backend.",
                  "enum": [
                    "FirmwareUpdated",
                    "SettingSystemTime",
                    "StartupOfTheDevice",
                    "ResetOrReboot",
                    "SecurityLogWasCleared",
                    "MemoryExhaustion",
                    "TamperDetectionActivated"
                  ]
                },
                "techInfo": {
                  "type": "string",
                  "description": "Additional information about the security event."
                },
                "timestamp": {
                  "type": "string",
                  "description": "Time of day on which the event has occurred."
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "securityEventLogReadDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "type",
              "timestamp"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "chargePoint": {
                "type": "integer",
                "readOnly": true
              },
              "type": {
                "type": "string",
                "description": "Type of critical security events that are pushed from the Charge Point to the backend.",
                "enum": [
                  "FirmwareUpdated",
                  "SettingSystemTime",
                  "StartupOfTheDevice",
                  "ResetOrReboot",
                  "SecurityLogWasCleared",
                  "MemoryExhaustion",
                  "TamperDetectionActivated"
                ]
              },
              "techInfo": {
                "type": "string",
                "description": "Additional information about the security event."
              },
              "timestamp": {
                "type": "string",
                "description": "Time of day on which the event has occurred."
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "securityEventsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "required": [
                "type",
                "timestamp"
              ],
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "chargePoint": {
                  "type": "integer",
                  "readOnly": true
                },
                "type": {
                  "type": "string",
                  "description": "Type of critical security events that are pushed from the Charge Point to the backend.",
                  "enum": [
                    "FirmwareUpdated",
                    "SettingSystemTime",
                    "StartupOfTheDevice",
                    "ResetOrReboot",
                    "SecurityLogWasCleared",
                    "MemoryExhaustion",
                    "TamperDetectionActivated"
                  ]
                },
                "techInfo": {
                  "type": "string",
                  "description": "Additional information about the security event."
                },
                "timestamp": {
                  "type": "string",
                  "description": "Time of day on which the event has occurred."
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "securityEventRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "type",
              "timestamp"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "chargePoint": {
                "type": "integer",
                "readOnly": true
              },
              "type": {
                "type": "string",
                "description": "Type of critical security events that are pushed from the Charge Point to the backend.",
                "enum": [
                  "FirmwareUpdated",
                  "SettingSystemTime",
                  "StartupOfTheDevice",
                  "ResetOrReboot",
                  "SecurityLogWasCleared",
                  "MemoryExhaustion",
                  "TamperDetectionActivated"
                ]
              },
              "techInfo": {
                "type": "string",
                "description": "Additional information about the security event."
              },
              "timestamp": {
                "type": "string",
                "description": "Time of day on which the event has occurred."
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "sessionsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Charging session",
              "properties": {
                "id": {
                  "type": "string"
                },
                "operatorId": {
                  "type": "integer",
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "chargePointId": {
                  "type": "integer"
                },
                "evseId": {
                  "type": "integer"
                },
                "connectorId": {
                  "type": "integer",
                  "nullable": true
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "unknown",
                    "pending",
                    "active",
                    "finished",
                    "failed",
                    "expired"
                  ],
                  "description": "Charging session status:\n- **unknown**: Session status could not be determined\n- **pending**: Session is pending and has not started yet\n- **active**: Session is currently in progress\n- **finished**: Session has completed successfully\n- **failed**: Session has failed\n- **expired**: Session has expired\n",
                  "example": "finished"
                },
                "reason": {
                  "type": "string",
                  "enum": [
                    "working_hours_exceeded",
                    "timeout",
                    "authorization_amount_reached",
                    "new_start_transaction_received",
                    "force_stop",
                    "standard_stop",
                    "energy_exceeded",
                    "schedule_completed",
                    "pre_authorization_failed",
                    "system_force_stop",
                    "time_limit",
                    "balance_exceeded",
                    "deauthorized",
                    "emergencystop",
                    "energylimitreached",
                    "evdisconnected",
                    "groundfault",
                    "immediatereset",
                    "hardreset",
                    "local",
                    "localoutofcredit",
                    "masterpass",
                    "other",
                    "plug_and_charge",
                    "overcurrentfault",
                    "powerloss",
                    "powerquality",
                    "reboot",
                    "remote",
                    "soclimitreached",
                    "stoppedbyev",
                    "timeoutlimitreached",
                    "softreset",
                    "unlockcommand",
                    "no_ev_parked",
                    "no_ev_connected",
                    "charge_point_timeout",
                    "charging_on_evse_not_allowed",
                    "remote_start_failed",
                    "no_user_for_agile_streets",
                    "rejected",
                    "canceled_reservation",
                    "evse_occupied",
                    "evse_inoperative",
                    "failed",
                    "not_supported",
                    "unknown_reservation",
                    "ev_not_connected_to_evse",
                    "authorization_failed",
                    "unknown_session"
                  ],
                  "description": "The reason why the session expired or has been stopped."
                },
                "userId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The id of the user that started the session"
                },
                "vehicleId": {
                  "type": "integer",
                  "description": "ID of the vehicle associated with the session."
                },
                "bookingId": {
                  "type": "integer",
                  "description": "The ID of the linked booking (if any)"
                },
                "startedAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "startedOffline": {
                  "type": "boolean",
                  "description": "Indicates whether the session was started while the charge point was offline."
                },
                "stoppedAt": {
                  "type": "string",
                  "format": "date-time",
                  "nullable": true
                },
                "energy": {
                  "deprecated": true,
                  "type": "number",
                  "description": "Delivered energy in Wh"
                },
                "powerKw": {
                  "deprecated": true,
                  "type": "number",
                  "description": "This field representing the current charging speed in kilowatts is deprecated. Use the `power.latest` property instead for charging power information."
                },
                "socPercent": {
                  "type": "number",
                  "description": "State of charge (in %). Optional."
                },
                "amount": {
                  "type": "number",
                  "format": "decimal",
                  "nullable": true,
                  "deprecated": true
                },
                "totalAmount": {
                  "type": "object",
                  "nullable": true,
                  "properties": {
                    "withTax": {
                      "type": "number"
                    },
                    "withoutTax": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "withTax"
                  ]
                },
                "corporateBilling": {
                  "type": "object",
                  "description": "Corporate billing breakdown for the session. This object and the related corporate-billing fields are part of the experimental corporate-billing feature surface. While that feature is experimental, these fields may change in place without a version bump. Consumers should treat these fields as evaluation-only unless coordinated with their account manager.\n",
                  "properties": {
                    "policySnapshotId": {
                      "type": "integer",
                      "description": "Corporate billing policy snapshot used for the session."
                    },
                    "chargerType": {
                      "type": "string",
                      "enum": [
                        "ac",
                        "dc"
                      ],
                      "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
                    },
                    "chargerTypeCoverageType": {
                      "type": "string",
                      "enum": [
                        "full_coverage",
                        "limited_coverage",
                        "not_covered"
                      ],
                      "description": "Charger type coverage type:\n- **full_coverage**: The policy covers eligible costs for this charger type without tariff thresholds\n- **limited_coverage**: The policy covers eligible costs for this charger type only within configured limits\n- **not_covered**: The policy does not cover sessions on this charger type\n"
                    },
                    "corporateAmount": {
                      "description": "Tax-aware amount billed to the corporate coverage order, with gross and net totals from the order.",
                      "type": "object",
                      "properties": {
                        "withTax": {
                          "type": "number"
                        },
                        "withoutTax": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "withTax"
                      ]
                    },
                    "driverAmount": {
                      "description": "Tax-aware amount billed to the EV driver's excess order, with gross and net totals from the order.",
                      "type": "object",
                      "properties": {
                        "withTax": {
                          "type": "number"
                        },
                        "withoutTax": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "withTax"
                      ]
                    },
                    "blendedCostPerKwh": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Session's computed blended cost per kWh."
                    },
                    "isOverallCostCapApplied": {
                      "type": "boolean",
                      "description": "Whether the policy's overall cost-per-kWh cap reduced coverage."
                    },
                    "restrictionCause": {
                      "description": "Corporate billing restriction dimension that withheld coverage for the session:\n- **partner**: A partner restriction prevented corporate billing from covering the session\n- **country**: A country restriction prevented corporate billing from covering the session\n- **location**: A location restriction prevented corporate billing from covering the session\n- **location_tag**: A location tag restriction prevented corporate billing from covering the session\n- **roaming**: A roaming restriction prevented corporate billing from covering the session\n",
                      "type": "string",
                      "enum": [
                        "partner",
                        "country",
                        "location",
                        "location_tag",
                        "roaming"
                      ]
                    },
                    "breakdown": {
                      "type": "array",
                      "description": "Per-component tax-aware amounts for public corporate billing component types only: energy, idle_time, connection, and charging_time. The corporateAmount and driverAmount fields are gross and net totals sourced from matching corporate coverage and EV driver excess order items. Other persisted fee types, such as min_price, are not included, so this breakdown can be partial and may not sum to the order-level corporateAmount and driverAmount totals.\n",
                      "items": {
                        "type": "object",
                        "description": "Per-component tax-aware corporate billing amounts for one supported public corporate billing component type.",
                        "properties": {
                          "componentType": {
                            "type": "string",
                            "enum": [
                              "energy",
                              "idle_time",
                              "connection",
                              "charging_time"
                            ],
                            "description": "Corporate billing tariff component type:\n- **energy**: Energy charges based on consumed kWh\n- **idle_time**: Idle-time charges after charging has stopped or exceeded the configured idle threshold\n- **connection**: Connection charges for starting or maintaining the session connection\n- **charging_time**: Charging-time charges based on the active charging duration\n"
                          },
                          "corporateAmount": {
                            "description": "Tax-aware component amount billed to the corporate coverage order, with gross and net totals from matching order items.",
                            "type": "object",
                            "properties": {
                              "withTax": {
                                "type": "number"
                              },
                              "withoutTax": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "withTax"
                            ]
                          },
                          "driverAmount": {
                            "description": "Tax-aware component amount billed to the EV driver's excess order, with gross and net totals from matching order items.",
                            "type": "object",
                            "properties": {
                              "withTax": {
                                "type": "number"
                              },
                              "withoutTax": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "withTax"
                            ]
                          }
                        },
                        "required": [
                          "componentType",
                          "corporateAmount",
                          "driverAmount"
                        ]
                      }
                    }
                  },
                  "required": [
                    "policySnapshotId"
                  ]
                },
                "discounts": {
                  "type": "array",
                  "description": "Per-type discount breakdown for the session, aggregated across all price-breakdown rows. Omitted when no discount data is available.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "subsidy",
                          "corporate"
                        ],
                        "description": "Type of an individual discount entry.\n- **subsidy**: energy-fee subsidy when the unit price exceeds a configured threshold.\n- **corporate**: percentage discount tied to a corporate billing arrangement.\n",
                        "example": "subsidy"
                      },
                      "amount": {
                        "type": "object",
                        "properties": {
                          "withTax": {
                            "type": "number"
                          },
                          "withoutTax": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "withTax"
                        ]
                      }
                    },
                    "required": [
                      "type",
                      "amount"
                    ]
                  }
                },
                "tax": {
                  "type": "object",
                  "nullable": true,
                  "deprecated": true,
                  "properties": {
                    "taxId": {
                      "type": "integer"
                    },
                    "taxPercentage": {
                      "type": "number",
                      "format": "decimal"
                    }
                  }
                },
                "currency": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 3,
                  "description": "The ISO 4217 3-letter code of the currency"
                },
                "paymentType": {
                  "type": "string",
                  "enum": [
                    "tokenized",
                    "subscription",
                    "balance",
                    "corporate",
                    "terminal",
                    "bank_transfer"
                  ]
                },
                "paymentMethodId": {
                  "type": "string",
                  "description": "The ID of the payment method. Mind that this is actually a string. It can be, for example `corporate:1234` - for corporate billing, or `balance`, or `subscription` - when the session is to be paid with the user's post-paid subscription.",
                  "nullable": true
                },
                "terminalId": {
                  "type": "integer",
                  "description": "The ID of the payment terminal when such is used.",
                  "nullable": true
                },
                "nonBillableEnergy": {
                  "type": "number",
                  "description": "The energy that is included as an allowance for pre-paid and post subscriptions."
                },
                "paymentStatus": {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    "pending",
                    "paid",
                    "partially",
                    "failed",
                    null
                  ]
                },
                "authorizationId": {
                  "nullable": true,
                  "type": "integer"
                },
                "idTag": {
                  "type": "string",
                  "description": "The idTag defines the authentication source for the session (RFID identifier or remote start identifier)\nA remote start identifier has the format `*XXXXXXX` where the `XXXXXXX` is the session id padded with `0`s on the left\n"
                },
                "idTagLabel": {
                  "type": "string",
                  "description": "Additional information about the idTag that differs depending on the type of the idTag or could be something else, related to the car or the user."
                },
                "idTagType": {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    "rfid",
                    "emaid",
                    "mac_address"
                  ],
                  "description": "The type of identifier used for authentication. Returns 'rfid' for standard RFID card identifiers, 'emaid' for E-Mobility Account Identifiers used by ISO15118 Plug&Charge, or 'mac_address' for MAC addresses used by Autocharge."
                },
                "extendingSessionId": {
                  "deprecated": true,
                  "type": "integer",
                  "nullable": true,
                  "description": "When a session is finished (because connectivity was lost for a long time) and more data is received, the\nadditional data is stored in an extending session. If this property is set, then this is an extending session.\n"
                },
                "originalSessionId": {
                  "type": "integer",
                  "description": "ID of the session that the current session is extending."
                },
                "extendedBySessionId": {
                  "type": "integer",
                  "description": "ID of the session that extends this session."
                },
                "reimbursementEligibility": {
                  "type": "boolean"
                },
                "externalSessionId": {
                  "deprecated": true,
                  "nullable": true,
                  "type": "string",
                  "description": "Deprecated: Use `idTag` field instead. This field will be removed in a future version.\nPreviously used for admin-started sessions, this value is now available in the `idTag` field.\n"
                },
                "authorization": {
                  "type": "object",
                  "description": "Session authorization.\n\nEmbedded as the `authorization` property in Session responses when the `withAuthorization` parameter\nis enabled, and always embedded in session webhook notifications for sessions that have an\nauthorization.\n",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "operatorId": {
                      "type": "integer",
                      "nullable": true,
                      "description": "The ID of the operator this resource belongs to",
                      "example": 1
                    },
                    "method": {
                      "description": "The method used to authorize the charging session.\n- `user_device` - Authorization via mobile app or web portal\n- `rfid_tag` - Authorization via physical RFID card\n- `mac_address` - Authorization via vehicle MAC address (AutoCharge)\n- `admin` - Manual authorization by admin user\n- `plug_and_charge` - Authorization via Plug & Charge\n- `plug_and_charge_iso15118` - Authorization via ISO 15118 Plug & Charge\n- `payment_terminal` - Authorization via payment terminal\n- `mobile_app` - Authorization received from a roaming platform via OCPI\n",
                      "type": "string",
                      "enum": [
                        "user_device",
                        "rfid_tag",
                        "mac_address",
                        "admin",
                        "plug_and_charge",
                        "plug_and_charge_iso15118",
                        "payment_terminal",
                        "mobile_app"
                      ]
                    },
                    "source": {
                      "description": "The origin of the authorization request.\n- `local` - Authorization initiated directly on this platform\n- `roaming` - Authorization received from a roaming platform (OCPI/Hubject). OCPI authorizations report the method as `mobile_app`.\n- `third_party` - Authorization initiated by a third-party authority\n",
                      "type": "string",
                      "enum": [
                        "local",
                        "roaming",
                        "third_party"
                      ]
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "createdAtLocal": {
                      "type": "string",
                      "format": "date-time",
                      "description": "The creation time in the local time zone of the charge point, falling back to the operator's default time zone."
                    },
                    "status": {
                      "description": "The status of the authorization request.\n- `accepted` - Authorization was approved and the user can start charging\n- `rejected` - Authorization was denied and the user cannot charge\n- `pending` - Authorization is awaiting approval or validation\n",
                      "type": "string",
                      "enum": [
                        "accepted",
                        "rejected",
                        "pending"
                      ]
                    },
                    "rejectionReason": {
                      "type": "string",
                      "nullable": true,
                      "description": "The reason for rejecting the authorization. `null` unless status is `rejected`."
                    },
                    "userId": {
                      "type": "integer",
                      "nullable": true,
                      "description": "The user that is authorized. `null` when the authorization is not linked to a local user."
                    },
                    "rfidTagUid": {
                      "type": "string",
                      "nullable": true,
                      "description": "The UID of the identification tag that created the authorization. Only populated when source is\n`local` or `third_party`; `null` for roaming authorizations, whose token details are in the `roaming`\nobject.\n"
                    },
                    "roaming": {
                      "description": "In case source is `roaming`, this object describes the EMSP that gave the authorization",
                      "type": "object",
                      "properties": {
                        "platformId": {
                          "description": "The roaming platform ID that gave the authorization",
                          "type": "integer"
                        },
                        "platformRoleId": {
                          "description": "The role that gave the authorization (the EMSP)",
                          "type": "integer"
                        },
                        "platformRole": {
                          "description": "The role identifier",
                          "type": "string"
                        },
                        "reference": {
                          "description": "OCPI's authorization_reference, or Hubject's SessionID",
                          "type": "string"
                        },
                        "client": {
                          "description": "OCPI's contractId, or Hubject's EVCO ID",
                          "type": "string"
                        },
                        "uid": {
                          "description": "OCPI's token UID, as recorded at the moment the authorization was created. Absent for Hubject\nauthorizations and for authorizations created before the identifiers were recorded.\n",
                          "type": "string"
                        },
                        "visualNumber": {
                          "description": "OCPI's token visual_number, as recorded at the moment the authorization was created. Absent for\nHubject authorizations, for authorizations created before the identifiers were recorded, and when\nthe roaming platform did not provide a visual number.\n",
                          "type": "string"
                        }
                      },
                      "required": [
                        "platformId",
                        "platformRoleId",
                        "platformRole",
                        "reference",
                        "client"
                      ]
                    },
                    "lastUpdatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO 8601 formatted date",
                      "readOnly": true
                    }
                  },
                  "required": [
                    "id",
                    "method",
                    "source",
                    "createdAt",
                    "status",
                    "rejectionReason",
                    "userId",
                    "rfidTagUid",
                    "lastUpdatedAt"
                  ]
                },
                "chargingPeriods": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "description": "Describes a period in the session that is billed separately, for example charging@night (for time of day tariffs) or idle (for tariffs that charge separately idle time)",
                    "properties": {
                      "id": {
                        "type": "integer"
                      },
                      "energy": {
                        "type": "integer",
                        "description": "Delivered energy in Wh"
                      },
                      "energyPrecise": {
                        "type": "number",
                        "nullable": true,
                        "description": "Delivered energy in Wh with decimal precision"
                      },
                      "startedAt": {
                        "type": "string",
                        "format": "date-time"
                      },
                      "stoppedAt": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                      },
                      "state": {
                        "deprecated": true,
                        "type": "string",
                        "example": [
                          "charging",
                          "charging@night",
                          "charging@day",
                          "idle",
                          "idle@day",
                          "idle@night",
                          "charging@boosted",
                          "charging@optimised"
                        ],
                        "description": "The state of the period. A non exhaustive list of possible values:\n  * `charging` - the vehicle was charging\n  * `charging@night` - a ToD tariff was selected and the vehicle was charging during the nighttime period of the tariff\n  * `charging@day` - a ToD tariff was selected and the vehicle was charging during the daytime period of the tariff\n  * `idle` - a tariff with separate pricing for idle time was selected and the charging was idle in that period\n  * `idle@night` - a ToD tariff was selected and the vehicle was idling during the nighttime period of the tariff\n  * `idle@day` - a ToD tariff was selected and the vehicle was idling during the daytime period of the tariff\n  * `charging@boosted` - Optimised dynamic pricing was applied and charging was performed with full available power\n  * `charging@optimised` - Optimised dynamic pricing was applied and charging was performed with lower price and limited power during peak hours\n"
                      },
                      "chargingState": {
                        "type": "string",
                        "enum": [
                          "charging",
                          "idle"
                        ],
                        "description": "The charging state of the period."
                      },
                      "graceTimeEndAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "When the idle fee grace period expires for this charging period. Present only on idle charging periods that have a grace period configured."
                      },
                      "pricingDetails": {
                        "description": "Optional pricing details specific to this charging period, dependent on the tariff.",
                        "type": "object",
                        "properties": {
                          "chargingType": {
                            "type": "string",
                            "enum": [
                              "boosted",
                              "optimised"
                            ],
                            "nullable": true,
                            "description": "Power delivery strategy used during this period.\n  * `boosted` - maximum available power delivery\n  * `optimised` - reduced power during peak hours for cost efficiency\n"
                          },
                          "dayPeriod": {
                            "type": "string",
                            "nullable": true,
                            "enum": [
                              "day",
                              "night"
                            ],
                            "description": "The period of the day.\n  * `day` - daytime period of the tariff\n  * `night` - nighttime period of the tariff\n"
                          },
                          "pricingMethod": {
                            "type": "string",
                            "nullable": true,
                            "enum": [
                              "duration",
                              "energy",
                              "durationAndEnergy",
                              "free"
                            ],
                            "description": "The method used for calculating price in standard tariffs.\n  * `duration` - pricing based on duration\n  * `energy` - pricing based on energy consumption\n  * `durationAndEnergy` - pricing based on both duration and energy\n  * `free` - free period with no charge\n"
                          },
                          "price": {
                            "type": "number",
                            "format": "decimal",
                            "description": "Base price rate for Energy Time of Usage tariffs"
                          },
                          "markup": {
                            "type": "number",
                            "format": "decimal",
                            "description": "Additional percentage or fixed amount added to the base price"
                          },
                          "initialEnergyPrice": {
                            "type": "number",
                            "format": "decimal",
                            "description": "Starting price rate for energy-based charging"
                          },
                          "initialDurationPrice": {
                            "type": "number",
                            "format": "decimal",
                            "description": "Starting price rate for time-based charging"
                          },
                          "startHour": {
                            "type": "string",
                            "description": "The start hour for the charging period"
                          },
                          "endHour": {
                            "type": "string",
                            "description": "The end hour for the charging period"
                          },
                          "day": {
                            "type": "string",
                            "description": "The day being used"
                          }
                        }
                      },
                      "amount": {
                        "type": "number",
                        "format": "decimal",
                        "nullable": true,
                        "deprecated": true
                      },
                      "totalAmount": {
                        "type": "object",
                        "properties": {
                          "withTax": {
                            "type": "number"
                          },
                          "withoutTax": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "withTax"
                        ]
                      },
                      "priceBreakdown": {
                        "type": "array",
                        "items": {
                          "description": "Charging period price breakdown",
                          "$ref": "#/components/schemas/Session"
                        },
                        "description": "A breakdown of the different tariff elements that create the total amount of the charging period. Only sent when `withChargingPeriodsPriceBreakdown` is set to `true`. The priceBreakdown will be displayed only when the Billing status of the session is marked as completed."
                      }
                    },
                    "required": [
                      "id",
                      "energy",
                      "startedAt",
                      "state"
                    ]
                  }
                },
                "priceBreakdown": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "flat",
                          "connection",
                          "energy",
                          "charging_time",
                          "idle_time",
                          "power_levels_time",
                          "min_price",
                          "service_fee",
                          "energy_flat_fee",
                          "duration_flat_fee",
                          "idle_flat_fee"
                        ],
                        "description": "* `flat` - no matter the duration or energy consumed each session would cost one and the same amount,\n* `connection` - a fixed fee that is applied at the start of the charging session,\n* `energy` - the cost for the consumed energy,\n* `charging_time` - the cost for the duration of the session when there is ongoing charging,\n* `idle_time` - the cost for the time when there is no active charging but there is an ongoing session,\n* `power_levels_time` - the cost for peak and average power levels,\n* `min_price` - the minimum price a session should cost, anything below that price is rounded up to the minimum price,\n* `service_fee` - the cost for the mark up,\n* `energy_flat_fee` - a fixed fee applied per energy component,\n* `duration_flat_fee` - a fixed fee applied per duration component,\n* `idle_flat_fee` - a fixed fee applied per idle component.\n"
                      },
                      "currency": {
                        "type": "string",
                        "example": "EUR",
                        "minLength": 3,
                        "maxLength": 3,
                        "description": "3-letter currency code (ISO 4217)"
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "kwh",
                          "minute",
                          "session"
                        ],
                        "description": "The measure that is used for the type element."
                      },
                      "pricePerUnit": {
                        "description": "The price of a single unit of the tariff element.",
                        "type": "object",
                        "properties": {
                          "withTax": {
                            "type": "number"
                          },
                          "withoutTax": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "withTax"
                        ]
                      },
                      "quantity": {
                        "type": "number",
                        "format": "decimal",
                        "description": "The number of units."
                      },
                      "price": {
                        "description": "The `pricePerUnit` multiplied by the `quantity`.",
                        "type": "object",
                        "properties": {
                          "withTax": {
                            "type": "number"
                          },
                          "withoutTax": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "withTax"
                        ]
                      },
                      "taxPercentage": {
                        "type": "number",
                        "nullable": true,
                        "format": "decimal",
                        "description": "The tax rate percentage applied to this tariff element."
                      },
                      "totalPrice": {
                        "type": "number",
                        "format": "decimal",
                        "description": "The `unitPrice` multiplied by the `quantity`.",
                        "deprecated": true
                      },
                      "unitPrice": {
                        "type": "number",
                        "format": "decimal",
                        "description": "The price of a single unit of the tariff element.",
                        "deprecated": true
                      },
                      "discounts": {
                        "type": "array",
                        "description": "Per-type discount breakdown for this row. Omitted when no discount data is available.\n",
                        "items": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "subsidy",
                                "corporate"
                              ],
                              "description": "Type of an individual discount entry.\n- **subsidy**: energy-fee subsidy when the unit price exceeds a configured threshold.\n- **corporate**: percentage discount tied to a corporate billing arrangement.\n",
                              "example": "subsidy"
                            },
                            "amount": {
                              "type": "object",
                              "properties": {
                                "withTax": {
                                  "type": "number"
                                },
                                "withoutTax": {
                                  "type": "number"
                                }
                              },
                              "required": [
                                "withTax"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "amount"
                          ]
                        }
                      }
                    },
                    "required": [
                      "type",
                      "currency",
                      "price",
                      "quantity",
                      "pricePerUnit",
                      "unit",
                      "totalPrice",
                      "unitPrice"
                    ]
                  },
                  "description": "A breakdown of the different tariff elements that create the total amount of the charging session. Only sent when `session_with_price_breakdown` is set to `true`. The priceBreakdown will be displayed only when the Billing status of the session is marked as completed."
                },
                "tariffSnapshotId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "At the start of the charging session the tariff will be snapshotted and that snapshot will not be changed ever. That snapshot is used to determine the price of the charging session. This is the ID of that snapshot.\n"
                },
                "electricityCost": {
                  "type": "number",
                  "format": "decimal",
                  "nullable": true
                },
                "evsePhysicalReference": {
                  "type": "string",
                  "description": "This could be either the identifier that is presented to the user, so they can identify the EVSE at the location. Or for roaming EVSEs - it is the roaming evse_id.\n",
                  "nullable": true
                },
                "paymentStatusUpdatedAt": {
                  "type": "string",
                  "nullable": true,
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "chargePointOperatorRoamingId": {
                  "type": "string",
                  "description": "The roaming operator identifier (e.g., \"DE*ENA\", \"LT*IGN\") of the operator who owns the charge point where the session occurred. Only returned for roaming sessions."
                },
                "roaming": {
                  "type": "object",
                  "properties": {
                    "cdrIds": {
                      "type": "array",
                      "description": "The CDRs that are generated for roaming sessions.",
                      "items": {
                        "type": "integer"
                      }
                    },
                    "sessionId": {
                      "type": "string",
                      "description": "The unique id that identifies the charging session in the CPO platform."
                    },
                    "roamingOperatorCpoId": {
                      "type": "integer",
                      "description": "The id of the roaming operator that owns the charge point at which the session occurred."
                    },
                    "cpoLastUpdatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "Applicable only for OCPI sessions and populated with the most recent shared `last_updated` value from the CPO roaming operator. ISO 8601 formatted date",
                      "readOnly": true
                    }
                  }
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "randomisedDelay": {
                  "type": "integer",
                  "description": "Number of seconds by which current offering is being delayed at the start of the session. The field is omitted when randomised delay is not enabled in the Personal Charging settings or when there is no randomised delay."
                },
                "receiptId": {
                  "deprecated": true,
                  "type": "integer",
                  "nullable": true
                },
                "externalAppData": {
                  "description": "Used to hold any external application data related to the session.",
                  "type": "object",
                  "nullable": true,
                  "additionalProperties": true
                },
                "clockAlignedEnergyConsumption": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "description": "Session Clock aligned consumption period",
                    "properties": {
                      "start": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The beginning of the clock-aligned consumption period."
                      },
                      "end": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The end of the clock-aligned consumption period."
                      },
                      "energyConsumed": {
                        "deprecated": true,
                        "type": "integer",
                        "description": "The amount of total consumed energy(Wh) during the clock-aligned consumption period."
                      },
                      "energyConsumption": {
                        "type": "object",
                        "properties": {
                          "total": {
                            "type": "number",
                            "description": "The amount of total consumed energy (Wh) during the clock-aligned consumption period."
                          },
                          "local": {
                            "type": "number",
                            "description": "The amount of consumed renewable energy (Wh) generated by individual source for the specified clock-aligned consumption period."
                          },
                          "grid": {
                            "type": "number",
                            "description": "The amount of consumed energy (Wh) delivered from the grid for the specified clock-aligned consumption period."
                          }
                        },
                        "required": [
                          "total",
                          "grid"
                        ]
                      },
                      "totalCost": {
                        "type": "object",
                        "description": "The total cost of energy consumption during the clock-aligned period.",
                        "properties": {
                          "withTax": {
                            "type": "number",
                            "description": "Total cost including tax."
                          },
                          "withoutTax": {
                            "type": "number",
                            "description": "Total cost excluding tax."
                          }
                        },
                        "required": [
                          "withTax"
                        ]
                      }
                    },
                    "required": [
                      "start",
                      "end",
                      "energyConsumed",
                      "energyConsumption"
                    ]
                  },
                  "description": "Energy consumption during time intervals (15, 30 or 60 minutes) in the charging session. The start of the first interval is the start of the session then the intervals are defined by the exact minute of the hour. Clock-aligned consumption periods are included in the response only when the query param 'withClockAlignedEnergyConsumption' is set to 'true'."
                },
                "energyConsumption": {
                  "type": "object",
                  "properties": {
                    "total": {
                      "type": "number",
                      "description": "Delivered energy (Wh)"
                    },
                    "local": {
                      "type": "number",
                      "description": "The amount of consumed renewable energy (Wh) generated by individual source for all clock-aligned consumption periods in the charging session."
                    },
                    "grid": {
                      "type": "number",
                      "description": "The amount of consumed energy (Wh) delivered from the grid for all clock-aligned consumption periods in the charging session."
                    }
                  },
                  "required": [
                    "total",
                    "grid"
                  ]
                },
                "estimatedSavings": {
                  "type": "number",
                  "description": "The sum of savings that could be achieved if the consumed energy was not locally generated but delivered from the grid for all clock-aligned consumption periods in the charging session."
                },
                "billingStatus": {
                  "type": "string",
                  "description": "The status of the billing process for the session.",
                  "nullable": true,
                  "enum": [
                    "pending",
                    "suspended",
                    "completed",
                    null
                  ]
                },
                "billingCompletedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The timestamp when session billing was completed. Only present when billing has completed, omitted otherwise."
                },
                "power": {
                  "type": "object",
                  "properties": {
                    "latest": {
                      "type": "number",
                      "nullable": true,
                      "description": "The current charging power (in watts)"
                    },
                    "peak": {
                      "type": "number",
                      "nullable": true,
                      "description": "The maximum charging power (in watts) reached during the session"
                    },
                    "average": {
                      "type": "number",
                      "nullable": true,
                      "description": "The average charging power (in watts) maintained during the session"
                    },
                    "offered": {
                      "type": "number",
                      "nullable": true,
                      "description": "The power offered by the EVSE to the vehicle (in watts)"
                    }
                  }
                },
                "preAuthorizedAmount": {
                  "type": "number",
                  "description": "The total amount currently held (authorized) on the user's payment method for this session, in the session's currency.\nOmitted when no active pre-authorization exists for this session (billing strategy does not use pre-authorization, authorization not yet placed, or already captured/voided at session end).\nPresent and greater than 0 when an authorization is held. For incremental sessions this is the sum of the initial authorization and all successful increments; for non-incremental sessions this is the initial authorized amount.\n"
                },
                "incrementalPreAuthorizationEnabled": {
                  "type": "boolean",
                  "description": "Whether incremental pre-authorizations are active for this session.\n`true` when all preconditions are met: feature flag enabled, incremental pre-authorizations enabled in settings, billing strategy supports pre-authorization, and the session has an active pre-authorization with a PSP that supports incremental authorization.\n`false` in all other cases, including sessions without pre-authorization and completed sessions.\n"
                },
                "customFields": {
                  "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the session are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                  "type": "object",
                  "additionalProperties": true
                }
              },
              "required": [
                "id",
                "operatorId",
                "status",
                "userId",
                "authorizationId",
                "energy",
                "energyConsumption",
                "chargePointId",
                "evseId",
                "startedAt",
                "billingStatus",
                "incrementalPreAuthorizationEnabled"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "sessionRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Charging session",
            "properties": {
              "id": {
                "type": "string"
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "chargePointId": {
                "type": "integer"
              },
              "evseId": {
                "type": "integer"
              },
              "connectorId": {
                "type": "integer",
                "nullable": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "unknown",
                  "pending",
                  "active",
                  "finished",
                  "failed",
                  "expired"
                ],
                "description": "Charging session status:\n- **unknown**: Session status could not be determined\n- **pending**: Session is pending and has not started yet\n- **active**: Session is currently in progress\n- **finished**: Session has completed successfully\n- **failed**: Session has failed\n- **expired**: Session has expired\n",
                "example": "finished"
              },
              "reason": {
                "type": "string",
                "enum": [
                  "working_hours_exceeded",
                  "timeout",
                  "authorization_amount_reached",
                  "new_start_transaction_received",
                  "force_stop",
                  "standard_stop",
                  "energy_exceeded",
                  "schedule_completed",
                  "pre_authorization_failed",
                  "system_force_stop",
                  "time_limit",
                  "balance_exceeded",
                  "deauthorized",
                  "emergencystop",
                  "energylimitreached",
                  "evdisconnected",
                  "groundfault",
                  "immediatereset",
                  "hardreset",
                  "local",
                  "localoutofcredit",
                  "masterpass",
                  "other",
                  "plug_and_charge",
                  "overcurrentfault",
                  "powerloss",
                  "powerquality",
                  "reboot",
                  "remote",
                  "soclimitreached",
                  "stoppedbyev",
                  "timeoutlimitreached",
                  "softreset",
                  "unlockcommand",
                  "no_ev_parked",
                  "no_ev_connected",
                  "charge_point_timeout",
                  "charging_on_evse_not_allowed",
                  "remote_start_failed",
                  "no_user_for_agile_streets",
                  "rejected",
                  "canceled_reservation",
                  "evse_occupied",
                  "evse_inoperative",
                  "failed",
                  "not_supported",
                  "unknown_reservation",
                  "ev_not_connected_to_evse",
                  "authorization_failed",
                  "unknown_session"
                ],
                "description": "The reason why the session expired or has been stopped."
              },
              "userId": {
                "type": "integer",
                "nullable": true,
                "description": "The id of the user that started the session"
              },
              "vehicleId": {
                "type": "integer",
                "description": "ID of the vehicle associated with the session."
              },
              "bookingId": {
                "type": "integer",
                "description": "The ID of the linked booking (if any)"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time"
              },
              "startedOffline": {
                "type": "boolean",
                "description": "Indicates whether the session was started while the charge point was offline."
              },
              "stoppedAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "energy": {
                "deprecated": true,
                "type": "number",
                "description": "Delivered energy in Wh"
              },
              "powerKw": {
                "deprecated": true,
                "type": "number",
                "description": "This field representing the current charging speed in kilowatts is deprecated. Use the `power.latest` property instead for charging power information."
              },
              "socPercent": {
                "type": "number",
                "description": "State of charge (in %). Optional."
              },
              "amount": {
                "type": "number",
                "format": "decimal",
                "nullable": true,
                "deprecated": true
              },
              "totalAmount": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "withTax": {
                    "type": "number"
                  },
                  "withoutTax": {
                    "type": "number"
                  }
                },
                "required": [
                  "withTax"
                ]
              },
              "corporateBilling": {
                "type": "object",
                "description": "Corporate billing breakdown for the session. This object and the related corporate-billing fields are part of the experimental corporate-billing feature surface. While that feature is experimental, these fields may change in place without a version bump. Consumers should treat these fields as evaluation-only unless coordinated with their account manager.\n",
                "properties": {
                  "policySnapshotId": {
                    "type": "integer",
                    "description": "Corporate billing policy snapshot used for the session."
                  },
                  "chargerType": {
                    "type": "string",
                    "enum": [
                      "ac",
                      "dc"
                    ],
                    "description": "Type of current available on the EVSE:\n- **ac**: Alternating Current (AC) charging\n- **dc**: Direct Current (DC) fast charging\n"
                  },
                  "chargerTypeCoverageType": {
                    "type": "string",
                    "enum": [
                      "full_coverage",
                      "limited_coverage",
                      "not_covered"
                    ],
                    "description": "Charger type coverage type:\n- **full_coverage**: The policy covers eligible costs for this charger type without tariff thresholds\n- **limited_coverage**: The policy covers eligible costs for this charger type only within configured limits\n- **not_covered**: The policy does not cover sessions on this charger type\n"
                  },
                  "corporateAmount": {
                    "description": "Tax-aware amount billed to the corporate coverage order, with gross and net totals from the order.",
                    "type": "object",
                    "properties": {
                      "withTax": {
                        "type": "number"
                      },
                      "withoutTax": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "withTax"
                    ]
                  },
                  "driverAmount": {
                    "description": "Tax-aware amount billed to the EV driver's excess order, with gross and net totals from the order.",
                    "type": "object",
                    "properties": {
                      "withTax": {
                        "type": "number"
                      },
                      "withoutTax": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "withTax"
                    ]
                  },
                  "blendedCostPerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Session's computed blended cost per kWh."
                  },
                  "isOverallCostCapApplied": {
                    "type": "boolean",
                    "description": "Whether the policy's overall cost-per-kWh cap reduced coverage."
                  },
                  "restrictionCause": {
                    "description": "Corporate billing restriction dimension that withheld coverage for the session:\n- **partner**: A partner restriction prevented corporate billing from covering the session\n- **country**: A country restriction prevented corporate billing from covering the session\n- **location**: A location restriction prevented corporate billing from covering the session\n- **location_tag**: A location tag restriction prevented corporate billing from covering the session\n- **roaming**: A roaming restriction prevented corporate billing from covering the session\n",
                    "type": "string",
                    "enum": [
                      "partner",
                      "country",
                      "location",
                      "location_tag",
                      "roaming"
                    ]
                  },
                  "breakdown": {
                    "type": "array",
                    "description": "Per-component tax-aware amounts for public corporate billing component types only: energy, idle_time, connection, and charging_time. The corporateAmount and driverAmount fields are gross and net totals sourced from matching corporate coverage and EV driver excess order items. Other persisted fee types, such as min_price, are not included, so this breakdown can be partial and may not sum to the order-level corporateAmount and driverAmount totals.\n",
                    "items": {
                      "type": "object",
                      "description": "Per-component tax-aware corporate billing amounts for one supported public corporate billing component type.",
                      "properties": {
                        "componentType": {
                          "type": "string",
                          "enum": [
                            "energy",
                            "idle_time",
                            "connection",
                            "charging_time"
                          ],
                          "description": "Corporate billing tariff component type:\n- **energy**: Energy charges based on consumed kWh\n- **idle_time**: Idle-time charges after charging has stopped or exceeded the configured idle threshold\n- **connection**: Connection charges for starting or maintaining the session connection\n- **charging_time**: Charging-time charges based on the active charging duration\n"
                        },
                        "corporateAmount": {
                          "description": "Tax-aware component amount billed to the corporate coverage order, with gross and net totals from matching order items.",
                          "type": "object",
                          "properties": {
                            "withTax": {
                              "type": "number"
                            },
                            "withoutTax": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "withTax"
                          ]
                        },
                        "driverAmount": {
                          "description": "Tax-aware component amount billed to the EV driver's excess order, with gross and net totals from matching order items.",
                          "type": "object",
                          "properties": {
                            "withTax": {
                              "type": "number"
                            },
                            "withoutTax": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "withTax"
                          ]
                        }
                      },
                      "required": [
                        "componentType",
                        "corporateAmount",
                        "driverAmount"
                      ]
                    }
                  }
                },
                "required": [
                  "policySnapshotId"
                ]
              },
              "discounts": {
                "type": "array",
                "description": "Per-type discount breakdown for the session, aggregated across all price-breakdown rows. Omitted when no discount data is available.",
                "items": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "subsidy",
                        "corporate"
                      ],
                      "description": "Type of an individual discount entry.\n- **subsidy**: energy-fee subsidy when the unit price exceeds a configured threshold.\n- **corporate**: percentage discount tied to a corporate billing arrangement.\n",
                      "example": "subsidy"
                    },
                    "amount": {
                      "type": "object",
                      "properties": {
                        "withTax": {
                          "type": "number"
                        },
                        "withoutTax": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "withTax"
                      ]
                    }
                  },
                  "required": [
                    "type",
                    "amount"
                  ]
                }
              },
              "tax": {
                "type": "object",
                "nullable": true,
                "deprecated": true,
                "properties": {
                  "taxId": {
                    "type": "integer"
                  },
                  "taxPercentage": {
                    "type": "number",
                    "format": "decimal"
                  }
                }
              },
              "currency": {
                "type": "string",
                "minLength": 3,
                "maxLength": 3,
                "description": "The ISO 4217 3-letter code of the currency"
              },
              "paymentType": {
                "type": "string",
                "enum": [
                  "tokenized",
                  "subscription",
                  "balance",
                  "corporate",
                  "terminal",
                  "bank_transfer"
                ]
              },
              "paymentMethodId": {
                "type": "string",
                "description": "The ID of the payment method. Mind that this is actually a string. It can be, for example `corporate:1234` - for corporate billing, or `balance`, or `subscription` - when the session is to be paid with the user's post-paid subscription.",
                "nullable": true
              },
              "terminalId": {
                "type": "integer",
                "description": "The ID of the payment terminal when such is used.",
                "nullable": true
              },
              "nonBillableEnergy": {
                "type": "number",
                "description": "The energy that is included as an allowance for pre-paid and post subscriptions."
              },
              "paymentStatus": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "pending",
                  "paid",
                  "partially",
                  "failed",
                  null
                ]
              },
              "authorizationId": {
                "nullable": true,
                "type": "integer"
              },
              "idTag": {
                "type": "string",
                "description": "The idTag defines the authentication source for the session (RFID identifier or remote start identifier)\nA remote start identifier has the format `*XXXXXXX` where the `XXXXXXX` is the session id padded with `0`s on the left\n"
              },
              "idTagLabel": {
                "type": "string",
                "description": "Additional information about the idTag that differs depending on the type of the idTag or could be something else, related to the car or the user."
              },
              "idTagType": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "rfid",
                  "emaid",
                  "mac_address"
                ],
                "description": "The type of identifier used for authentication. Returns 'rfid' for standard RFID card identifiers, 'emaid' for E-Mobility Account Identifiers used by ISO15118 Plug&Charge, or 'mac_address' for MAC addresses used by Autocharge."
              },
              "extendingSessionId": {
                "deprecated": true,
                "type": "integer",
                "nullable": true,
                "description": "When a session is finished (because connectivity was lost for a long time) and more data is received, the\nadditional data is stored in an extending session. If this property is set, then this is an extending session.\n"
              },
              "originalSessionId": {
                "type": "integer",
                "description": "ID of the session that the current session is extending."
              },
              "extendedBySessionId": {
                "type": "integer",
                "description": "ID of the session that extends this session."
              },
              "reimbursementEligibility": {
                "type": "boolean"
              },
              "externalSessionId": {
                "deprecated": true,
                "nullable": true,
                "type": "string",
                "description": "Deprecated: Use `idTag` field instead. This field will be removed in a future version.\nPreviously used for admin-started sessions, this value is now available in the `idTag` field.\n"
              },
              "authorization": {
                "type": "object",
                "description": "Session authorization.\n\nEmbedded as the `authorization` property in Session responses when the `withAuthorization` parameter\nis enabled, and always embedded in session webhook notifications for sessions that have an\nauthorization.\n",
                "properties": {
                  "id": {
                    "type": "integer"
                  },
                  "operatorId": {
                    "type": "integer",
                    "nullable": true,
                    "description": "The ID of the operator this resource belongs to",
                    "example": 1
                  },
                  "method": {
                    "description": "The method used to authorize the charging session.\n- `user_device` - Authorization via mobile app or web portal\n- `rfid_tag` - Authorization via physical RFID card\n- `mac_address` - Authorization via vehicle MAC address (AutoCharge)\n- `admin` - Manual authorization by admin user\n- `plug_and_charge` - Authorization via Plug & Charge\n- `plug_and_charge_iso15118` - Authorization via ISO 15118 Plug & Charge\n- `payment_terminal` - Authorization via payment terminal\n- `mobile_app` - Authorization received from a roaming platform via OCPI\n",
                    "type": "string",
                    "enum": [
                      "user_device",
                      "rfid_tag",
                      "mac_address",
                      "admin",
                      "plug_and_charge",
                      "plug_and_charge_iso15118",
                      "payment_terminal",
                      "mobile_app"
                    ]
                  },
                  "source": {
                    "description": "The origin of the authorization request.\n- `local` - Authorization initiated directly on this platform\n- `roaming` - Authorization received from a roaming platform (OCPI/Hubject). OCPI authorizations report the method as `mobile_app`.\n- `third_party` - Authorization initiated by a third-party authority\n",
                    "type": "string",
                    "enum": [
                      "local",
                      "roaming",
                      "third_party"
                    ]
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "createdAtLocal": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The creation time in the local time zone of the charge point, falling back to the operator's default time zone."
                  },
                  "status": {
                    "description": "The status of the authorization request.\n- `accepted` - Authorization was approved and the user can start charging\n- `rejected` - Authorization was denied and the user cannot charge\n- `pending` - Authorization is awaiting approval or validation\n",
                    "type": "string",
                    "enum": [
                      "accepted",
                      "rejected",
                      "pending"
                    ]
                  },
                  "rejectionReason": {
                    "type": "string",
                    "nullable": true,
                    "description": "The reason for rejecting the authorization. `null` unless status is `rejected`."
                  },
                  "userId": {
                    "type": "integer",
                    "nullable": true,
                    "description": "The user that is authorized. `null` when the authorization is not linked to a local user."
                  },
                  "rfidTagUid": {
                    "type": "string",
                    "nullable": true,
                    "description": "The UID of the identification tag that created the authorization. Only populated when source is\n`local` or `third_party`; `null` for roaming authorizations, whose token details are in the `roaming`\nobject.\n"
                  },
                  "roaming": {
                    "description": "In case source is `roaming`, this object describes the EMSP that gave the authorization",
                    "type": "object",
                    "properties": {
                      "platformId": {
                        "description": "The roaming platform ID that gave the authorization",
                        "type": "integer"
                      },
                      "platformRoleId": {
                        "description": "The role that gave the authorization (the EMSP)",
                        "type": "integer"
                      },
                      "platformRole": {
                        "description": "The role identifier",
                        "type": "string"
                      },
                      "reference": {
                        "description": "OCPI's authorization_reference, or Hubject's SessionID",
                        "type": "string"
                      },
                      "client": {
                        "description": "OCPI's contractId, or Hubject's EVCO ID",
                        "type": "string"
                      },
                      "uid": {
                        "description": "OCPI's token UID, as recorded at the moment the authorization was created. Absent for Hubject\nauthorizations and for authorizations created before the identifiers were recorded.\n",
                        "type": "string"
                      },
                      "visualNumber": {
                        "description": "OCPI's token visual_number, as recorded at the moment the authorization was created. Absent for\nHubject authorizations, for authorizations created before the identifiers were recorded, and when\nthe roaming platform did not provide a visual number.\n",
                        "type": "string"
                      }
                    },
                    "required": [
                      "platformId",
                      "platformRoleId",
                      "platformRole",
                      "reference",
                      "client"
                    ]
                  },
                  "lastUpdatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "ISO 8601 formatted date",
                    "readOnly": true
                  }
                },
                "required": [
                  "id",
                  "method",
                  "source",
                  "createdAt",
                  "status",
                  "rejectionReason",
                  "userId",
                  "rfidTagUid",
                  "lastUpdatedAt"
                ]
              },
              "chargingPeriods": {
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "Describes a period in the session that is billed separately, for example charging@night (for time of day tariffs) or idle (for tariffs that charge separately idle time)",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "energy": {
                      "type": "integer",
                      "description": "Delivered energy in Wh"
                    },
                    "energyPrecise": {
                      "type": "number",
                      "nullable": true,
                      "description": "Delivered energy in Wh with decimal precision"
                    },
                    "startedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "stoppedAt": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true
                    },
                    "state": {
                      "deprecated": true,
                      "type": "string",
                      "example": [
                        "charging",
                        "charging@night",
                        "charging@day",
                        "idle",
                        "idle@day",
                        "idle@night",
                        "charging@boosted",
                        "charging@optimised"
                      ],
                      "description": "The state of the period. A non exhaustive list of possible values:\n  * `charging` - the vehicle was charging\n  * `charging@night` - a ToD tariff was selected and the vehicle was charging during the nighttime period of the tariff\n  * `charging@day` - a ToD tariff was selected and the vehicle was charging during the daytime period of the tariff\n  * `idle` - a tariff with separate pricing for idle time was selected and the charging was idle in that period\n  * `idle@night` - a ToD tariff was selected and the vehicle was idling during the nighttime period of the tariff\n  * `idle@day` - a ToD tariff was selected and the vehicle was idling during the daytime period of the tariff\n  * `charging@boosted` - Optimised dynamic pricing was applied and charging was performed with full available power\n  * `charging@optimised` - Optimised dynamic pricing was applied and charging was performed with lower price and limited power during peak hours\n"
                    },
                    "chargingState": {
                      "type": "string",
                      "enum": [
                        "charging",
                        "idle"
                      ],
                      "description": "The charging state of the period."
                    },
                    "graceTimeEndAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "When the idle fee grace period expires for this charging period. Present only on idle charging periods that have a grace period configured."
                    },
                    "pricingDetails": {
                      "description": "Optional pricing details specific to this charging period, dependent on the tariff.",
                      "type": "object",
                      "properties": {
                        "chargingType": {
                          "type": "string",
                          "enum": [
                            "boosted",
                            "optimised"
                          ],
                          "nullable": true,
                          "description": "Power delivery strategy used during this period.\n  * `boosted` - maximum available power delivery\n  * `optimised` - reduced power during peak hours for cost efficiency\n"
                        },
                        "dayPeriod": {
                          "type": "string",
                          "nullable": true,
                          "enum": [
                            "day",
                            "night"
                          ],
                          "description": "The period of the day.\n  * `day` - daytime period of the tariff\n  * `night` - nighttime period of the tariff\n"
                        },
                        "pricingMethod": {
                          "type": "string",
                          "nullable": true,
                          "enum": [
                            "duration",
                            "energy",
                            "durationAndEnergy",
                            "free"
                          ],
                          "description": "The method used for calculating price in standard tariffs.\n  * `duration` - pricing based on duration\n  * `energy` - pricing based on energy consumption\n  * `durationAndEnergy` - pricing based on both duration and energy\n  * `free` - free period with no charge\n"
                        },
                        "price": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Base price rate for Energy Time of Usage tariffs"
                        },
                        "markup": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Additional percentage or fixed amount added to the base price"
                        },
                        "initialEnergyPrice": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Starting price rate for energy-based charging"
                        },
                        "initialDurationPrice": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Starting price rate for time-based charging"
                        },
                        "startHour": {
                          "type": "string",
                          "description": "The start hour for the charging period"
                        },
                        "endHour": {
                          "type": "string",
                          "description": "The end hour for the charging period"
                        },
                        "day": {
                          "type": "string",
                          "description": "The day being used"
                        }
                      }
                    },
                    "amount": {
                      "type": "number",
                      "format": "decimal",
                      "nullable": true,
                      "deprecated": true
                    },
                    "totalAmount": {
                      "type": "object",
                      "properties": {
                        "withTax": {
                          "type": "number"
                        },
                        "withoutTax": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "withTax"
                      ]
                    },
                    "priceBreakdown": {
                      "type": "array",
                      "items": {
                        "description": "Charging period price breakdown",
                        "$ref": "#/components/schemas/Session"
                      },
                      "description": "A breakdown of the different tariff elements that create the total amount of the charging period. Only sent when `withChargingPeriodsPriceBreakdown` is set to `true`. The priceBreakdown will be displayed only when the Billing status of the session is marked as completed."
                    }
                  },
                  "required": [
                    "id",
                    "energy",
                    "startedAt",
                    "state"
                  ]
                }
              },
              "priceBreakdown": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "flat",
                        "connection",
                        "energy",
                        "charging_time",
                        "idle_time",
                        "power_levels_time",
                        "min_price",
                        "service_fee",
                        "energy_flat_fee",
                        "duration_flat_fee",
                        "idle_flat_fee"
                      ],
                      "description": "* `flat` - no matter the duration or energy consumed each session would cost one and the same amount,\n* `connection` - a fixed fee that is applied at the start of the charging session,\n* `energy` - the cost for the consumed energy,\n* `charging_time` - the cost for the duration of the session when there is ongoing charging,\n* `idle_time` - the cost for the time when there is no active charging but there is an ongoing session,\n* `power_levels_time` - the cost for peak and average power levels,\n* `min_price` - the minimum price a session should cost, anything below that price is rounded up to the minimum price,\n* `service_fee` - the cost for the mark up,\n* `energy_flat_fee` - a fixed fee applied per energy component,\n* `duration_flat_fee` - a fixed fee applied per duration component,\n* `idle_flat_fee` - a fixed fee applied per idle component.\n"
                    },
                    "currency": {
                      "type": "string",
                      "example": "EUR",
                      "minLength": 3,
                      "maxLength": 3,
                      "description": "3-letter currency code (ISO 4217)"
                    },
                    "unit": {
                      "type": "string",
                      "enum": [
                        "kwh",
                        "minute",
                        "session"
                      ],
                      "description": "The measure that is used for the type element."
                    },
                    "pricePerUnit": {
                      "description": "The price of a single unit of the tariff element.",
                      "type": "object",
                      "properties": {
                        "withTax": {
                          "type": "number"
                        },
                        "withoutTax": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "withTax"
                      ]
                    },
                    "quantity": {
                      "type": "number",
                      "format": "decimal",
                      "description": "The number of units."
                    },
                    "price": {
                      "description": "The `pricePerUnit` multiplied by the `quantity`.",
                      "type": "object",
                      "properties": {
                        "withTax": {
                          "type": "number"
                        },
                        "withoutTax": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "withTax"
                      ]
                    },
                    "taxPercentage": {
                      "type": "number",
                      "nullable": true,
                      "format": "decimal",
                      "description": "The tax rate percentage applied to this tariff element."
                    },
                    "totalPrice": {
                      "type": "number",
                      "format": "decimal",
                      "description": "The `unitPrice` multiplied by the `quantity`.",
                      "deprecated": true
                    },
                    "unitPrice": {
                      "type": "number",
                      "format": "decimal",
                      "description": "The price of a single unit of the tariff element.",
                      "deprecated": true
                    },
                    "discounts": {
                      "type": "array",
                      "description": "Per-type discount breakdown for this row. Omitted when no discount data is available.\n",
                      "items": {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "enum": [
                              "subsidy",
                              "corporate"
                            ],
                            "description": "Type of an individual discount entry.\n- **subsidy**: energy-fee subsidy when the unit price exceeds a configured threshold.\n- **corporate**: percentage discount tied to a corporate billing arrangement.\n",
                            "example": "subsidy"
                          },
                          "amount": {
                            "type": "object",
                            "properties": {
                              "withTax": {
                                "type": "number"
                              },
                              "withoutTax": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "withTax"
                            ]
                          }
                        },
                        "required": [
                          "type",
                          "amount"
                        ]
                      }
                    }
                  },
                  "required": [
                    "type",
                    "currency",
                    "price",
                    "quantity",
                    "pricePerUnit",
                    "unit",
                    "totalPrice",
                    "unitPrice"
                  ]
                },
                "description": "A breakdown of the different tariff elements that create the total amount of the charging session. Only sent when `session_with_price_breakdown` is set to `true`. The priceBreakdown will be displayed only when the Billing status of the session is marked as completed."
              },
              "tariffSnapshotId": {
                "type": "integer",
                "nullable": true,
                "description": "At the start of the charging session the tariff will be snapshotted and that snapshot will not be changed ever. That snapshot is used to determine the price of the charging session. This is the ID of that snapshot.\n"
              },
              "electricityCost": {
                "type": "number",
                "format": "decimal",
                "nullable": true
              },
              "evsePhysicalReference": {
                "type": "string",
                "description": "This could be either the identifier that is presented to the user, so they can identify the EVSE at the location. Or for roaming EVSEs - it is the roaming evse_id.\n",
                "nullable": true
              },
              "paymentStatusUpdatedAt": {
                "type": "string",
                "nullable": true,
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "chargePointOperatorRoamingId": {
                "type": "string",
                "description": "The roaming operator identifier (e.g., \"DE*ENA\", \"LT*IGN\") of the operator who owns the charge point where the session occurred. Only returned for roaming sessions."
              },
              "roaming": {
                "type": "object",
                "properties": {
                  "cdrIds": {
                    "type": "array",
                    "description": "The CDRs that are generated for roaming sessions.",
                    "items": {
                      "type": "integer"
                    }
                  },
                  "sessionId": {
                    "type": "string",
                    "description": "The unique id that identifies the charging session in the CPO platform."
                  },
                  "roamingOperatorCpoId": {
                    "type": "integer",
                    "description": "The id of the roaming operator that owns the charge point at which the session occurred."
                  },
                  "cpoLastUpdatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Applicable only for OCPI sessions and populated with the most recent shared `last_updated` value from the CPO roaming operator. ISO 8601 formatted date",
                    "readOnly": true
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "randomisedDelay": {
                "type": "integer",
                "description": "Number of seconds by which current offering is being delayed at the start of the session. The field is omitted when randomised delay is not enabled in the Personal Charging settings or when there is no randomised delay."
              },
              "receiptId": {
                "deprecated": true,
                "type": "integer",
                "nullable": true
              },
              "externalAppData": {
                "description": "Used to hold any external application data related to the session.",
                "type": "object",
                "nullable": true,
                "additionalProperties": true
              },
              "clockAlignedEnergyConsumption": {
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "Session Clock aligned consumption period",
                  "properties": {
                    "start": {
                      "type": "string",
                      "format": "date-time",
                      "description": "The beginning of the clock-aligned consumption period."
                    },
                    "end": {
                      "type": "string",
                      "format": "date-time",
                      "description": "The end of the clock-aligned consumption period."
                    },
                    "energyConsumed": {
                      "deprecated": true,
                      "type": "integer",
                      "description": "The amount of total consumed energy(Wh) during the clock-aligned consumption period."
                    },
                    "energyConsumption": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "number",
                          "description": "The amount of total consumed energy (Wh) during the clock-aligned consumption period."
                        },
                        "local": {
                          "type": "number",
                          "description": "The amount of consumed renewable energy (Wh) generated by individual source for the specified clock-aligned consumption period."
                        },
                        "grid": {
                          "type": "number",
                          "description": "The amount of consumed energy (Wh) delivered from the grid for the specified clock-aligned consumption period."
                        }
                      },
                      "required": [
                        "total",
                        "grid"
                      ]
                    },
                    "totalCost": {
                      "type": "object",
                      "description": "The total cost of energy consumption during the clock-aligned period.",
                      "properties": {
                        "withTax": {
                          "type": "number",
                          "description": "Total cost including tax."
                        },
                        "withoutTax": {
                          "type": "number",
                          "description": "Total cost excluding tax."
                        }
                      },
                      "required": [
                        "withTax"
                      ]
                    }
                  },
                  "required": [
                    "start",
                    "end",
                    "energyConsumed",
                    "energyConsumption"
                  ]
                },
                "description": "Energy consumption during time intervals (15, 30 or 60 minutes) in the charging session. The start of the first interval is the start of the session then the intervals are defined by the exact minute of the hour. Clock-aligned consumption periods are included in the response only when the query param 'withClockAlignedEnergyConsumption' is set to 'true'."
              },
              "energyConsumption": {
                "type": "object",
                "properties": {
                  "total": {
                    "type": "number",
                    "description": "Delivered energy (Wh)"
                  },
                  "local": {
                    "type": "number",
                    "description": "The amount of consumed renewable energy (Wh) generated by individual source for all clock-aligned consumption periods in the charging session."
                  },
                  "grid": {
                    "type": "number",
                    "description": "The amount of consumed energy (Wh) delivered from the grid for all clock-aligned consumption periods in the charging session."
                  }
                },
                "required": [
                  "total",
                  "grid"
                ]
              },
              "estimatedSavings": {
                "type": "number",
                "description": "The sum of savings that could be achieved if the consumed energy was not locally generated but delivered from the grid for all clock-aligned consumption periods in the charging session."
              },
              "billingStatus": {
                "type": "string",
                "description": "The status of the billing process for the session.",
                "nullable": true,
                "enum": [
                  "pending",
                  "suspended",
                  "completed",
                  null
                ]
              },
              "billingCompletedAt": {
                "type": "string",
                "format": "date-time",
                "description": "The timestamp when session billing was completed. Only present when billing has completed, omitted otherwise."
              },
              "power": {
                "type": "object",
                "properties": {
                  "latest": {
                    "type": "number",
                    "nullable": true,
                    "description": "The current charging power (in watts)"
                  },
                  "peak": {
                    "type": "number",
                    "nullable": true,
                    "description": "The maximum charging power (in watts) reached during the session"
                  },
                  "average": {
                    "type": "number",
                    "nullable": true,
                    "description": "The average charging power (in watts) maintained during the session"
                  },
                  "offered": {
                    "type": "number",
                    "nullable": true,
                    "description": "The power offered by the EVSE to the vehicle (in watts)"
                  }
                }
              },
              "preAuthorizedAmount": {
                "type": "number",
                "description": "The total amount currently held (authorized) on the user's payment method for this session, in the session's currency.\nOmitted when no active pre-authorization exists for this session (billing strategy does not use pre-authorization, authorization not yet placed, or already captured/voided at session end).\nPresent and greater than 0 when an authorization is held. For incremental sessions this is the sum of the initial authorization and all successful increments; for non-incremental sessions this is the initial authorized amount.\n"
              },
              "incrementalPreAuthorizationEnabled": {
                "type": "boolean",
                "description": "Whether incremental pre-authorizations are active for this session.\n`true` when all preconditions are met: feature flag enabled, incremental pre-authorizations enabled in settings, billing strategy supports pre-authorization, and the session has an active pre-authorization with a PSP that supports incremental authorization.\n`false` in all other cases, including sessions without pre-authorization and completed sessions.\n"
              },
              "customFields": {
                "description": "Custom field values keyed by their administrator-defined identifiers. Values use the wire representation configured for each field: Boolean is a JSON boolean; Text and Long text are strings; Email is an email-formatted string; URL is an HTTP or HTTPS URL string; Number is a canonical base-10 decimal string from `-99999999999999.999999` through `99999999999999.999999` with up to six fractional digits and no insignificant trailing fractional zeroes; Date is an ISO 8601 `YYYY-MM-DD` string; Date-time is an ISO 8601 timestamp with a UTC offset; and JSON may be any JSON-serializable value. Applicable fields without a value are returned as `null`; fields that are not applicable to the session are omitted. The `customFields` property itself is omitted when no fields apply.\n",
                "type": "object",
                "additionalProperties": true
              },
              "durationBreakdown": {
                "type": "object",
                "description": "Charging and idle duration totals for the session. Grace-period values are zero when no grace applies, and duration categories that do not apply are returned with zero values.",
                "required": [
                  "chargingDurationSeconds",
                  "billableChargingDurationSeconds",
                  "chargingGracePeriodSeconds",
                  "idleDurationSeconds",
                  "billableIdleDurationSeconds",
                  "idleGracePeriodSeconds"
                ],
                "properties": {
                  "chargingDurationSeconds": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Total time in seconds spent charging."
                  },
                  "billableChargingDurationSeconds": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Charging time in seconds remaining after applicable grace periods."
                  },
                  "chargingGracePeriodSeconds": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Charging time in seconds covered by a duration grace period."
                  },
                  "idleDurationSeconds": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Total time in seconds spent idle."
                  },
                  "billableIdleDurationSeconds": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Idle time in seconds remaining after applicable grace periods."
                  },
                  "idleGracePeriodSeconds": {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Idle time in seconds covered by duration or idle grace periods."
                  }
                }
              },
              "timelineSnapshot": {
                "type": "object",
                "description": "Pre-computed timeline snapshot for a finished session containing the full meter value time-series and lifecycle events.",
                "properties": {
                  "series": {
                    "type": "array",
                    "description": "Time-series data points representing meter readings over the session duration",
                    "items": {
                      "type": "object",
                      "description": "A single meter reading at a point in time. Null fields are omitted from the response.",
                      "properties": {
                        "timestamp": {
                          "description": "ISO 8601 formatted date",
                          "type": "string",
                          "format": "date-time",
                          "readOnly": true
                        },
                        "energyKwh": {
                          "type": "number",
                          "description": "Cumulative energy imported (kWh)"
                        },
                        "powerKw": {
                          "type": "number",
                          "description": "Instantaneous charging power (kW)"
                        },
                        "voltageV": {
                          "type": "number",
                          "description": "Voltage (V)"
                        },
                        "currentA": {
                          "type": "number",
                          "description": "Current (A)"
                        },
                        "temperatureC": {
                          "type": "number",
                          "description": "Temperature (C)"
                        },
                        "socPercent": {
                          "type": "integer",
                          "description": "State of charge (0-100%)"
                        },
                        "currentOfferedA": {
                          "type": "number",
                          "description": "Offered current limit (A)"
                        },
                        "powerOfferedKw": {
                          "type": "number",
                          "description": "Offered power limit (kW)"
                        },
                        "energyExportKwh": {
                          "type": "number",
                          "description": "Cumulative energy exported (kWh)"
                        },
                        "powerExportKw": {
                          "type": "number",
                          "description": "Export power (kW)"
                        },
                        "currentExportA": {
                          "type": "number",
                          "description": "Export current (A)"
                        },
                        "frequencyHz": {
                          "type": "number",
                          "description": "Frequency (Hz)"
                        },
                        "powerFactor": {
                          "type": "number",
                          "description": "Power factor (dimensionless)"
                        },
                        "phases": {
                          "type": "object",
                          "additionalProperties": true,
                          "description": "Phase-level detail (structure varies by charge point)"
                        },
                        "extra": {
                          "type": "object",
                          "additionalProperties": true,
                          "description": "Additional measurands not covered above"
                        }
                      },
                      "required": [
                        "timestamp"
                      ]
                    }
                  },
                  "has": {
                    "type": "object",
                    "description": "Indicates which series fields have at least one non-null value across the series. Only flags with a true value are present — false flags are omitted entirely. Keys use the exact same names as the series fields.",
                    "properties": {
                      "voltageV": {
                        "type": "boolean",
                        "description": "At least one entry has voltage data"
                      },
                      "currentA": {
                        "type": "boolean",
                        "description": "At least one entry has current data"
                      },
                      "temperatureC": {
                        "type": "boolean",
                        "description": "At least one entry has temperature data"
                      },
                      "socPercent": {
                        "type": "boolean",
                        "description": "At least one entry has state of charge data"
                      },
                      "currentOfferedA": {
                        "type": "boolean",
                        "description": "At least one entry has offered current data"
                      },
                      "powerOfferedKw": {
                        "type": "boolean",
                        "description": "At least one entry has offered power data"
                      },
                      "energyExportKwh": {
                        "type": "boolean",
                        "description": "At least one entry has export energy data"
                      },
                      "powerExportKw": {
                        "type": "boolean",
                        "description": "At least one entry has export power data"
                      },
                      "currentExportA": {
                        "type": "boolean",
                        "description": "At least one entry has export current data"
                      },
                      "frequencyHz": {
                        "type": "boolean",
                        "description": "At least one entry has frequency data"
                      },
                      "powerFactor": {
                        "type": "boolean",
                        "description": "At least one entry has power factor data"
                      },
                      "phases": {
                        "type": "boolean",
                        "description": "At least one entry has phase-level detail"
                      },
                      "extra": {
                        "type": "boolean",
                        "description": "At least one entry has additional measurands"
                      }
                    }
                  },
                  "events": {
                    "type": "array",
                    "description": "Session lifecycle events that occurred during the session",
                    "items": {
                      "type": "object",
                      "description": "A session lifecycle event, such as an EVSE status change, charge point status change, remote start/stop command, or confirmed transaction boundary.\n\n`start_transaction_wh` is emitted at the confirmed transaction start when both its timestamp and precise meter reading are available. `stop_transaction_wh` is emitted at the confirmed transaction stop under the same conditions. Each event's value is the absolute meter reading at that boundary, encoded as a decimal Wh string. A boundary event is omitted when either value is unavailable. Boundary events appear only in snapshots generated after this event support became available; existing snapshots are not backfilled or modified.\n",
                      "properties": {
                        "timestamp": {
                          "description": "ISO 8601 formatted date",
                          "type": "string",
                          "format": "date-time",
                          "readOnly": true
                        },
                        "type": {
                          "type": "string",
                          "description": "Event type",
                          "enum": [
                            "evse_status",
                            "cp_status",
                            "remote_start",
                            "remote_stop",
                            "start_transaction_wh",
                            "stop_transaction_wh"
                          ]
                        },
                        "value": {
                          "type": "string",
                          "description": "Current value. For transaction boundary events, this is the absolute meter reading in decimal Wh, encoded as a string preserving tenth-Wh precision, such as `\"0.0\"` or `\"1234.5\"`; other event types contain a status name or OCPP command."
                        },
                        "previousValue": {
                          "type": "string",
                          "description": "Previous value (for status transitions)"
                        },
                        "info": {
                          "type": "object",
                          "additionalProperties": true,
                          "description": "Additional event context (varies by type)"
                        }
                      },
                      "required": [
                        "timestamp",
                        "type",
                        "value"
                      ]
                    }
                  }
                },
                "required": [
                  "series",
                  "has",
                  "events"
                ]
              },
              "chargingProfile": {
                "type": "object",
                "description": "The TX charging profile applied to the session. Returned only when `include[]=chargingProfile` is set. Omitted entirely when no profile is associated with the session.",
                "properties": {
                  "id": {
                    "type": "integer"
                  },
                  "minChargingRate": {
                    "type": "number",
                    "nullable": true
                  },
                  "schedulePeriods": {
                    "type": "array",
                    "nullable": true,
                    "items": {
                      "type": "object",
                      "properties": {
                        "startPeriod": {
                          "type": "integer"
                        },
                        "limit": {
                          "type": "number",
                          "multipleOf": 0.1
                        },
                        "numberPhases": {
                          "type": "integer"
                        }
                      }
                    }
                  },
                  "scheduleStart": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "chargingRateUnit": {
                    "type": "string",
                    "enum": [
                      "A",
                      "W"
                    ]
                  },
                  "stackLevel": {
                    "type": "integer"
                  },
                  "chargingProfileKind": {
                    "type": "string",
                    "enum": [
                      "Absolute",
                      "Recurring",
                      "Relative"
                    ]
                  },
                  "recurrencyKind": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "daily",
                      "weekly"
                    ]
                  },
                  "chargingCompleteAt": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "purpose": {
                    "type": "string",
                    "enum": [
                      "ChargePointMaxProfile",
                      "TxDefaultProfile",
                      "TxProfile"
                    ]
                  },
                  "validTo": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "validFrom": {
                    "type": "string",
                    "format": "datetime",
                    "nullable": true
                  },
                  "duration": {
                    "type": "integer",
                    "nullable": true
                  }
                }
              },
              "vehicle": {
                "type": "object",
                "description": "A vehicle in the operator's fleet.",
                "required": [
                  "id",
                  "operatorId",
                  "label",
                  "createdAt",
                  "updatedAt",
                  "isVerified"
                ],
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Vehicle identifier.",
                    "example": 42
                  },
                  "operatorId": {
                    "type": "integer",
                    "description": "The operator the vehicle belongs to.",
                    "example": 1
                  },
                  "partnerId": {
                    "type": "integer",
                    "description": "Partner the vehicle belongs to.",
                    "example": 12
                  },
                  "label": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "Display name for the vehicle.",
                    "example": "Fleet car #4"
                  },
                  "licensePlate": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "License plate of the vehicle.",
                    "example": "CA1234XY"
                  },
                  "vin": {
                    "type": "string",
                    "minLength": 17,
                    "maxLength": 17,
                    "pattern": "^[A-HJ-NPR-Z0-9]{17}$",
                    "description": "Vehicle Identification Number (ISO 3779).",
                    "example": "1HGBH41JXMN109186"
                  },
                  "pcId": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "Provisioning certificate ID from the vehicle's ISO 15118 Plug & Charge system. The platform uses this value to automatically associate the vehicle with an EMAID contract certificate when the issued certificate has the same `pcId`.",
                    "example": "DE8ABC1234567890"
                  },
                  "usageType": {
                    "type": "string",
                    "enum": [
                      "private",
                      "company"
                    ],
                    "description": "How the vehicle is used.\n  * `private` - Private vehicle\n  * `company` - Company or fleet vehicle\n"
                  },
                  "createdAt": {
                    "description": "ISO 8601 formatted date",
                    "type": "string",
                    "format": "date-time",
                    "readOnly": true
                  },
                  "updatedAt": {
                    "description": "ISO 8601 formatted date",
                    "type": "string",
                    "format": "date-time",
                    "readOnly": true
                  },
                  "isVerified": {
                    "type": "boolean",
                    "description": "True when the vehicle association was cryptographically verified (e.g., ISO 15118 Plug & Charge)."
                  }
                }
              }
            },
            "required": [
              "id",
              "operatorId",
              "status",
              "userId",
              "authorizationId",
              "energy",
              "energyConsumption",
              "chargePointId",
              "evseId",
              "startedAt",
              "billingStatus",
              "incrementalPreAuthorizationEnabled"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "sessionsConsumptionStatsRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "description": "Consumption Stats",
            "items": {
              "type": "object",
              "properties": {
                "energy": {
                  "type": "number",
                  "nullable": true,
                  "description": "The cumulative energy consumption (in watt-hours) recorded at this specific point in time"
                },
                "power": {
                  "type": "number",
                  "nullable": true,
                  "description": "The charging power value (in watts) recorded at this specific point in time"
                },
                "timestamp": {
                  "description": "ISO 8601 formatted date",
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                }
              },
              "required": [
                "energy",
                "power",
                "timestamp"
              ]
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "energyCouponSessionConsumptionsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Energy consumed from an energy coupon during a charging session",
              "required": [
                "sessionId",
                "couponId",
                "consumedEnergyWh"
              ],
              "properties": {
                "sessionId": {
                  "type": "integer",
                  "description": "The ID of the charging session"
                },
                "couponId": {
                  "type": "integer",
                  "description": "The ID of the energy coupon"
                },
                "consumedEnergyWh": {
                  "type": "integer",
                  "description": "Energy consumed from this coupon during the session, in watt-hours"
                }
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "sessionTimelineSnapshotRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Pre-computed timeline snapshot for a finished session containing the full meter value time-series and lifecycle events.",
            "properties": {
              "series": {
                "type": "array",
                "description": "Time-series data points representing meter readings over the session duration",
                "items": {
                  "type": "object",
                  "description": "A single meter reading at a point in time. Null fields are omitted from the response.",
                  "properties": {
                    "timestamp": {
                      "description": "ISO 8601 formatted date",
                      "type": "string",
                      "format": "date-time",
                      "readOnly": true
                    },
                    "energyKwh": {
                      "type": "number",
                      "description": "Cumulative energy imported (kWh)"
                    },
                    "powerKw": {
                      "type": "number",
                      "description": "Instantaneous charging power (kW)"
                    },
                    "voltageV": {
                      "type": "number",
                      "description": "Voltage (V)"
                    },
                    "currentA": {
                      "type": "number",
                      "description": "Current (A)"
                    },
                    "temperatureC": {
                      "type": "number",
                      "description": "Temperature (C)"
                    },
                    "socPercent": {
                      "type": "integer",
                      "description": "State of charge (0-100%)"
                    },
                    "currentOfferedA": {
                      "type": "number",
                      "description": "Offered current limit (A)"
                    },
                    "powerOfferedKw": {
                      "type": "number",
                      "description": "Offered power limit (kW)"
                    },
                    "energyExportKwh": {
                      "type": "number",
                      "description": "Cumulative energy exported (kWh)"
                    },
                    "powerExportKw": {
                      "type": "number",
                      "description": "Export power (kW)"
                    },
                    "currentExportA": {
                      "type": "number",
                      "description": "Export current (A)"
                    },
                    "frequencyHz": {
                      "type": "number",
                      "description": "Frequency (Hz)"
                    },
                    "powerFactor": {
                      "type": "number",
                      "description": "Power factor (dimensionless)"
                    },
                    "phases": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "Phase-level detail (structure varies by charge point)"
                    },
                    "extra": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "Additional measurands not covered above"
                    }
                  },
                  "required": [
                    "timestamp"
                  ]
                }
              },
              "has": {
                "type": "object",
                "description": "Indicates which series fields have at least one non-null value across the series. Only flags with a true value are present — false flags are omitted entirely. Keys use the exact same names as the series fields.",
                "properties": {
                  "voltageV": {
                    "type": "boolean",
                    "description": "At least one entry has voltage data"
                  },
                  "currentA": {
                    "type": "boolean",
                    "description": "At least one entry has current data"
                  },
                  "temperatureC": {
                    "type": "boolean",
                    "description": "At least one entry has temperature data"
                  },
                  "socPercent": {
                    "type": "boolean",
                    "description": "At least one entry has state of charge data"
                  },
                  "currentOfferedA": {
                    "type": "boolean",
                    "description": "At least one entry has offered current data"
                  },
                  "powerOfferedKw": {
                    "type": "boolean",
                    "description": "At least one entry has offered power data"
                  },
                  "energyExportKwh": {
                    "type": "boolean",
                    "description": "At least one entry has export energy data"
                  },
                  "powerExportKw": {
                    "type": "boolean",
                    "description": "At least one entry has export power data"
                  },
                  "currentExportA": {
                    "type": "boolean",
                    "description": "At least one entry has export current data"
                  },
                  "frequencyHz": {
                    "type": "boolean",
                    "description": "At least one entry has frequency data"
                  },
                  "powerFactor": {
                    "type": "boolean",
                    "description": "At least one entry has power factor data"
                  },
                  "phases": {
                    "type": "boolean",
                    "description": "At least one entry has phase-level detail"
                  },
                  "extra": {
                    "type": "boolean",
                    "description": "At least one entry has additional measurands"
                  }
                }
              },
              "events": {
                "type": "array",
                "description": "Session lifecycle events that occurred during the session",
                "items": {
                  "type": "object",
                  "description": "A session lifecycle event, such as an EVSE status change, charge point status change, remote start/stop command, or confirmed transaction boundary.\n\n`start_transaction_wh` is emitted at the confirmed transaction start when both its timestamp and precise meter reading are available. `stop_transaction_wh` is emitted at the confirmed transaction stop under the same conditions. Each event's value is the absolute meter reading at that boundary, encoded as a decimal Wh string. A boundary event is omitted when either value is unavailable. Boundary events appear only in snapshots generated after this event support became available; existing snapshots are not backfilled or modified.\n",
                  "properties": {
                    "timestamp": {
                      "description": "ISO 8601 formatted date",
                      "type": "string",
                      "format": "date-time",
                      "readOnly": true
                    },
                    "type": {
                      "type": "string",
                      "description": "Event type",
                      "enum": [
                        "evse_status",
                        "cp_status",
                        "remote_start",
                        "remote_stop",
                        "start_transaction_wh",
                        "stop_transaction_wh"
                      ]
                    },
                    "value": {
                      "type": "string",
                      "description": "Current value. For transaction boundary events, this is the absolute meter reading in decimal Wh, encoded as a string preserving tenth-Wh precision, such as `\"0.0\"` or `\"1234.5\"`; other event types contain a status name or OCPP command."
                    },
                    "previousValue": {
                      "type": "string",
                      "description": "Previous value (for status transitions)"
                    },
                    "info": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "Additional event context (varies by type)"
                    }
                  },
                  "required": [
                    "timestamp",
                    "type",
                    "value"
                  ]
                }
              }
            },
            "required": [
              "series",
              "has",
              "events"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "settingsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Settings",
            "properties": {
              "baseCurrency": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer"
                  },
                  "lastUpdatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "ISO 8601 formatted date",
                    "readOnly": true
                  }
                },
                "required": [
                  "id"
                ]
              },
              "defaultTax": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer"
                  },
                  "enableMultiTaxSupport": {
                    "type": "boolean",
                    "description": "When enabled, the tax for each tariff could be chosen individually. IMPORTANT: Balance, voucher and top-up functionalities no longer could be used in this case"
                  },
                  "taxInformationNotInInvoicesAndReceipts": {
                    "type": "boolean",
                    "description": "When enabled, Tax information would be excluded from invoices and receipts."
                  },
                  "lastUpdatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "ISO 8601 formatted date",
                    "readOnly": true
                  }
                },
                "required": [
                  "id"
                ]
              },
              "reservations": {
                "type": "object",
                "properties": {
                  "enableReservations": {
                    "type": "boolean"
                  },
                  "reservationTime": {
                    "type": "integer",
                    "description": "The duration of a reservation in minutes."
                  },
                  "expiryNotification": {
                    "type": "integer",
                    "description": "Remaining time of the reservation in minutes, at which a push notification would be sent to the user to let them know that their reservation is going to expire soon."
                  },
                  "maxReservationsPerDayPerUser": {
                    "type": "integer",
                    "description": "Limits the number of reservations that the user can make per day."
                  },
                  "cooldownTimeBetweenReservations": {
                    "type": "integer",
                    "description": "The time in minutes that the user can wait after making a reservation before they can make a new one. Starts counting after the previous reservation has expired or has been canceled."
                  },
                  "enableReservationsQueue": {
                    "type": "boolean",
                    "description": "Allow users to reserve a charger (EVSE) that is currently occupied by adding reservations to queue."
                  },
                  "lastUpdatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "ISO 8601 formatted date",
                    "readOnly": true
                  }
                }
              },
              "bilingualInvoicesEnabled": {
                "type": "boolean",
                "description": "Indicates whether the operator's invoice processor is configured with bilingual invoices enabled. When true, invoices can be generated in both the operator's default language and the user's preferred language."
              },
              "bilingualReceiptsEnabled": {
                "type": "boolean",
                "description": "Indicates whether the operator's receipt processor is configured with bilingual receipts enabled. When true, receipts can be generated in both the operator's default language and the user's preferred language."
              }
            },
            "required": [
              "bilingualInvoicesEnabled",
              "bilingualReceiptsEnabled"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "sharingInvitesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "description": "Sharing invite read schema. A sharing invite records that a personal charge point has been shared with another user.",
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "chargePointId": {
                  "type": "integer",
                  "description": "Charge point the sharing invite grants access to."
                },
                "userId": {
                  "type": "integer",
                  "description": "User the charge point is shared with."
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "pending",
                    "accepted"
                  ],
                  "description": "The sharing invite status:\n- **pending**: The invited user has not yet accepted the sharing invite\n- **accepted**: The invited user accepted the sharing invite and has access to the charge point\n\nWithdrawn sharing invites are removed and are never returned by this resource.\n",
                  "example": "pending"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "chargePointId",
                "userId",
                "status",
                "createdAt",
                "lastUpdatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "sharingInviteRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Sharing invite read schema. A sharing invite records that a personal charge point has been shared with another user.",
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "chargePointId": {
                "type": "integer",
                "description": "Charge point the sharing invite grants access to."
              },
              "userId": {
                "type": "integer",
                "description": "User the charge point is shared with."
              },
              "status": {
                "type": "string",
                "enum": [
                  "pending",
                  "accepted"
                ],
                "description": "The sharing invite status:\n- **pending**: The invited user has not yet accepted the sharing invite\n- **accepted**: The invited user accepted the sharing invite and has access to the charge point\n\nWithdrawn sharing invites are removed and are never returned by this resource.\n",
                "example": "pending"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "chargePointId",
              "userId",
              "status",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subOperatorsListingDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "operatorId"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "name": {
                  "type": "string",
                  "description": "Display name of the sub-operator.\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. This matches the resolution used by Sub-operators v2.0, so both versions report the same name for the same sub-operator.\n\nThis version is deprecated and exposes no per-locale access. Use `translatedName` on `resources/sub-operators/v2.0` to read or write a specific language.\n"
                },
                "partner_ids": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  }
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subOperatorReadDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "operatorId"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string",
                "description": "Display name of the sub-operator.\n\nThe value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. This matches the resolution used by Sub-operators v2.0, so both versions report the same name for the same sub-operator.\n\nThis version is deprecated and exposes no per-locale access. Use `translatedName` on `resources/sub-operators/v2.0` to read or write a specific language.\n"
              },
              "partner_ids": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subOperatorsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "required": [
                "id",
                "operatorId",
                "name",
                "translatedName",
                "translatedAddress",
                "translatedCity",
                "businessName",
                "capabilities",
                "partnerIds",
                "lastUpdatedAt"
              ],
              "type": "object",
              "properties": {
                "businessName": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "Official business name for legal/financial purposes"
                },
                "externalId": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "External system identifier for integration purposes"
                },
                "regNo": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "Company registration number"
                },
                "taxNo": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "Tax identification number"
                },
                "country": {
                  "description": "ISO 3166-1 alpha-2 country code",
                  "type": "string",
                  "enum": [
                    "AF",
                    "AX",
                    "AL",
                    "DZ",
                    "AS",
                    "AD",
                    "AO",
                    "AI",
                    "AQ",
                    "AG",
                    "AR",
                    "AM",
                    "AW",
                    "AU",
                    "AT",
                    "AZ",
                    "BS",
                    "BH",
                    "BD",
                    "BB",
                    "BY",
                    "BE",
                    "BZ",
                    "BJ",
                    "BM",
                    "BT",
                    "BO",
                    "BQ",
                    "BA",
                    "BW",
                    "BV",
                    "BR",
                    "IO",
                    "BN",
                    "BG",
                    "BF",
                    "BI",
                    "KH",
                    "CM",
                    "CA",
                    "CV",
                    "KY",
                    "CF",
                    "TD",
                    "CL",
                    "CN",
                    "CX",
                    "CC",
                    "CO",
                    "KM",
                    "CG",
                    "CD",
                    "CK",
                    "CR",
                    "CI",
                    "HR",
                    "CU",
                    "CW",
                    "CY",
                    "CZ",
                    "DK",
                    "DJ",
                    "DM",
                    "DO",
                    "EC",
                    "EG",
                    "SV",
                    "GQ",
                    "ER",
                    "EE",
                    "ET",
                    "FK",
                    "FO",
                    "FJ",
                    "FI",
                    "FR",
                    "GF",
                    "PF",
                    "TF",
                    "GA",
                    "GM",
                    "GE",
                    "DE",
                    "GH",
                    "GI",
                    "GR",
                    "GL",
                    "GD",
                    "GP",
                    "GU",
                    "GT",
                    "GG",
                    "GN",
                    "GW",
                    "GY",
                    "HT",
                    "HM",
                    "VA",
                    "HN",
                    "HK",
                    "HU",
                    "IS",
                    "IN",
                    "ID",
                    "IR",
                    "IQ",
                    "IE",
                    "IM",
                    "IL",
                    "IT",
                    "JM",
                    "JP",
                    "JE",
                    "JO",
                    "KZ",
                    "KE",
                    "KI",
                    "KP",
                    "KR",
                    "XK",
                    "KW",
                    "KG",
                    "LA",
                    "LV",
                    "LB",
                    "LS",
                    "LR",
                    "LY",
                    "LI",
                    "LT",
                    "LU",
                    "MO",
                    "MK",
                    "MG",
                    "MW",
                    "MY",
                    "MV",
                    "ML",
                    "MT",
                    "MH",
                    "MQ",
                    "MR",
                    "MU",
                    "YT",
                    "MX",
                    "FM",
                    "MD",
                    "MC",
                    "MN",
                    "ME",
                    "MS",
                    "MA",
                    "MZ",
                    "MM",
                    "NA",
                    "NR",
                    "NP",
                    "NL",
                    "NC",
                    "NZ",
                    "NI",
                    "NE",
                    "NG",
                    "NU",
                    "NF",
                    "MP",
                    "NO",
                    "OM",
                    "PK",
                    "PW",
                    "PS",
                    "PA",
                    "PG",
                    "PY",
                    "PE",
                    "PH",
                    "PN",
                    "PL",
                    "PT",
                    "PR",
                    "QA",
                    "RE",
                    "RO",
                    "RU",
                    "RW",
                    "BL",
                    "SH",
                    "KN",
                    "LC",
                    "MF",
                    "PM",
                    "VC",
                    "WS",
                    "SM",
                    "ST",
                    "SA",
                    "SN",
                    "RS",
                    "SC",
                    "SL",
                    "SG",
                    "SX",
                    "SK",
                    "SI",
                    "SB",
                    "SO",
                    "ZA",
                    "GS",
                    "SS",
                    "ES",
                    "LK",
                    "SD",
                    "SR",
                    "SJ",
                    "SZ",
                    "SE",
                    "CH",
                    "SY",
                    "TW",
                    "TJ",
                    "TZ",
                    "TH",
                    "TL",
                    "TG",
                    "TK",
                    "TO",
                    "TT",
                    "TN",
                    "TR",
                    "TM",
                    "TC",
                    "TV",
                    "UG",
                    "UA",
                    "AE",
                    "GB",
                    "US",
                    "UM",
                    "UY",
                    "UZ",
                    "VU",
                    "VE",
                    "VN",
                    "VG",
                    "VI",
                    "WF",
                    "EH",
                    "YE",
                    "ZM",
                    "ZW"
                  ]
                },
                "state": {
                  "description": "When the selected country is one of US, AU, CA, UM or RO",
                  "anyOf": [
                    {
                      "title": "US State",
                      "description": "When the country is US.",
                      "type": "string",
                      "enum": [
                        "AL",
                        "AK",
                        "AS",
                        "AZ",
                        "AR",
                        "CA",
                        "CO",
                        "CT",
                        "DE",
                        "DC",
                        "FM",
                        "FL",
                        "GA",
                        "GU",
                        "HI",
                        "ID",
                        "IL",
                        "IN",
                        "IA",
                        "KS",
                        "KY",
                        "LA",
                        "ME",
                        "MH",
                        "MD",
                        "MA",
                        "MI",
                        "MN",
                        "MS",
                        "MO",
                        "MT",
                        "NE",
                        "NV",
                        "NH",
                        "NJ",
                        "NM",
                        "NY",
                        "NC",
                        "ND",
                        "MP",
                        "OH",
                        "OK",
                        "OR",
                        "PW",
                        "PA",
                        "PR",
                        "RI",
                        "SC",
                        "SD",
                        "TN",
                        "TX",
                        "UT",
                        "VT",
                        "VI",
                        "VA",
                        "WA",
                        "WV",
                        "WI",
                        "WY"
                      ]
                    },
                    {
                      "title": "Australian State",
                      "description": "When the country is AU.",
                      "type": "string",
                      "enum": [
                        "NSW",
                        "VIC",
                        "QLD",
                        "WA",
                        "SA",
                        "TAS",
                        "ACT",
                        "NT",
                        "JBT",
                        "CX",
                        "NF",
                        "CC",
                        "AQ",
                        "CSI",
                        "ACI",
                        "HM"
                      ]
                    },
                    {
                      "title": "Canadian Province",
                      "description": "When the country is CA.",
                      "type": "string",
                      "enum": [
                        "AB",
                        "BC",
                        "MB",
                        "NB",
                        "NL",
                        "NT",
                        "NS",
                        "NU",
                        "ON",
                        "PE",
                        "QC",
                        "SK",
                        "YT"
                      ]
                    },
                    {
                      "title": "US Minor Outlying Islands Territory",
                      "description": "When the country is UM.",
                      "type": "string",
                      "enum": [
                        "81",
                        "84",
                        "85",
                        "67",
                        "89",
                        "71",
                        "76",
                        "95",
                        "79"
                      ]
                    },
                    {
                      "title": "Romanian County",
                      "description": "When the country is RO.",
                      "type": "string",
                      "enum": [
                        "AB",
                        "AR",
                        "AG",
                        "BC",
                        "BH",
                        "BN",
                        "BT",
                        "BV",
                        "BR",
                        "B",
                        "BZ",
                        "CL",
                        "CS",
                        "CT",
                        "CV",
                        "DB",
                        "DJ",
                        "GL",
                        "GR",
                        "GJ",
                        "HR",
                        "HD",
                        "IL",
                        "IS",
                        "IF",
                        "MM",
                        "MH",
                        "MS",
                        "NT",
                        "OT",
                        "PH",
                        "SM",
                        "SJ",
                        "SB",
                        "SV",
                        "TR",
                        "TM",
                        "TL",
                        "VS",
                        "VL",
                        "VN"
                      ]
                    }
                  ]
                },
                "postcode": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "Postal/ZIP code"
                },
                "contactPerson": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "Primary contact person name"
                },
                "phone": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "Contact phone number"
                },
                "email": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "Contact email address"
                },
                "faultNotificationsEmail": {
                  "type": "string",
                  "format": "email",
                  "maxLength": 255,
                  "description": "Email address for receiving fault notifications"
                },
                "businessOperationalContext": {
                  "type": "string",
                  "description": "Long-form business context and operational notes"
                },
                "capabilities": {
                  "type": "object",
                  "properties": {
                    "canControlChargePoints": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether the sub-operator can control charge points"
                    },
                    "canControlTariff": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether the sub-operator can control tariffs"
                    },
                    "canControlTariffGroups": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether the sub-operator can control tariff groups"
                    },
                    "canControlPartnersTariffsAndTariffGroups": {
                      "type": "boolean",
                      "default": false,
                      "description": "Whether the sub-operator can control partners' tariffs and tariff groups"
                    }
                  }
                },
                "partnerIds": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "List of associated partner IDs"
                },
                "id": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "Unique identifier for the sub-operator"
                },
                "operatorId": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "Owning operator ID"
                },
                "name": {
                  "type": "string",
                  "maxLength": 255,
                  "deprecated": true,
                  "description": "**This property is deprecated. Use `translatedName` instead.**\n\nIn responses the value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedName`.\n\nNote that `filter[name]` matches the English (`en`) translation only and applies no fallback, so a sub-operator whose value here came from the operator's default locale or from the originally stored value is not matched by filtering on the returned string.\n\nDisplay name of the sub-operator\n"
                },
                "city": {
                  "type": "string",
                  "maxLength": 255,
                  "deprecated": true,
                  "description": "**This property is deprecated. Use `translatedCity` instead.**\n\nIn responses the value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedCity`.\n\nCity name\n"
                },
                "region": {
                  "deprecated": true,
                  "description": "When country is not in US, AU, CA, UM or RO, you can provide the region",
                  "type": "string",
                  "nullable": true
                },
                "address": {
                  "type": "string",
                  "maxLength": 255,
                  "deprecated": true,
                  "description": "**This property is deprecated. Use `translatedAddress` instead.**\n\nIn responses the value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedAddress`.\n\nStreet address\n"
                },
                "translatedName": {
                  "description": "Display name of the sub-operator in every locale it has been translated to. Empty when no translations exist.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "translatedAddress": {
                  "description": "Street address of the sub-operator in every locale it has been translated to. Empty when no translations exist.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "translatedCity": {
                  "description": "City of the sub-operator in every locale it has been translated to. Empty when no translations exist.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "translatedRegion": {
                  "description": "Region of the sub-operator in every locale it has been translated to. Empty when no translations exist.\n\nAbsent from the response when the sub-operator's country supports states (US, CA, AU, UM, RO) — `state` applies instead and is not translatable.\n",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "stripeConnect": {
                  "readOnly": true,
                  "description": "Stripe Connect account information. All fields are read-only.",
                  "type": "object",
                  "properties": {
                    "accountId": {
                      "type": "string",
                      "readOnly": true,
                      "description": "Stripe Connect account ID"
                    },
                    "onboardingCompleted": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Whether the Stripe onboarding process has been completed"
                    },
                    "chargesEnabled": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Whether the account can accept charges"
                    },
                    "directPaymentEnabled": {
                      "type": "boolean",
                      "readOnly": true,
                      "description": "Whether direct payment to this account is enabled"
                    },
                    "applicationFeeFixed": {
                      "type": "number",
                      "format": "float",
                      "readOnly": true,
                      "description": "Fixed application fee amount"
                    },
                    "applicationFeePercentage": {
                      "type": "number",
                      "format": "float",
                      "readOnly": true,
                      "description": "Application fee percentage"
                    }
                  },
                  "required": [
                    "accountId",
                    "onboardingCompleted",
                    "chargesEnabled",
                    "directPaymentEnabled"
                  ]
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subOperatorCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId",
              "name",
              "translatedName",
              "translatedAddress",
              "translatedCity",
              "businessName",
              "capabilities",
              "partnerIds",
              "lastUpdatedAt"
            ],
            "type": "object",
            "properties": {
              "businessName": {
                "type": "string",
                "maxLength": 255,
                "description": "Official business name for legal/financial purposes"
              },
              "externalId": {
                "type": "string",
                "maxLength": 255,
                "description": "External system identifier for integration purposes"
              },
              "regNo": {
                "type": "string",
                "maxLength": 255,
                "description": "Company registration number"
              },
              "taxNo": {
                "type": "string",
                "maxLength": 255,
                "description": "Tax identification number"
              },
              "country": {
                "description": "ISO 3166-1 alpha-2 country code",
                "type": "string",
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW"
                ]
              },
              "state": {
                "description": "When the selected country is one of US, AU, CA, UM or RO",
                "anyOf": [
                  {
                    "title": "US State",
                    "description": "When the country is US.",
                    "type": "string",
                    "enum": [
                      "AL",
                      "AK",
                      "AS",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FM",
                      "FL",
                      "GA",
                      "GU",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MH",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "MP",
                      "OH",
                      "OK",
                      "OR",
                      "PW",
                      "PA",
                      "PR",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VI",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY"
                    ]
                  },
                  {
                    "title": "Australian State",
                    "description": "When the country is AU.",
                    "type": "string",
                    "enum": [
                      "NSW",
                      "VIC",
                      "QLD",
                      "WA",
                      "SA",
                      "TAS",
                      "ACT",
                      "NT",
                      "JBT",
                      "CX",
                      "NF",
                      "CC",
                      "AQ",
                      "CSI",
                      "ACI",
                      "HM"
                    ]
                  },
                  {
                    "title": "Canadian Province",
                    "description": "When the country is CA.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "BC",
                      "MB",
                      "NB",
                      "NL",
                      "NT",
                      "NS",
                      "NU",
                      "ON",
                      "PE",
                      "QC",
                      "SK",
                      "YT"
                    ]
                  },
                  {
                    "title": "US Minor Outlying Islands Territory",
                    "description": "When the country is UM.",
                    "type": "string",
                    "enum": [
                      "81",
                      "84",
                      "85",
                      "67",
                      "89",
                      "71",
                      "76",
                      "95",
                      "79"
                    ]
                  },
                  {
                    "title": "Romanian County",
                    "description": "When the country is RO.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "AR",
                      "AG",
                      "BC",
                      "BH",
                      "BN",
                      "BT",
                      "BV",
                      "BR",
                      "B",
                      "BZ",
                      "CL",
                      "CS",
                      "CT",
                      "CV",
                      "DB",
                      "DJ",
                      "GL",
                      "GR",
                      "GJ",
                      "HR",
                      "HD",
                      "IL",
                      "IS",
                      "IF",
                      "MM",
                      "MH",
                      "MS",
                      "NT",
                      "OT",
                      "PH",
                      "SM",
                      "SJ",
                      "SB",
                      "SV",
                      "TR",
                      "TM",
                      "TL",
                      "VS",
                      "VL",
                      "VN"
                    ]
                  }
                ]
              },
              "postcode": {
                "type": "string",
                "maxLength": 255,
                "description": "Postal/ZIP code"
              },
              "contactPerson": {
                "type": "string",
                "maxLength": 255,
                "description": "Primary contact person name"
              },
              "phone": {
                "type": "string",
                "maxLength": 255,
                "description": "Contact phone number"
              },
              "email": {
                "type": "string",
                "maxLength": 255,
                "description": "Contact email address"
              },
              "faultNotificationsEmail": {
                "type": "string",
                "format": "email",
                "maxLength": 255,
                "description": "Email address for receiving fault notifications"
              },
              "businessOperationalContext": {
                "type": "string",
                "description": "Long-form business context and operational notes"
              },
              "capabilities": {
                "type": "object",
                "properties": {
                  "canControlChargePoints": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether the sub-operator can control charge points"
                  },
                  "canControlTariff": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether the sub-operator can control tariffs"
                  },
                  "canControlTariffGroups": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether the sub-operator can control tariff groups"
                  },
                  "canControlPartnersTariffsAndTariffGroups": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether the sub-operator can control partners' tariffs and tariff groups"
                  }
                }
              },
              "partnerIds": {
                "type": "array",
                "items": {
                  "type": "integer"
                },
                "description": "List of associated partner IDs"
              },
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "Unique identifier for the sub-operator"
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "Owning operator ID"
              },
              "name": {
                "type": "string",
                "maxLength": 255,
                "deprecated": true,
                "description": "**This property is deprecated. Use `translatedName` instead.**\n\nIn responses the value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedName`.\n\nNote that `filter[name]` matches the English (`en`) translation only and applies no fallback, so a sub-operator whose value here came from the operator's default locale or from the originally stored value is not matched by filtering on the returned string.\n\nDisplay name of the sub-operator\n"
              },
              "city": {
                "type": "string",
                "maxLength": 255,
                "deprecated": true,
                "description": "**This property is deprecated. Use `translatedCity` instead.**\n\nIn responses the value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedCity`.\n\nCity name\n"
              },
              "region": {
                "deprecated": true,
                "description": "When country is not in US, AU, CA, UM or RO, you can provide the region",
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "maxLength": 255,
                "deprecated": true,
                "description": "**This property is deprecated. Use `translatedAddress` instead.**\n\nIn responses the value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedAddress`.\n\nStreet address\n"
              },
              "translatedName": {
                "description": "Display name of the sub-operator in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "translatedAddress": {
                "description": "Street address of the sub-operator in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "translatedCity": {
                "description": "City of the sub-operator in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "translatedRegion": {
                "description": "Region of the sub-operator in every locale it has been translated to. Empty when no translations exist.\n\nAbsent from the response when the sub-operator's country supports states (US, CA, AU, UM, RO) — `state` applies instead and is not translatable.\n",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "stripeConnect": {
                "readOnly": true,
                "description": "Stripe Connect account information. All fields are read-only.",
                "type": "object",
                "properties": {
                  "accountId": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Stripe Connect account ID"
                  },
                  "onboardingCompleted": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether the Stripe onboarding process has been completed"
                  },
                  "chargesEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether the account can accept charges"
                  },
                  "directPaymentEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether direct payment to this account is enabled"
                  },
                  "applicationFeeFixed": {
                    "type": "number",
                    "format": "float",
                    "readOnly": true,
                    "description": "Fixed application fee amount"
                  },
                  "applicationFeePercentage": {
                    "type": "number",
                    "format": "float",
                    "readOnly": true,
                    "description": "Application fee percentage"
                  }
                },
                "required": [
                  "accountId",
                  "onboardingCompleted",
                  "chargesEnabled",
                  "directPaymentEnabled"
                ]
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subOperatorRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId",
              "name",
              "translatedName",
              "translatedAddress",
              "translatedCity",
              "businessName",
              "capabilities",
              "partnerIds",
              "lastUpdatedAt"
            ],
            "type": "object",
            "properties": {
              "businessName": {
                "type": "string",
                "maxLength": 255,
                "description": "Official business name for legal/financial purposes"
              },
              "externalId": {
                "type": "string",
                "maxLength": 255,
                "description": "External system identifier for integration purposes"
              },
              "regNo": {
                "type": "string",
                "maxLength": 255,
                "description": "Company registration number"
              },
              "taxNo": {
                "type": "string",
                "maxLength": 255,
                "description": "Tax identification number"
              },
              "country": {
                "description": "ISO 3166-1 alpha-2 country code",
                "type": "string",
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW"
                ]
              },
              "state": {
                "description": "When the selected country is one of US, AU, CA, UM or RO",
                "anyOf": [
                  {
                    "title": "US State",
                    "description": "When the country is US.",
                    "type": "string",
                    "enum": [
                      "AL",
                      "AK",
                      "AS",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FM",
                      "FL",
                      "GA",
                      "GU",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MH",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "MP",
                      "OH",
                      "OK",
                      "OR",
                      "PW",
                      "PA",
                      "PR",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VI",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY"
                    ]
                  },
                  {
                    "title": "Australian State",
                    "description": "When the country is AU.",
                    "type": "string",
                    "enum": [
                      "NSW",
                      "VIC",
                      "QLD",
                      "WA",
                      "SA",
                      "TAS",
                      "ACT",
                      "NT",
                      "JBT",
                      "CX",
                      "NF",
                      "CC",
                      "AQ",
                      "CSI",
                      "ACI",
                      "HM"
                    ]
                  },
                  {
                    "title": "Canadian Province",
                    "description": "When the country is CA.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "BC",
                      "MB",
                      "NB",
                      "NL",
                      "NT",
                      "NS",
                      "NU",
                      "ON",
                      "PE",
                      "QC",
                      "SK",
                      "YT"
                    ]
                  },
                  {
                    "title": "US Minor Outlying Islands Territory",
                    "description": "When the country is UM.",
                    "type": "string",
                    "enum": [
                      "81",
                      "84",
                      "85",
                      "67",
                      "89",
                      "71",
                      "76",
                      "95",
                      "79"
                    ]
                  },
                  {
                    "title": "Romanian County",
                    "description": "When the country is RO.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "AR",
                      "AG",
                      "BC",
                      "BH",
                      "BN",
                      "BT",
                      "BV",
                      "BR",
                      "B",
                      "BZ",
                      "CL",
                      "CS",
                      "CT",
                      "CV",
                      "DB",
                      "DJ",
                      "GL",
                      "GR",
                      "GJ",
                      "HR",
                      "HD",
                      "IL",
                      "IS",
                      "IF",
                      "MM",
                      "MH",
                      "MS",
                      "NT",
                      "OT",
                      "PH",
                      "SM",
                      "SJ",
                      "SB",
                      "SV",
                      "TR",
                      "TM",
                      "TL",
                      "VS",
                      "VL",
                      "VN"
                    ]
                  }
                ]
              },
              "postcode": {
                "type": "string",
                "maxLength": 255,
                "description": "Postal/ZIP code"
              },
              "contactPerson": {
                "type": "string",
                "maxLength": 255,
                "description": "Primary contact person name"
              },
              "phone": {
                "type": "string",
                "maxLength": 255,
                "description": "Contact phone number"
              },
              "email": {
                "type": "string",
                "maxLength": 255,
                "description": "Contact email address"
              },
              "faultNotificationsEmail": {
                "type": "string",
                "format": "email",
                "maxLength": 255,
                "description": "Email address for receiving fault notifications"
              },
              "businessOperationalContext": {
                "type": "string",
                "description": "Long-form business context and operational notes"
              },
              "capabilities": {
                "type": "object",
                "properties": {
                  "canControlChargePoints": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether the sub-operator can control charge points"
                  },
                  "canControlTariff": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether the sub-operator can control tariffs"
                  },
                  "canControlTariffGroups": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether the sub-operator can control tariff groups"
                  },
                  "canControlPartnersTariffsAndTariffGroups": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether the sub-operator can control partners' tariffs and tariff groups"
                  }
                }
              },
              "partnerIds": {
                "type": "array",
                "items": {
                  "type": "integer"
                },
                "description": "List of associated partner IDs"
              },
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "Unique identifier for the sub-operator"
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "Owning operator ID"
              },
              "name": {
                "type": "string",
                "maxLength": 255,
                "deprecated": true,
                "description": "**This property is deprecated. Use `translatedName` instead.**\n\nIn responses the value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedName`.\n\nNote that `filter[name]` matches the English (`en`) translation only and applies no fallback, so a sub-operator whose value here came from the operator's default locale or from the originally stored value is not matched by filtering on the returned string.\n\nDisplay name of the sub-operator\n"
              },
              "city": {
                "type": "string",
                "maxLength": 255,
                "deprecated": true,
                "description": "**This property is deprecated. Use `translatedCity` instead.**\n\nIn responses the value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedCity`.\n\nCity name\n"
              },
              "region": {
                "deprecated": true,
                "description": "When country is not in US, AU, CA, UM or RO, you can provide the region",
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "maxLength": 255,
                "deprecated": true,
                "description": "**This property is deprecated. Use `translatedAddress` instead.**\n\nIn responses the value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedAddress`.\n\nStreet address\n"
              },
              "translatedName": {
                "description": "Display name of the sub-operator in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "translatedAddress": {
                "description": "Street address of the sub-operator in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "translatedCity": {
                "description": "City of the sub-operator in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "translatedRegion": {
                "description": "Region of the sub-operator in every locale it has been translated to. Empty when no translations exist.\n\nAbsent from the response when the sub-operator's country supports states (US, CA, AU, UM, RO) — `state` applies instead and is not translatable.\n",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "stripeConnect": {
                "readOnly": true,
                "description": "Stripe Connect account information. All fields are read-only.",
                "type": "object",
                "properties": {
                  "accountId": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Stripe Connect account ID"
                  },
                  "onboardingCompleted": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether the Stripe onboarding process has been completed"
                  },
                  "chargesEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether the account can accept charges"
                  },
                  "directPaymentEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether direct payment to this account is enabled"
                  },
                  "applicationFeeFixed": {
                    "type": "number",
                    "format": "float",
                    "readOnly": true,
                    "description": "Fixed application fee amount"
                  },
                  "applicationFeePercentage": {
                    "type": "number",
                    "format": "float",
                    "readOnly": true,
                    "description": "Application fee percentage"
                  }
                },
                "required": [
                  "accountId",
                  "onboardingCompleted",
                  "chargesEnabled",
                  "directPaymentEnabled"
                ]
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subOperatorDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subOperatorUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "required": [
              "id",
              "operatorId",
              "name",
              "translatedName",
              "translatedAddress",
              "translatedCity",
              "businessName",
              "capabilities",
              "partnerIds",
              "lastUpdatedAt"
            ],
            "type": "object",
            "properties": {
              "businessName": {
                "type": "string",
                "maxLength": 255,
                "description": "Official business name for legal/financial purposes"
              },
              "externalId": {
                "type": "string",
                "maxLength": 255,
                "description": "External system identifier for integration purposes"
              },
              "regNo": {
                "type": "string",
                "maxLength": 255,
                "description": "Company registration number"
              },
              "taxNo": {
                "type": "string",
                "maxLength": 255,
                "description": "Tax identification number"
              },
              "country": {
                "description": "ISO 3166-1 alpha-2 country code",
                "type": "string",
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW"
                ]
              },
              "state": {
                "description": "When the selected country is one of US, AU, CA, UM or RO",
                "anyOf": [
                  {
                    "title": "US State",
                    "description": "When the country is US.",
                    "type": "string",
                    "enum": [
                      "AL",
                      "AK",
                      "AS",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FM",
                      "FL",
                      "GA",
                      "GU",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MH",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "MP",
                      "OH",
                      "OK",
                      "OR",
                      "PW",
                      "PA",
                      "PR",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VI",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY"
                    ]
                  },
                  {
                    "title": "Australian State",
                    "description": "When the country is AU.",
                    "type": "string",
                    "enum": [
                      "NSW",
                      "VIC",
                      "QLD",
                      "WA",
                      "SA",
                      "TAS",
                      "ACT",
                      "NT",
                      "JBT",
                      "CX",
                      "NF",
                      "CC",
                      "AQ",
                      "CSI",
                      "ACI",
                      "HM"
                    ]
                  },
                  {
                    "title": "Canadian Province",
                    "description": "When the country is CA.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "BC",
                      "MB",
                      "NB",
                      "NL",
                      "NT",
                      "NS",
                      "NU",
                      "ON",
                      "PE",
                      "QC",
                      "SK",
                      "YT"
                    ]
                  },
                  {
                    "title": "US Minor Outlying Islands Territory",
                    "description": "When the country is UM.",
                    "type": "string",
                    "enum": [
                      "81",
                      "84",
                      "85",
                      "67",
                      "89",
                      "71",
                      "76",
                      "95",
                      "79"
                    ]
                  },
                  {
                    "title": "Romanian County",
                    "description": "When the country is RO.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "AR",
                      "AG",
                      "BC",
                      "BH",
                      "BN",
                      "BT",
                      "BV",
                      "BR",
                      "B",
                      "BZ",
                      "CL",
                      "CS",
                      "CT",
                      "CV",
                      "DB",
                      "DJ",
                      "GL",
                      "GR",
                      "GJ",
                      "HR",
                      "HD",
                      "IL",
                      "IS",
                      "IF",
                      "MM",
                      "MH",
                      "MS",
                      "NT",
                      "OT",
                      "PH",
                      "SM",
                      "SJ",
                      "SB",
                      "SV",
                      "TR",
                      "TM",
                      "TL",
                      "VS",
                      "VL",
                      "VN"
                    ]
                  }
                ]
              },
              "postcode": {
                "type": "string",
                "maxLength": 255,
                "description": "Postal/ZIP code"
              },
              "contactPerson": {
                "type": "string",
                "maxLength": 255,
                "description": "Primary contact person name"
              },
              "phone": {
                "type": "string",
                "maxLength": 255,
                "description": "Contact phone number"
              },
              "email": {
                "type": "string",
                "maxLength": 255,
                "description": "Contact email address"
              },
              "faultNotificationsEmail": {
                "type": "string",
                "format": "email",
                "maxLength": 255,
                "description": "Email address for receiving fault notifications"
              },
              "businessOperationalContext": {
                "type": "string",
                "description": "Long-form business context and operational notes"
              },
              "capabilities": {
                "type": "object",
                "properties": {
                  "canControlChargePoints": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether the sub-operator can control charge points"
                  },
                  "canControlTariff": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether the sub-operator can control tariffs"
                  },
                  "canControlTariffGroups": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether the sub-operator can control tariff groups"
                  },
                  "canControlPartnersTariffsAndTariffGroups": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether the sub-operator can control partners' tariffs and tariff groups"
                  }
                }
              },
              "partnerIds": {
                "type": "array",
                "items": {
                  "type": "integer"
                },
                "description": "List of associated partner IDs"
              },
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "Unique identifier for the sub-operator"
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "Owning operator ID"
              },
              "name": {
                "type": "string",
                "maxLength": 255,
                "deprecated": true,
                "description": "**This property is deprecated. Use `translatedName` instead.**\n\nIn responses the value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedName`.\n\nNote that `filter[name]` matches the English (`en`) translation only and applies no fallback, so a sub-operator whose value here came from the operator's default locale or from the originally stored value is not matched by filtering on the returned string.\n\nDisplay name of the sub-operator\n"
              },
              "city": {
                "type": "string",
                "maxLength": 255,
                "deprecated": true,
                "description": "**This property is deprecated. Use `translatedCity` instead.**\n\nIn responses the value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedCity`.\n\nCity name\n"
              },
              "region": {
                "deprecated": true,
                "description": "When country is not in US, AU, CA, UM or RO, you can provide the region",
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "maxLength": 255,
                "deprecated": true,
                "description": "**This property is deprecated. Use `translatedAddress` instead.**\n\nIn responses the value is resolved in the following order: the English (`en`) locale translation; if that is empty, the translation in the operator's default locale; if that is also empty, the originally stored value. To read this field in a specific locale, use `translatedAddress`.\n\nStreet address\n"
              },
              "translatedName": {
                "description": "Display name of the sub-operator in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "translatedAddress": {
                "description": "Street address of the sub-operator in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "translatedCity": {
                "description": "City of the sub-operator in every locale it has been translated to. Empty when no translations exist.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "translatedRegion": {
                "description": "Region of the sub-operator in every locale it has been translated to. Empty when no translations exist.\n\nAbsent from the response when the sub-operator's country supports states (US, CA, AU, UM, RO) — `state` applies instead and is not translatable.\n",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "stripeConnect": {
                "readOnly": true,
                "description": "Stripe Connect account information. All fields are read-only.",
                "type": "object",
                "properties": {
                  "accountId": {
                    "type": "string",
                    "readOnly": true,
                    "description": "Stripe Connect account ID"
                  },
                  "onboardingCompleted": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether the Stripe onboarding process has been completed"
                  },
                  "chargesEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether the account can accept charges"
                  },
                  "directPaymentEnabled": {
                    "type": "boolean",
                    "readOnly": true,
                    "description": "Whether direct payment to this account is enabled"
                  },
                  "applicationFeeFixed": {
                    "type": "number",
                    "format": "float",
                    "readOnly": true,
                    "description": "Fixed application fee amount"
                  },
                  "applicationFeePercentage": {
                    "type": "number",
                    "format": "float",
                    "readOnly": true,
                    "description": "Application fee percentage"
                  }
                },
                "required": [
                  "accountId",
                  "onboardingCompleted",
                  "chargesEnabled",
                  "directPaymentEnabled"
                ]
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subOperatorNotesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "summary",
                "pinned",
                "createdAt",
                "updatedAt"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Unique identifier for the note",
                  "example": 123
                },
                "summary": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "Short summary or title of the note",
                  "example": "Important maintenance note"
                },
                "details": {
                  "type": "string",
                  "maxLength": 2000,
                  "description": "Detailed content of the note. Omitted when empty.",
                  "example": "This charge point requires monthly inspection due to high usage."
                },
                "pinned": {
                  "type": "boolean",
                  "description": "Whether the note is pinned (appears first in listings)",
                  "example": true
                },
                "createdByAdminId": {
                  "type": "integer",
                  "description": "ID of the admin who created the note. Omitted when unavailable.",
                  "example": 1
                },
                "updatedByAdminId": {
                  "type": "integer",
                  "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                  "example": 2
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO-8601 timestamp when the note was created",
                  "example": "2025-12-16T10:00:00Z"
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO-8601 timestamp when the note was last updated",
                  "example": "2025-12-16T12:00:00Z"
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subOperatorNoteCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "pinned",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier for the note",
                "example": 123
              },
              "summary": {
                "type": "string",
                "maxLength": 255,
                "description": "Short summary or title of the note",
                "example": "Important maintenance note"
              },
              "details": {
                "type": "string",
                "maxLength": 2000,
                "description": "Detailed content of the note. Omitted when empty.",
                "example": "This charge point requires monthly inspection due to high usage."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the note is pinned (appears first in listings)",
                "example": true
              },
              "createdByAdminId": {
                "type": "integer",
                "description": "ID of the admin who created the note. Omitted when unavailable.",
                "example": 1
              },
              "updatedByAdminId": {
                "type": "integer",
                "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                "example": 2
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was created",
                "example": "2025-12-16T10:00:00Z"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was last updated",
                "example": "2025-12-16T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subOperatorNoteShow": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "pinned",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier for the note",
                "example": 123
              },
              "summary": {
                "type": "string",
                "maxLength": 255,
                "description": "Short summary or title of the note",
                "example": "Important maintenance note"
              },
              "details": {
                "type": "string",
                "maxLength": 2000,
                "description": "Detailed content of the note. Omitted when empty.",
                "example": "This charge point requires monthly inspection due to high usage."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the note is pinned (appears first in listings)",
                "example": true
              },
              "createdByAdminId": {
                "type": "integer",
                "description": "ID of the admin who created the note. Omitted when unavailable.",
                "example": 1
              },
              "updatedByAdminId": {
                "type": "integer",
                "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                "example": 2
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was created",
                "example": "2025-12-16T10:00:00Z"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was last updated",
                "example": "2025-12-16T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subOperatorNoteDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subOperatorNoteUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "pinned",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier for the note",
                "example": 123
              },
              "summary": {
                "type": "string",
                "maxLength": 255,
                "description": "Short summary or title of the note",
                "example": "Important maintenance note"
              },
              "details": {
                "type": "string",
                "maxLength": 2000,
                "description": "Detailed content of the note. Omitted when empty.",
                "example": "This charge point requires monthly inspection due to high usage."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the note is pinned (appears first in listings)",
                "example": true
              },
              "createdByAdminId": {
                "type": "integer",
                "description": "ID of the admin who created the note. Omitted when unavailable.",
                "example": 1
              },
              "updatedByAdminId": {
                "type": "integer",
                "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                "example": 2
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was created",
                "example": "2025-12-16T10:00:00Z"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was last updated",
                "example": "2025-12-16T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subscriptionPlansListingDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "name": {
                  "type": "string"
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "name"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subscriptionPlansListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "name": {
                  "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "description": {
                  "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "renewalCycle": {
                  "type": "string",
                  "enum": [
                    "monthly",
                    "annually"
                  ]
                },
                "freeRenewalPeriods": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The number of renewal periods that are free of charge. This is only applicable for pre-paid plans."
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "pre-paid",
                    "post-paid"
                  ]
                },
                "baseFee": {
                  "type": "number",
                  "format": "float",
                  "nullable": true,
                  "description": "For pre-paid plans this is the price, for post-paid plans this is the base fee."
                },
                "baseFeeAppliesPerEachHomeCharger": {
                  "type": "boolean",
                  "nullable": true,
                  "default": false,
                  "deprecated": true,
                  "description": "Deprecated: Use feePerEachPersonalChargePoint instead."
                },
                "feePerEachPersonalChargePoint": {
                  "type": "number",
                  "format": "float",
                  "nullable": true,
                  "description": "Applies separately per each personal charge point owned by the subscriber that requires this Subscription plan. These fees are added to the Base fee of the Subscription plan, if any."
                },
                "postPaidChargingSessionsAccumulation": {
                  "type": "string",
                  "enum": [
                    "none",
                    "personal",
                    "personal_commercial"
                  ],
                  "default": "none",
                  "description": "Indicates if charging sessions at personal, commercial+personal charge points are included in the post-paid subscription and would be billed at the end of the billing cycle or when a threshold is met, if there is such."
                },
                "billingUsageThreshold": {
                  "type": "integer",
                  "format": "decimal",
                  "nullable": true,
                  "description": "If this threshold is reached, the amount due for the subscription would be billed immediately instead of waiting for the end of the billing period."
                },
                "billingType": {
                  "type": "string",
                  "enum": [
                    "default",
                    "internal",
                    "external"
                  ],
                  "description": "Applicable only for post-paid subscription plans when external billing is enabled. Controls the billing method used for this subscription plan."
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "enabled",
                    "disabled"
                  ]
                },
                "allowance": {
                  "type": "object",
                  "properties": {
                    "resetCycle": {
                      "type": "string",
                      "enum": [
                        "as_renewal_cycle",
                        "after_each_session",
                        "after_24_hours",
                        "after_each_week",
                        "after_each_month",
                        "after_each_year"
                      ]
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "none",
                        "combined",
                        "separate"
                      ]
                    },
                    "homeChargersOnly": {
                      "type": "boolean",
                      "default": false,
                      "description": "When true the allowance can only be used on the home charge points owned by the user. In that case all other allowance restrictions have no effect ."
                    },
                    "includedCountries": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "description": "The allowance can only be used on charge points in countries in this list. When empty the allowance is valid for charge points in all countries, except the ones explicitly listed in the excludedCountries."
                    },
                    "excludedCountries": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "description": "The allowance cannot be used on charge points in the countries in this list."
                    },
                    "excludeRoaming": {
                      "type": "boolean",
                      "default": false,
                      "description": "When true the allowance cannot be used on roaming charge points."
                    },
                    "includedPartnerChargePoints": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      },
                      "description": "An array of Partner IDs. The allowance can only be used on charge points of Partners in this list. When empty the allowance is valid for charge points of any Partner, except the ones explicitly listed in the excludedPartnerChargePoints."
                    },
                    "excludedPartnerChargePoints": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      },
                      "description": "An array of Partner IDs. The allowance cannot be used on charge points of Partners in this list."
                    },
                    "combined": {
                      "description": "The amount of kWh included - combined for AC and DC, should be provided if the type is combined.",
                      "type": "integer",
                      "nullable": true,
                      "minimum": 0,
                      "maximum": 4000000
                    },
                    "ac": {
                      "description": "The amount of kWh included for AC, should be provided if the type is separate.",
                      "type": "integer",
                      "nullable": true,
                      "minimum": 0,
                      "maximum": 4000000
                    },
                    "dc": {
                      "description": "The amount of kWh included for DC, should be provided if the type is separate.",
                      "type": "integer",
                      "nullable": true,
                      "minimum": 0,
                      "maximum": 4000000
                    }
                  }
                },
                "visibilityRestrictions": {
                  "type": "object",
                  "description": "Defines which users can view and subscribe to the plan via the app",
                  "properties": {
                    "includedPartnerUsers": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      },
                      "description": "An array of Partner IDs. The Subscription plan is available only to users invited (and accepted) or created by one of the Partners in this list. When empty the plan is available to all users, except the ones of Partners listed in excludedPartnerUsers."
                    },
                    "excludedPartnerUsers": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      },
                      "description": "An array of Partner IDs. The Subscription plan is not available to users of the Partners in this list."
                    },
                    "includedUserGroups": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      },
                      "description": "An array of User Group IDs. The Subscription plan is available only to users with a User Group that is in this list. When empty the plan is available to all users, except the ones with a User Group listed in excludedUserGroups."
                    },
                    "excludedUserGroups": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      },
                      "description": "An array of User Group IDs. The Subscription plan is not available to users with a User Group that is in this list."
                    }
                  }
                },
                "externalId": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "An optional external identifier for integration purposes"
                },
                "replacementPlanId": {
                  "type": "integer",
                  "description": "The ID of the subscription plan that was used to replace the current one."
                },
                "replacedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The date from which the new subscription plan actively replaces the current one."
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "operatorId",
                "name",
                "description",
                "renewalCycle",
                "type",
                "status"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "405": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subscriptionPlanCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "description": {
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "renewalCycle": {
                "type": "string",
                "enum": [
                  "monthly",
                  "annually"
                ]
              },
              "freeRenewalPeriods": {
                "type": "integer",
                "nullable": true,
                "description": "The number of renewal periods that are free of charge. This is only applicable for pre-paid plans."
              },
              "type": {
                "type": "string",
                "enum": [
                  "pre-paid",
                  "post-paid"
                ]
              },
              "baseFee": {
                "type": "number",
                "format": "float",
                "nullable": true,
                "description": "For pre-paid plans this is the price, for post-paid plans this is the base fee."
              },
              "baseFeeAppliesPerEachHomeCharger": {
                "type": "boolean",
                "nullable": true,
                "default": false,
                "deprecated": true,
                "description": "Deprecated: Use feePerEachPersonalChargePoint instead."
              },
              "feePerEachPersonalChargePoint": {
                "type": "number",
                "format": "float",
                "nullable": true,
                "description": "Applies separately per each personal charge point owned by the subscriber that requires this Subscription plan. These fees are added to the Base fee of the Subscription plan, if any."
              },
              "postPaidChargingSessionsAccumulation": {
                "type": "string",
                "enum": [
                  "none",
                  "personal",
                  "personal_commercial"
                ],
                "default": "none",
                "description": "Indicates if charging sessions at personal, commercial+personal charge points are included in the post-paid subscription and would be billed at the end of the billing cycle or when a threshold is met, if there is such."
              },
              "billingUsageThreshold": {
                "type": "integer",
                "format": "decimal",
                "nullable": true,
                "description": "If this threshold is reached, the amount due for the subscription would be billed immediately instead of waiting for the end of the billing period."
              },
              "billingType": {
                "type": "string",
                "enum": [
                  "default",
                  "internal",
                  "external"
                ],
                "description": "Applicable only for post-paid subscription plans when external billing is enabled. Controls the billing method used for this subscription plan."
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "allowance": {
                "type": "object",
                "properties": {
                  "resetCycle": {
                    "type": "string",
                    "enum": [
                      "as_renewal_cycle",
                      "after_each_session",
                      "after_24_hours",
                      "after_each_week",
                      "after_each_month",
                      "after_each_year"
                    ]
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "none",
                      "combined",
                      "separate"
                    ]
                  },
                  "homeChargersOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "When true the allowance can only be used on the home charge points owned by the user. In that case all other allowance restrictions have no effect ."
                  },
                  "includedCountries": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "AF",
                        "AX",
                        "AL",
                        "DZ",
                        "AS",
                        "AD",
                        "AO",
                        "AI",
                        "AQ",
                        "AG",
                        "AR",
                        "AM",
                        "AW",
                        "AU",
                        "AT",
                        "AZ",
                        "BS",
                        "BH",
                        "BD",
                        "BB",
                        "BY",
                        "BE",
                        "BZ",
                        "BJ",
                        "BM",
                        "BT",
                        "BO",
                        "BQ",
                        "BA",
                        "BW",
                        "BV",
                        "BR",
                        "IO",
                        "BN",
                        "BG",
                        "BF",
                        "BI",
                        "KH",
                        "CM",
                        "CA",
                        "CV",
                        "KY",
                        "CF",
                        "TD",
                        "CL",
                        "CN",
                        "CX",
                        "CC",
                        "CO",
                        "KM",
                        "CG",
                        "CD",
                        "CK",
                        "CR",
                        "CI",
                        "HR",
                        "CU",
                        "CW",
                        "CY",
                        "CZ",
                        "DK",
                        "DJ",
                        "DM",
                        "DO",
                        "EC",
                        "EG",
                        "SV",
                        "GQ",
                        "ER",
                        "EE",
                        "ET",
                        "FK",
                        "FO",
                        "FJ",
                        "FI",
                        "FR",
                        "GF",
                        "PF",
                        "TF",
                        "GA",
                        "GM",
                        "GE",
                        "DE",
                        "GH",
                        "GI",
                        "GR",
                        "GL",
                        "GD",
                        "GP",
                        "GU",
                        "GT",
                        "GG",
                        "GN",
                        "GW",
                        "GY",
                        "HT",
                        "HM",
                        "VA",
                        "HN",
                        "HK",
                        "HU",
                        "IS",
                        "IN",
                        "ID",
                        "IR",
                        "IQ",
                        "IE",
                        "IM",
                        "IL",
                        "IT",
                        "JM",
                        "JP",
                        "JE",
                        "JO",
                        "KZ",
                        "KE",
                        "KI",
                        "KP",
                        "KR",
                        "XK",
                        "KW",
                        "KG",
                        "LA",
                        "LV",
                        "LB",
                        "LS",
                        "LR",
                        "LY",
                        "LI",
                        "LT",
                        "LU",
                        "MO",
                        "MK",
                        "MG",
                        "MW",
                        "MY",
                        "MV",
                        "ML",
                        "MT",
                        "MH",
                        "MQ",
                        "MR",
                        "MU",
                        "YT",
                        "MX",
                        "FM",
                        "MD",
                        "MC",
                        "MN",
                        "ME",
                        "MS",
                        "MA",
                        "MZ",
                        "MM",
                        "NA",
                        "NR",
                        "NP",
                        "NL",
                        "NC",
                        "NZ",
                        "NI",
                        "NE",
                        "NG",
                        "NU",
                        "NF",
                        "MP",
                        "NO",
                        "OM",
                        "PK",
                        "PW",
                        "PS",
                        "PA",
                        "PG",
                        "PY",
                        "PE",
                        "PH",
                        "PN",
                        "PL",
                        "PT",
                        "PR",
                        "QA",
                        "RE",
                        "RO",
                        "RU",
                        "RW",
                        "BL",
                        "SH",
                        "KN",
                        "LC",
                        "MF",
                        "PM",
                        "VC",
                        "WS",
                        "SM",
                        "ST",
                        "SA",
                        "SN",
                        "RS",
                        "SC",
                        "SL",
                        "SG",
                        "SX",
                        "SK",
                        "SI",
                        "SB",
                        "SO",
                        "ZA",
                        "GS",
                        "SS",
                        "ES",
                        "LK",
                        "SD",
                        "SR",
                        "SJ",
                        "SZ",
                        "SE",
                        "CH",
                        "SY",
                        "TW",
                        "TJ",
                        "TZ",
                        "TH",
                        "TL",
                        "TG",
                        "TK",
                        "TO",
                        "TT",
                        "TN",
                        "TR",
                        "TM",
                        "TC",
                        "TV",
                        "UG",
                        "UA",
                        "AE",
                        "GB",
                        "US",
                        "UM",
                        "UY",
                        "UZ",
                        "VU",
                        "VE",
                        "VN",
                        "VG",
                        "VI",
                        "WF",
                        "EH",
                        "YE",
                        "ZM",
                        "ZW"
                      ]
                    },
                    "description": "The allowance can only be used on charge points in countries in this list. When empty the allowance is valid for charge points in all countries, except the ones explicitly listed in the excludedCountries."
                  },
                  "excludedCountries": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "AF",
                        "AX",
                        "AL",
                        "DZ",
                        "AS",
                        "AD",
                        "AO",
                        "AI",
                        "AQ",
                        "AG",
                        "AR",
                        "AM",
                        "AW",
                        "AU",
                        "AT",
                        "AZ",
                        "BS",
                        "BH",
                        "BD",
                        "BB",
                        "BY",
                        "BE",
                        "BZ",
                        "BJ",
                        "BM",
                        "BT",
                        "BO",
                        "BQ",
                        "BA",
                        "BW",
                        "BV",
                        "BR",
                        "IO",
                        "BN",
                        "BG",
                        "BF",
                        "BI",
                        "KH",
                        "CM",
                        "CA",
                        "CV",
                        "KY",
                        "CF",
                        "TD",
                        "CL",
                        "CN",
                        "CX",
                        "CC",
                        "CO",
                        "KM",
                        "CG",
                        "CD",
                        "CK",
                        "CR",
                        "CI",
                        "HR",
                        "CU",
                        "CW",
                        "CY",
                        "CZ",
                        "DK",
                        "DJ",
                        "DM",
                        "DO",
                        "EC",
                        "EG",
                        "SV",
                        "GQ",
                        "ER",
                        "EE",
                        "ET",
                        "FK",
                        "FO",
                        "FJ",
                        "FI",
                        "FR",
                        "GF",
                        "PF",
                        "TF",
                        "GA",
                        "GM",
                        "GE",
                        "DE",
                        "GH",
                        "GI",
                        "GR",
                        "GL",
                        "GD",
                        "GP",
                        "GU",
                        "GT",
                        "GG",
                        "GN",
                        "GW",
                        "GY",
                        "HT",
                        "HM",
                        "VA",
                        "HN",
                        "HK",
                        "HU",
                        "IS",
                        "IN",
                        "ID",
                        "IR",
                        "IQ",
                        "IE",
                        "IM",
                        "IL",
                        "IT",
                        "JM",
                        "JP",
                        "JE",
                        "JO",
                        "KZ",
                        "KE",
                        "KI",
                        "KP",
                        "KR",
                        "XK",
                        "KW",
                        "KG",
                        "LA",
                        "LV",
                        "LB",
                        "LS",
                        "LR",
                        "LY",
                        "LI",
                        "LT",
                        "LU",
                        "MO",
                        "MK",
                        "MG",
                        "MW",
                        "MY",
                        "MV",
                        "ML",
                        "MT",
                        "MH",
                        "MQ",
                        "MR",
                        "MU",
                        "YT",
                        "MX",
                        "FM",
                        "MD",
                        "MC",
                        "MN",
                        "ME",
                        "MS",
                        "MA",
                        "MZ",
                        "MM",
                        "NA",
                        "NR",
                        "NP",
                        "NL",
                        "NC",
                        "NZ",
                        "NI",
                        "NE",
                        "NG",
                        "NU",
                        "NF",
                        "MP",
                        "NO",
                        "OM",
                        "PK",
                        "PW",
                        "PS",
                        "PA",
                        "PG",
                        "PY",
                        "PE",
                        "PH",
                        "PN",
                        "PL",
                        "PT",
                        "PR",
                        "QA",
                        "RE",
                        "RO",
                        "RU",
                        "RW",
                        "BL",
                        "SH",
                        "KN",
                        "LC",
                        "MF",
                        "PM",
                        "VC",
                        "WS",
                        "SM",
                        "ST",
                        "SA",
                        "SN",
                        "RS",
                        "SC",
                        "SL",
                        "SG",
                        "SX",
                        "SK",
                        "SI",
                        "SB",
                        "SO",
                        "ZA",
                        "GS",
                        "SS",
                        "ES",
                        "LK",
                        "SD",
                        "SR",
                        "SJ",
                        "SZ",
                        "SE",
                        "CH",
                        "SY",
                        "TW",
                        "TJ",
                        "TZ",
                        "TH",
                        "TL",
                        "TG",
                        "TK",
                        "TO",
                        "TT",
                        "TN",
                        "TR",
                        "TM",
                        "TC",
                        "TV",
                        "UG",
                        "UA",
                        "AE",
                        "GB",
                        "US",
                        "UM",
                        "UY",
                        "UZ",
                        "VU",
                        "VE",
                        "VN",
                        "VG",
                        "VI",
                        "WF",
                        "EH",
                        "YE",
                        "ZM",
                        "ZW"
                      ]
                    },
                    "description": "The allowance cannot be used on charge points in the countries in this list."
                  },
                  "excludeRoaming": {
                    "type": "boolean",
                    "default": false,
                    "description": "When true the allowance cannot be used on roaming charge points."
                  },
                  "includedPartnerChargePoints": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "An array of Partner IDs. The allowance can only be used on charge points of Partners in this list. When empty the allowance is valid for charge points of any Partner, except the ones explicitly listed in the excludedPartnerChargePoints."
                  },
                  "excludedPartnerChargePoints": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "An array of Partner IDs. The allowance cannot be used on charge points of Partners in this list."
                  },
                  "combined": {
                    "description": "The amount of kWh included - combined for AC and DC, should be provided if the type is combined.",
                    "type": "integer",
                    "nullable": true,
                    "minimum": 0,
                    "maximum": 4000000
                  },
                  "ac": {
                    "description": "The amount of kWh included for AC, should be provided if the type is separate.",
                    "type": "integer",
                    "nullable": true,
                    "minimum": 0,
                    "maximum": 4000000
                  },
                  "dc": {
                    "description": "The amount of kWh included for DC, should be provided if the type is separate.",
                    "type": "integer",
                    "nullable": true,
                    "minimum": 0,
                    "maximum": 4000000
                  }
                }
              },
              "visibilityRestrictions": {
                "type": "object",
                "description": "Defines which users can view and subscribe to the plan via the app",
                "properties": {
                  "includedPartnerUsers": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "An array of Partner IDs. The Subscription plan is available only to users invited (and accepted) or created by one of the Partners in this list. When empty the plan is available to all users, except the ones of Partners listed in excludedPartnerUsers."
                  },
                  "excludedPartnerUsers": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "An array of Partner IDs. The Subscription plan is not available to users of the Partners in this list."
                  },
                  "includedUserGroups": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "An array of User Group IDs. The Subscription plan is available only to users with a User Group that is in this list. When empty the plan is available to all users, except the ones with a User Group listed in excludedUserGroups."
                  },
                  "excludedUserGroups": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "An array of User Group IDs. The Subscription plan is not available to users with a User Group that is in this list."
                  }
                }
              },
              "externalId": {
                "type": "string",
                "maxLength": 255,
                "description": "An optional external identifier for integration purposes"
              },
              "replacementPlanId": {
                "type": "integer",
                "description": "The ID of the subscription plan that was used to replace the current one."
              },
              "replacedAt": {
                "type": "string",
                "format": "date-time",
                "description": "The date from which the new subscription plan actively replaces the current one."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "name",
              "description",
              "renewalCycle",
              "type",
              "status"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subscriptionPlanRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "description": {
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "renewalCycle": {
                "type": "string",
                "enum": [
                  "monthly",
                  "annually"
                ]
              },
              "freeRenewalPeriods": {
                "type": "integer",
                "nullable": true,
                "description": "The number of renewal periods that are free of charge. This is only applicable for pre-paid plans."
              },
              "type": {
                "type": "string",
                "enum": [
                  "pre-paid",
                  "post-paid"
                ]
              },
              "baseFee": {
                "type": "number",
                "format": "float",
                "nullable": true,
                "description": "For pre-paid plans this is the price, for post-paid plans this is the base fee."
              },
              "baseFeeAppliesPerEachHomeCharger": {
                "type": "boolean",
                "nullable": true,
                "default": false,
                "deprecated": true,
                "description": "Deprecated: Use feePerEachPersonalChargePoint instead."
              },
              "feePerEachPersonalChargePoint": {
                "type": "number",
                "format": "float",
                "nullable": true,
                "description": "Applies separately per each personal charge point owned by the subscriber that requires this Subscription plan. These fees are added to the Base fee of the Subscription plan, if any."
              },
              "postPaidChargingSessionsAccumulation": {
                "type": "string",
                "enum": [
                  "none",
                  "personal",
                  "personal_commercial"
                ],
                "default": "none",
                "description": "Indicates if charging sessions at personal, commercial+personal charge points are included in the post-paid subscription and would be billed at the end of the billing cycle or when a threshold is met, if there is such."
              },
              "billingUsageThreshold": {
                "type": "integer",
                "format": "decimal",
                "nullable": true,
                "description": "If this threshold is reached, the amount due for the subscription would be billed immediately instead of waiting for the end of the billing period."
              },
              "billingType": {
                "type": "string",
                "enum": [
                  "default",
                  "internal",
                  "external"
                ],
                "description": "Applicable only for post-paid subscription plans when external billing is enabled. Controls the billing method used for this subscription plan."
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "allowance": {
                "type": "object",
                "properties": {
                  "resetCycle": {
                    "type": "string",
                    "enum": [
                      "as_renewal_cycle",
                      "after_each_session",
                      "after_24_hours",
                      "after_each_week",
                      "after_each_month",
                      "after_each_year"
                    ]
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "none",
                      "combined",
                      "separate"
                    ]
                  },
                  "homeChargersOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "When true the allowance can only be used on the home charge points owned by the user. In that case all other allowance restrictions have no effect ."
                  },
                  "includedCountries": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "AF",
                        "AX",
                        "AL",
                        "DZ",
                        "AS",
                        "AD",
                        "AO",
                        "AI",
                        "AQ",
                        "AG",
                        "AR",
                        "AM",
                        "AW",
                        "AU",
                        "AT",
                        "AZ",
                        "BS",
                        "BH",
                        "BD",
                        "BB",
                        "BY",
                        "BE",
                        "BZ",
                        "BJ",
                        "BM",
                        "BT",
                        "BO",
                        "BQ",
                        "BA",
                        "BW",
                        "BV",
                        "BR",
                        "IO",
                        "BN",
                        "BG",
                        "BF",
                        "BI",
                        "KH",
                        "CM",
                        "CA",
                        "CV",
                        "KY",
                        "CF",
                        "TD",
                        "CL",
                        "CN",
                        "CX",
                        "CC",
                        "CO",
                        "KM",
                        "CG",
                        "CD",
                        "CK",
                        "CR",
                        "CI",
                        "HR",
                        "CU",
                        "CW",
                        "CY",
                        "CZ",
                        "DK",
                        "DJ",
                        "DM",
                        "DO",
                        "EC",
                        "EG",
                        "SV",
                        "GQ",
                        "ER",
                        "EE",
                        "ET",
                        "FK",
                        "FO",
                        "FJ",
                        "FI",
                        "FR",
                        "GF",
                        "PF",
                        "TF",
                        "GA",
                        "GM",
                        "GE",
                        "DE",
                        "GH",
                        "GI",
                        "GR",
                        "GL",
                        "GD",
                        "GP",
                        "GU",
                        "GT",
                        "GG",
                        "GN",
                        "GW",
                        "GY",
                        "HT",
                        "HM",
                        "VA",
                        "HN",
                        "HK",
                        "HU",
                        "IS",
                        "IN",
                        "ID",
                        "IR",
                        "IQ",
                        "IE",
                        "IM",
                        "IL",
                        "IT",
                        "JM",
                        "JP",
                        "JE",
                        "JO",
                        "KZ",
                        "KE",
                        "KI",
                        "KP",
                        "KR",
                        "XK",
                        "KW",
                        "KG",
                        "LA",
                        "LV",
                        "LB",
                        "LS",
                        "LR",
                        "LY",
                        "LI",
                        "LT",
                        "LU",
                        "MO",
                        "MK",
                        "MG",
                        "MW",
                        "MY",
                        "MV",
                        "ML",
                        "MT",
                        "MH",
                        "MQ",
                        "MR",
                        "MU",
                        "YT",
                        "MX",
                        "FM",
                        "MD",
                        "MC",
                        "MN",
                        "ME",
                        "MS",
                        "MA",
                        "MZ",
                        "MM",
                        "NA",
                        "NR",
                        "NP",
                        "NL",
                        "NC",
                        "NZ",
                        "NI",
                        "NE",
                        "NG",
                        "NU",
                        "NF",
                        "MP",
                        "NO",
                        "OM",
                        "PK",
                        "PW",
                        "PS",
                        "PA",
                        "PG",
                        "PY",
                        "PE",
                        "PH",
                        "PN",
                        "PL",
                        "PT",
                        "PR",
                        "QA",
                        "RE",
                        "RO",
                        "RU",
                        "RW",
                        "BL",
                        "SH",
                        "KN",
                        "LC",
                        "MF",
                        "PM",
                        "VC",
                        "WS",
                        "SM",
                        "ST",
                        "SA",
                        "SN",
                        "RS",
                        "SC",
                        "SL",
                        "SG",
                        "SX",
                        "SK",
                        "SI",
                        "SB",
                        "SO",
                        "ZA",
                        "GS",
                        "SS",
                        "ES",
                        "LK",
                        "SD",
                        "SR",
                        "SJ",
                        "SZ",
                        "SE",
                        "CH",
                        "SY",
                        "TW",
                        "TJ",
                        "TZ",
                        "TH",
                        "TL",
                        "TG",
                        "TK",
                        "TO",
                        "TT",
                        "TN",
                        "TR",
                        "TM",
                        "TC",
                        "TV",
                        "UG",
                        "UA",
                        "AE",
                        "GB",
                        "US",
                        "UM",
                        "UY",
                        "UZ",
                        "VU",
                        "VE",
                        "VN",
                        "VG",
                        "VI",
                        "WF",
                        "EH",
                        "YE",
                        "ZM",
                        "ZW"
                      ]
                    },
                    "description": "The allowance can only be used on charge points in countries in this list. When empty the allowance is valid for charge points in all countries, except the ones explicitly listed in the excludedCountries."
                  },
                  "excludedCountries": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "AF",
                        "AX",
                        "AL",
                        "DZ",
                        "AS",
                        "AD",
                        "AO",
                        "AI",
                        "AQ",
                        "AG",
                        "AR",
                        "AM",
                        "AW",
                        "AU",
                        "AT",
                        "AZ",
                        "BS",
                        "BH",
                        "BD",
                        "BB",
                        "BY",
                        "BE",
                        "BZ",
                        "BJ",
                        "BM",
                        "BT",
                        "BO",
                        "BQ",
                        "BA",
                        "BW",
                        "BV",
                        "BR",
                        "IO",
                        "BN",
                        "BG",
                        "BF",
                        "BI",
                        "KH",
                        "CM",
                        "CA",
                        "CV",
                        "KY",
                        "CF",
                        "TD",
                        "CL",
                        "CN",
                        "CX",
                        "CC",
                        "CO",
                        "KM",
                        "CG",
                        "CD",
                        "CK",
                        "CR",
                        "CI",
                        "HR",
                        "CU",
                        "CW",
                        "CY",
                        "CZ",
                        "DK",
                        "DJ",
                        "DM",
                        "DO",
                        "EC",
                        "EG",
                        "SV",
                        "GQ",
                        "ER",
                        "EE",
                        "ET",
                        "FK",
                        "FO",
                        "FJ",
                        "FI",
                        "FR",
                        "GF",
                        "PF",
                        "TF",
                        "GA",
                        "GM",
                        "GE",
                        "DE",
                        "GH",
                        "GI",
                        "GR",
                        "GL",
                        "GD",
                        "GP",
                        "GU",
                        "GT",
                        "GG",
                        "GN",
                        "GW",
                        "GY",
                        "HT",
                        "HM",
                        "VA",
                        "HN",
                        "HK",
                        "HU",
                        "IS",
                        "IN",
                        "ID",
                        "IR",
                        "IQ",
                        "IE",
                        "IM",
                        "IL",
                        "IT",
                        "JM",
                        "JP",
                        "JE",
                        "JO",
                        "KZ",
                        "KE",
                        "KI",
                        "KP",
                        "KR",
                        "XK",
                        "KW",
                        "KG",
                        "LA",
                        "LV",
                        "LB",
                        "LS",
                        "LR",
                        "LY",
                        "LI",
                        "LT",
                        "LU",
                        "MO",
                        "MK",
                        "MG",
                        "MW",
                        "MY",
                        "MV",
                        "ML",
                        "MT",
                        "MH",
                        "MQ",
                        "MR",
                        "MU",
                        "YT",
                        "MX",
                        "FM",
                        "MD",
                        "MC",
                        "MN",
                        "ME",
                        "MS",
                        "MA",
                        "MZ",
                        "MM",
                        "NA",
                        "NR",
                        "NP",
                        "NL",
                        "NC",
                        "NZ",
                        "NI",
                        "NE",
                        "NG",
                        "NU",
                        "NF",
                        "MP",
                        "NO",
                        "OM",
                        "PK",
                        "PW",
                        "PS",
                        "PA",
                        "PG",
                        "PY",
                        "PE",
                        "PH",
                        "PN",
                        "PL",
                        "PT",
                        "PR",
                        "QA",
                        "RE",
                        "RO",
                        "RU",
                        "RW",
                        "BL",
                        "SH",
                        "KN",
                        "LC",
                        "MF",
                        "PM",
                        "VC",
                        "WS",
                        "SM",
                        "ST",
                        "SA",
                        "SN",
                        "RS",
                        "SC",
                        "SL",
                        "SG",
                        "SX",
                        "SK",
                        "SI",
                        "SB",
                        "SO",
                        "ZA",
                        "GS",
                        "SS",
                        "ES",
                        "LK",
                        "SD",
                        "SR",
                        "SJ",
                        "SZ",
                        "SE",
                        "CH",
                        "SY",
                        "TW",
                        "TJ",
                        "TZ",
                        "TH",
                        "TL",
                        "TG",
                        "TK",
                        "TO",
                        "TT",
                        "TN",
                        "TR",
                        "TM",
                        "TC",
                        "TV",
                        "UG",
                        "UA",
                        "AE",
                        "GB",
                        "US",
                        "UM",
                        "UY",
                        "UZ",
                        "VU",
                        "VE",
                        "VN",
                        "VG",
                        "VI",
                        "WF",
                        "EH",
                        "YE",
                        "ZM",
                        "ZW"
                      ]
                    },
                    "description": "The allowance cannot be used on charge points in the countries in this list."
                  },
                  "excludeRoaming": {
                    "type": "boolean",
                    "default": false,
                    "description": "When true the allowance cannot be used on roaming charge points."
                  },
                  "includedPartnerChargePoints": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "An array of Partner IDs. The allowance can only be used on charge points of Partners in this list. When empty the allowance is valid for charge points of any Partner, except the ones explicitly listed in the excludedPartnerChargePoints."
                  },
                  "excludedPartnerChargePoints": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "An array of Partner IDs. The allowance cannot be used on charge points of Partners in this list."
                  },
                  "combined": {
                    "description": "The amount of kWh included - combined for AC and DC, should be provided if the type is combined.",
                    "type": "integer",
                    "nullable": true,
                    "minimum": 0,
                    "maximum": 4000000
                  },
                  "ac": {
                    "description": "The amount of kWh included for AC, should be provided if the type is separate.",
                    "type": "integer",
                    "nullable": true,
                    "minimum": 0,
                    "maximum": 4000000
                  },
                  "dc": {
                    "description": "The amount of kWh included for DC, should be provided if the type is separate.",
                    "type": "integer",
                    "nullable": true,
                    "minimum": 0,
                    "maximum": 4000000
                  }
                }
              },
              "visibilityRestrictions": {
                "type": "object",
                "description": "Defines which users can view and subscribe to the plan via the app",
                "properties": {
                  "includedPartnerUsers": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "An array of Partner IDs. The Subscription plan is available only to users invited (and accepted) or created by one of the Partners in this list. When empty the plan is available to all users, except the ones of Partners listed in excludedPartnerUsers."
                  },
                  "excludedPartnerUsers": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "An array of Partner IDs. The Subscription plan is not available to users of the Partners in this list."
                  },
                  "includedUserGroups": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "An array of User Group IDs. The Subscription plan is available only to users with a User Group that is in this list. When empty the plan is available to all users, except the ones with a User Group listed in excludedUserGroups."
                  },
                  "excludedUserGroups": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "An array of User Group IDs. The Subscription plan is not available to users with a User Group that is in this list."
                  }
                }
              },
              "externalId": {
                "type": "string",
                "maxLength": 255,
                "description": "An optional external identifier for integration purposes"
              },
              "replacementPlanId": {
                "type": "integer",
                "description": "The ID of the subscription plan that was used to replace the current one."
              },
              "replacedAt": {
                "type": "string",
                "format": "date-time",
                "description": "The date from which the new subscription plan actively replaces the current one."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "name",
              "description",
              "renewalCycle",
              "type",
              "status"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subscriptionPlanDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subscriptionPlanUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "description": {
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "renewalCycle": {
                "type": "string",
                "enum": [
                  "monthly",
                  "annually"
                ]
              },
              "freeRenewalPeriods": {
                "type": "integer",
                "nullable": true,
                "description": "The number of renewal periods that are free of charge. This is only applicable for pre-paid plans."
              },
              "type": {
                "type": "string",
                "enum": [
                  "pre-paid",
                  "post-paid"
                ]
              },
              "baseFee": {
                "type": "number",
                "format": "float",
                "nullable": true,
                "description": "For pre-paid plans this is the price, for post-paid plans this is the base fee."
              },
              "baseFeeAppliesPerEachHomeCharger": {
                "type": "boolean",
                "nullable": true,
                "default": false,
                "deprecated": true,
                "description": "Deprecated: Use feePerEachPersonalChargePoint instead."
              },
              "feePerEachPersonalChargePoint": {
                "type": "number",
                "format": "float",
                "nullable": true,
                "description": "Applies separately per each personal charge point owned by the subscriber that requires this Subscription plan. These fees are added to the Base fee of the Subscription plan, if any."
              },
              "postPaidChargingSessionsAccumulation": {
                "type": "string",
                "enum": [
                  "none",
                  "personal",
                  "personal_commercial"
                ],
                "default": "none",
                "description": "Indicates if charging sessions at personal, commercial+personal charge points are included in the post-paid subscription and would be billed at the end of the billing cycle or when a threshold is met, if there is such."
              },
              "billingUsageThreshold": {
                "type": "integer",
                "format": "decimal",
                "nullable": true,
                "description": "If this threshold is reached, the amount due for the subscription would be billed immediately instead of waiting for the end of the billing period."
              },
              "billingType": {
                "type": "string",
                "enum": [
                  "default",
                  "internal",
                  "external"
                ],
                "description": "Applicable only for post-paid subscription plans when external billing is enabled. Controls the billing method used for this subscription plan."
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "allowance": {
                "type": "object",
                "properties": {
                  "resetCycle": {
                    "type": "string",
                    "enum": [
                      "as_renewal_cycle",
                      "after_each_session",
                      "after_24_hours",
                      "after_each_week",
                      "after_each_month",
                      "after_each_year"
                    ]
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "none",
                      "combined",
                      "separate"
                    ]
                  },
                  "homeChargersOnly": {
                    "type": "boolean",
                    "default": false,
                    "description": "When true the allowance can only be used on the home charge points owned by the user. In that case all other allowance restrictions have no effect ."
                  },
                  "includedCountries": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "AF",
                        "AX",
                        "AL",
                        "DZ",
                        "AS",
                        "AD",
                        "AO",
                        "AI",
                        "AQ",
                        "AG",
                        "AR",
                        "AM",
                        "AW",
                        "AU",
                        "AT",
                        "AZ",
                        "BS",
                        "BH",
                        "BD",
                        "BB",
                        "BY",
                        "BE",
                        "BZ",
                        "BJ",
                        "BM",
                        "BT",
                        "BO",
                        "BQ",
                        "BA",
                        "BW",
                        "BV",
                        "BR",
                        "IO",
                        "BN",
                        "BG",
                        "BF",
                        "BI",
                        "KH",
                        "CM",
                        "CA",
                        "CV",
                        "KY",
                        "CF",
                        "TD",
                        "CL",
                        "CN",
                        "CX",
                        "CC",
                        "CO",
                        "KM",
                        "CG",
                        "CD",
                        "CK",
                        "CR",
                        "CI",
                        "HR",
                        "CU",
                        "CW",
                        "CY",
                        "CZ",
                        "DK",
                        "DJ",
                        "DM",
                        "DO",
                        "EC",
                        "EG",
                        "SV",
                        "GQ",
                        "ER",
                        "EE",
                        "ET",
                        "FK",
                        "FO",
                        "FJ",
                        "FI",
                        "FR",
                        "GF",
                        "PF",
                        "TF",
                        "GA",
                        "GM",
                        "GE",
                        "DE",
                        "GH",
                        "GI",
                        "GR",
                        "GL",
                        "GD",
                        "GP",
                        "GU",
                        "GT",
                        "GG",
                        "GN",
                        "GW",
                        "GY",
                        "HT",
                        "HM",
                        "VA",
                        "HN",
                        "HK",
                        "HU",
                        "IS",
                        "IN",
                        "ID",
                        "IR",
                        "IQ",
                        "IE",
                        "IM",
                        "IL",
                        "IT",
                        "JM",
                        "JP",
                        "JE",
                        "JO",
                        "KZ",
                        "KE",
                        "KI",
                        "KP",
                        "KR",
                        "XK",
                        "KW",
                        "KG",
                        "LA",
                        "LV",
                        "LB",
                        "LS",
                        "LR",
                        "LY",
                        "LI",
                        "LT",
                        "LU",
                        "MO",
                        "MK",
                        "MG",
                        "MW",
                        "MY",
                        "MV",
                        "ML",
                        "MT",
                        "MH",
                        "MQ",
                        "MR",
                        "MU",
                        "YT",
                        "MX",
                        "FM",
                        "MD",
                        "MC",
                        "MN",
                        "ME",
                        "MS",
                        "MA",
                        "MZ",
                        "MM",
                        "NA",
                        "NR",
                        "NP",
                        "NL",
                        "NC",
                        "NZ",
                        "NI",
                        "NE",
                        "NG",
                        "NU",
                        "NF",
                        "MP",
                        "NO",
                        "OM",
                        "PK",
                        "PW",
                        "PS",
                        "PA",
                        "PG",
                        "PY",
                        "PE",
                        "PH",
                        "PN",
                        "PL",
                        "PT",
                        "PR",
                        "QA",
                        "RE",
                        "RO",
                        "RU",
                        "RW",
                        "BL",
                        "SH",
                        "KN",
                        "LC",
                        "MF",
                        "PM",
                        "VC",
                        "WS",
                        "SM",
                        "ST",
                        "SA",
                        "SN",
                        "RS",
                        "SC",
                        "SL",
                        "SG",
                        "SX",
                        "SK",
                        "SI",
                        "SB",
                        "SO",
                        "ZA",
                        "GS",
                        "SS",
                        "ES",
                        "LK",
                        "SD",
                        "SR",
                        "SJ",
                        "SZ",
                        "SE",
                        "CH",
                        "SY",
                        "TW",
                        "TJ",
                        "TZ",
                        "TH",
                        "TL",
                        "TG",
                        "TK",
                        "TO",
                        "TT",
                        "TN",
                        "TR",
                        "TM",
                        "TC",
                        "TV",
                        "UG",
                        "UA",
                        "AE",
                        "GB",
                        "US",
                        "UM",
                        "UY",
                        "UZ",
                        "VU",
                        "VE",
                        "VN",
                        "VG",
                        "VI",
                        "WF",
                        "EH",
                        "YE",
                        "ZM",
                        "ZW"
                      ]
                    },
                    "description": "The allowance can only be used on charge points in countries in this list. When empty the allowance is valid for charge points in all countries, except the ones explicitly listed in the excludedCountries."
                  },
                  "excludedCountries": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "AF",
                        "AX",
                        "AL",
                        "DZ",
                        "AS",
                        "AD",
                        "AO",
                        "AI",
                        "AQ",
                        "AG",
                        "AR",
                        "AM",
                        "AW",
                        "AU",
                        "AT",
                        "AZ",
                        "BS",
                        "BH",
                        "BD",
                        "BB",
                        "BY",
                        "BE",
                        "BZ",
                        "BJ",
                        "BM",
                        "BT",
                        "BO",
                        "BQ",
                        "BA",
                        "BW",
                        "BV",
                        "BR",
                        "IO",
                        "BN",
                        "BG",
                        "BF",
                        "BI",
                        "KH",
                        "CM",
                        "CA",
                        "CV",
                        "KY",
                        "CF",
                        "TD",
                        "CL",
                        "CN",
                        "CX",
                        "CC",
                        "CO",
                        "KM",
                        "CG",
                        "CD",
                        "CK",
                        "CR",
                        "CI",
                        "HR",
                        "CU",
                        "CW",
                        "CY",
                        "CZ",
                        "DK",
                        "DJ",
                        "DM",
                        "DO",
                        "EC",
                        "EG",
                        "SV",
                        "GQ",
                        "ER",
                        "EE",
                        "ET",
                        "FK",
                        "FO",
                        "FJ",
                        "FI",
                        "FR",
                        "GF",
                        "PF",
                        "TF",
                        "GA",
                        "GM",
                        "GE",
                        "DE",
                        "GH",
                        "GI",
                        "GR",
                        "GL",
                        "GD",
                        "GP",
                        "GU",
                        "GT",
                        "GG",
                        "GN",
                        "GW",
                        "GY",
                        "HT",
                        "HM",
                        "VA",
                        "HN",
                        "HK",
                        "HU",
                        "IS",
                        "IN",
                        "ID",
                        "IR",
                        "IQ",
                        "IE",
                        "IM",
                        "IL",
                        "IT",
                        "JM",
                        "JP",
                        "JE",
                        "JO",
                        "KZ",
                        "KE",
                        "KI",
                        "KP",
                        "KR",
                        "XK",
                        "KW",
                        "KG",
                        "LA",
                        "LV",
                        "LB",
                        "LS",
                        "LR",
                        "LY",
                        "LI",
                        "LT",
                        "LU",
                        "MO",
                        "MK",
                        "MG",
                        "MW",
                        "MY",
                        "MV",
                        "ML",
                        "MT",
                        "MH",
                        "MQ",
                        "MR",
                        "MU",
                        "YT",
                        "MX",
                        "FM",
                        "MD",
                        "MC",
                        "MN",
                        "ME",
                        "MS",
                        "MA",
                        "MZ",
                        "MM",
                        "NA",
                        "NR",
                        "NP",
                        "NL",
                        "NC",
                        "NZ",
                        "NI",
                        "NE",
                        "NG",
                        "NU",
                        "NF",
                        "MP",
                        "NO",
                        "OM",
                        "PK",
                        "PW",
                        "PS",
                        "PA",
                        "PG",
                        "PY",
                        "PE",
                        "PH",
                        "PN",
                        "PL",
                        "PT",
                        "PR",
                        "QA",
                        "RE",
                        "RO",
                        "RU",
                        "RW",
                        "BL",
                        "SH",
                        "KN",
                        "LC",
                        "MF",
                        "PM",
                        "VC",
                        "WS",
                        "SM",
                        "ST",
                        "SA",
                        "SN",
                        "RS",
                        "SC",
                        "SL",
                        "SG",
                        "SX",
                        "SK",
                        "SI",
                        "SB",
                        "SO",
                        "ZA",
                        "GS",
                        "SS",
                        "ES",
                        "LK",
                        "SD",
                        "SR",
                        "SJ",
                        "SZ",
                        "SE",
                        "CH",
                        "SY",
                        "TW",
                        "TJ",
                        "TZ",
                        "TH",
                        "TL",
                        "TG",
                        "TK",
                        "TO",
                        "TT",
                        "TN",
                        "TR",
                        "TM",
                        "TC",
                        "TV",
                        "UG",
                        "UA",
                        "AE",
                        "GB",
                        "US",
                        "UM",
                        "UY",
                        "UZ",
                        "VU",
                        "VE",
                        "VN",
                        "VG",
                        "VI",
                        "WF",
                        "EH",
                        "YE",
                        "ZM",
                        "ZW"
                      ]
                    },
                    "description": "The allowance cannot be used on charge points in the countries in this list."
                  },
                  "excludeRoaming": {
                    "type": "boolean",
                    "default": false,
                    "description": "When true the allowance cannot be used on roaming charge points."
                  },
                  "includedPartnerChargePoints": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "An array of Partner IDs. The allowance can only be used on charge points of Partners in this list. When empty the allowance is valid for charge points of any Partner, except the ones explicitly listed in the excludedPartnerChargePoints."
                  },
                  "excludedPartnerChargePoints": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "An array of Partner IDs. The allowance cannot be used on charge points of Partners in this list."
                  },
                  "combined": {
                    "description": "The amount of kWh included - combined for AC and DC, should be provided if the type is combined.",
                    "type": "integer",
                    "nullable": true,
                    "minimum": 0,
                    "maximum": 4000000
                  },
                  "ac": {
                    "description": "The amount of kWh included for AC, should be provided if the type is separate.",
                    "type": "integer",
                    "nullable": true,
                    "minimum": 0,
                    "maximum": 4000000
                  },
                  "dc": {
                    "description": "The amount of kWh included for DC, should be provided if the type is separate.",
                    "type": "integer",
                    "nullable": true,
                    "minimum": 0,
                    "maximum": 4000000
                  }
                }
              },
              "visibilityRestrictions": {
                "type": "object",
                "description": "Defines which users can view and subscribe to the plan via the app",
                "properties": {
                  "includedPartnerUsers": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "An array of Partner IDs. The Subscription plan is available only to users invited (and accepted) or created by one of the Partners in this list. When empty the plan is available to all users, except the ones of Partners listed in excludedPartnerUsers."
                  },
                  "excludedPartnerUsers": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "An array of Partner IDs. The Subscription plan is not available to users of the Partners in this list."
                  },
                  "includedUserGroups": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "An array of User Group IDs. The Subscription plan is available only to users with a User Group that is in this list. When empty the plan is available to all users, except the ones with a User Group listed in excludedUserGroups."
                  },
                  "excludedUserGroups": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "An array of User Group IDs. The Subscription plan is not available to users with a User Group that is in this list."
                  }
                }
              },
              "externalId": {
                "type": "string",
                "maxLength": 255,
                "description": "An optional external identifier for integration purposes"
              },
              "replacementPlanId": {
                "type": "integer",
                "description": "The ID of the subscription plan that was used to replace the current one."
              },
              "replacedAt": {
                "type": "string",
                "format": "date-time",
                "description": "The date from which the new subscription plan actively replaces the current one."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "name",
              "description",
              "renewalCycle",
              "type",
              "status"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "subscriptionsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "planId": {
                  "type": "integer"
                },
                "userId": {
                  "type": "integer"
                },
                "startDate": {
                  "type": "string",
                  "format": "date-time",
                  "description": "**This property is deprecated and will be removed on Wed, 21 Oct 2026.** Use startedAt instead. ISO 8601 formatted date.",
                  "deprecated": true
                },
                "endDate": {
                  "type": "string",
                  "format": "date-time",
                  "description": "**This property is deprecated and will be removed on Wed, 21 Oct 2026.** Use endedAt instead. ISO 8601 formatted date.",
                  "deprecated": true
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "active",
                    "canceled",
                    "expired",
                    "suspended",
                    "pending"
                  ]
                },
                "statusDate": {
                  "type": "string",
                  "format": "date-time",
                  "description": "**This property is deprecated and will be removed on Wed, 21 Oct 2026.** Use statusChangedAt instead. ISO 8601 formatted date when the current status was set.",
                  "deprecated": true
                },
                "startedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date when the subscription was started."
                },
                "endedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date when the current billing period ends."
                },
                "statusChangedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date when the current status was set."
                },
                "remainingAllowance": {
                  "type": "object",
                  "nullable": true,
                  "properties": {
                    "combined": {
                      "type": "integer",
                      "format": "decimal",
                      "nullable": true,
                      "description": "Remaining kWh of the combined charging allowance (if any)."
                    },
                    "ac": {
                      "type": "integer",
                      "format": "decimal",
                      "nullable": true,
                      "description": "Remaining kWh of the AC charging allowance (if any)."
                    },
                    "dc": {
                      "type": "integer",
                      "format": "decimal",
                      "nullable": true,
                      "description": "Remaining kWh of the DC charging allowance (if any)."
                    }
                  }
                },
                "remainingFreeRenewalPeriods": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The number of remaining renewal periods that are free of charge. This is only applicable for pre-paid plans."
                },
                "shouldUseExternalBilling": {
                  "type": "boolean",
                  "default": false,
                  "description": "Applicable only when the system uses both payment processor and external billing mode simultaneously. Indicates if the user has chosen \"External billing\" for his post-paid subscription (if allowed by the Billing settings)."
                },
                "isRenewable": {
                  "type": "boolean",
                  "description": "Whether the subscription will auto-renew at the end of the current billing period. Set to false either by an admin stopping renewal manually or by the automatic threshold mechanism when unpaid billing periods exceed the configured limit."
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "planId",
                "userId",
                "startDate",
                "endDate",
                "status",
                "statusDate",
                "startedAt",
                "endedAt",
                "statusChangedAt",
                "isRenewable"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "405": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subscriptionRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "planId": {
                "type": "integer"
              },
              "userId": {
                "type": "integer"
              },
              "startDate": {
                "type": "string",
                "format": "date-time",
                "description": "**This property is deprecated and will be removed on Wed, 21 Oct 2026.** Use startedAt instead. ISO 8601 formatted date.",
                "deprecated": true
              },
              "endDate": {
                "type": "string",
                "format": "date-time",
                "description": "**This property is deprecated and will be removed on Wed, 21 Oct 2026.** Use endedAt instead. ISO 8601 formatted date.",
                "deprecated": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "active",
                  "canceled",
                  "expired",
                  "suspended",
                  "pending"
                ]
              },
              "statusDate": {
                "type": "string",
                "format": "date-time",
                "description": "**This property is deprecated and will be removed on Wed, 21 Oct 2026.** Use statusChangedAt instead. ISO 8601 formatted date when the current status was set.",
                "deprecated": true
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date when the subscription was started."
              },
              "endedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date when the current billing period ends."
              },
              "statusChangedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date when the current status was set."
              },
              "remainingAllowance": {
                "type": "object",
                "nullable": true,
                "properties": {
                  "combined": {
                    "type": "integer",
                    "format": "decimal",
                    "nullable": true,
                    "description": "Remaining kWh of the combined charging allowance (if any)."
                  },
                  "ac": {
                    "type": "integer",
                    "format": "decimal",
                    "nullable": true,
                    "description": "Remaining kWh of the AC charging allowance (if any)."
                  },
                  "dc": {
                    "type": "integer",
                    "format": "decimal",
                    "nullable": true,
                    "description": "Remaining kWh of the DC charging allowance (if any)."
                  }
                }
              },
              "remainingFreeRenewalPeriods": {
                "type": "integer",
                "nullable": true,
                "description": "The number of remaining renewal periods that are free of charge. This is only applicable for pre-paid plans."
              },
              "shouldUseExternalBilling": {
                "type": "boolean",
                "default": false,
                "description": "Applicable only when the system uses both payment processor and external billing mode simultaneously. Indicates if the user has chosen \"External billing\" for his post-paid subscription (if allowed by the Billing settings)."
              },
              "isRenewable": {
                "type": "boolean",
                "description": "Whether the subscription will auto-renew at the end of the current billing period. Set to false either by an admin stopping renewal manually or by the automatic threshold mechanism when unpaid billing periods exceed the configured limit."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "planId",
              "userId",
              "startDate",
              "endDate",
              "status",
              "statusDate",
              "startedAt",
              "endedAt",
              "statusChangedAt",
              "isRenewable"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "405": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "tariffGroupsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "name": {
                  "type": "string"
                },
                "tariffIds": {
                  "description": "Ordered list of tariff ids in the group. The first element is always the base tariff, which is auto-created with the group. Please note that the order is checked from bottom to top, meaning that the tariff with the largest index in that list (in other words that is the lowest in the list), that matches the requirements will apply",
                  "type": "array",
                  "items": {
                    "type": "integer"
                  }
                },
                "partnerId": {
                  "type": "integer",
                  "nullable": true,
                  "default": null,
                  "description": "The assigned Partner will have access to make changes to the tariff group."
                },
                "offlineTariffId": {
                  "type": "integer",
                  "description": "The tariff used to derive offline pricing for OCPP 1.6 charge points when they are not connected to the backend.\nBelongs to the same operator as the tariff group.\n"
                },
                "display": {
                  "type": "object",
                  "properties": {
                    "defaultPriceInformation": {
                      "type": "string",
                      "maxLength": 150,
                      "description": "The default information that would be shown on the display of the charge point without the user having authorized themselves."
                    },
                    "defaultPriceInformationOffline": {
                      "type": "string",
                      "maxLength": 150,
                      "description": "The information that would be shown on the display of the charge point when offline."
                    },
                    "totalCostFallbackMessage": {
                      "type": "string",
                      "maxLength": 150,
                      "description": "The message shown on the charge point screen when a session ends but the final cost cannot be retrieved."
                    }
                  }
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "operatorId",
                "name"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "tariffGroupCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string"
              },
              "tariffIds": {
                "description": "Ordered list of tariff ids in the group. The first element is always the base tariff, which is auto-created with the group. Please note that the order is checked from bottom to top, meaning that the tariff with the largest index in that list (in other words that is the lowest in the list), that matches the requirements will apply",
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "partnerId": {
                "type": "integer",
                "nullable": true,
                "default": null,
                "description": "The assigned Partner will have access to make changes to the tariff group."
              },
              "offlineTariffId": {
                "type": "integer",
                "description": "The tariff used to derive offline pricing for OCPP 1.6 charge points when they are not connected to the backend.\nBelongs to the same operator as the tariff group.\n"
              },
              "display": {
                "type": "object",
                "properties": {
                  "defaultPriceInformation": {
                    "type": "string",
                    "maxLength": 150,
                    "description": "The default information that would be shown on the display of the charge point without the user having authorized themselves."
                  },
                  "defaultPriceInformationOffline": {
                    "type": "string",
                    "maxLength": 150,
                    "description": "The information that would be shown on the display of the charge point when offline."
                  },
                  "totalCostFallbackMessage": {
                    "type": "string",
                    "maxLength": 150,
                    "description": "The message shown on the charge point screen when a session ends but the final cost cannot be retrieved."
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "name"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "tariffGroupRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string"
              },
              "tariffIds": {
                "description": "Ordered list of tariff ids in the group. The first element is always the base tariff, which is auto-created with the group. Please note that the order is checked from bottom to top, meaning that the tariff with the largest index in that list (in other words that is the lowest in the list), that matches the requirements will apply",
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "partnerId": {
                "type": "integer",
                "nullable": true,
                "default": null,
                "description": "The assigned Partner will have access to make changes to the tariff group."
              },
              "offlineTariffId": {
                "type": "integer",
                "description": "The tariff used to derive offline pricing for OCPP 1.6 charge points when they are not connected to the backend.\nBelongs to the same operator as the tariff group.\n"
              },
              "display": {
                "type": "object",
                "properties": {
                  "defaultPriceInformation": {
                    "type": "string",
                    "maxLength": 150,
                    "description": "The default information that would be shown on the display of the charge point without the user having authorized themselves."
                  },
                  "defaultPriceInformationOffline": {
                    "type": "string",
                    "maxLength": 150,
                    "description": "The information that would be shown on the display of the charge point when offline."
                  },
                  "totalCostFallbackMessage": {
                    "type": "string",
                    "maxLength": 150,
                    "description": "The message shown on the charge point screen when a session ends but the final cost cannot be retrieved."
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "name"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "tariffGroupUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string"
              },
              "tariffIds": {
                "description": "Ordered list of tariff ids in the group. The first element is always the base tariff, which is auto-created with the group. Please note that the order is checked from bottom to top, meaning that the tariff with the largest index in that list (in other words that is the lowest in the list), that matches the requirements will apply",
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "partnerId": {
                "type": "integer",
                "nullable": true,
                "default": null,
                "description": "The assigned Partner will have access to make changes to the tariff group."
              },
              "offlineTariffId": {
                "type": "integer",
                "description": "The tariff used to derive offline pricing for OCPP 1.6 charge points when they are not connected to the backend.\nBelongs to the same operator as the tariff group.\n"
              },
              "display": {
                "type": "object",
                "properties": {
                  "defaultPriceInformation": {
                    "type": "string",
                    "maxLength": 150,
                    "description": "The default information that would be shown on the display of the charge point without the user having authorized themselves."
                  },
                  "defaultPriceInformationOffline": {
                    "type": "string",
                    "maxLength": 150,
                    "description": "The information that would be shown on the display of the charge point when offline."
                  },
                  "totalCostFallbackMessage": {
                    "type": "string",
                    "maxLength": 150,
                    "description": "The message shown on the charge point screen when a session ends but the final cost cannot be retrieved."
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "name"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "tariffGroupDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "tariffSnapshotRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "free",
                  "flat rate",
                  "duration+energy",
                  "duration+energy time of day",
                  "energy tou",
                  "standard",
                  "charging not allowed",
                  "average power levels",
                  "peak power levels",
                  "standard_tod",
                  "optimised dynamic pricing",
                  "discount based"
                ],
                "description": "Setting the type to `charging not allowed` or `free` is enough for creating the particular type of tariff."
              },
              "description": {
                "type": "object",
                "nullable": true,
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "additionalInformation": {
                "type": "object",
                "nullable": true,
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "learnMoreUrl": {
                "type": "object",
                "nullable": true,
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "dayTariffStart": {
                "type": "string",
                "format": "time",
                "description": "A time when the day begins"
              },
              "nightTariffStart": {
                "type": "string",
                "format": "time",
                "description": "A time when the night begins"
              },
              "pricing": {
                "type": "object",
                "properties": {
                  "pricePerSession": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per session. Only applicable with flat rate tariffs. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "connectionFee": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Connection fee. A fixed fee that is applied at the start of the charging session. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "pricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "dayPricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "nightPricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "pricePeriodInMinutes": {
                    "type": "integer",
                    "enum": [
                      1,
                      15,
                      30,
                      60,
                      240,
                      360
                    ],
                    "description": "Charging period. In minutes. It defines the time-period for charging a fee. Example: If you select 15min then the EV-driver will be charged at the start of every 15min of EV-charging. Applicable for duration+energy and duration+energy time of day",
                    "nullable": true
                  },
                  "pricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period. Applicable for duration+energy. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`idleFeePerMinute`), the regular duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "durationFeeLimit": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Duration fee limit for the whole session if fee is applied.",
                    "nullable": true
                  },
                  "durationFeeCapMinutes": {
                    "type": "integer",
                    "description": "Maximum billable charging duration in minutes. A value of zero means no duration fee is charged. Mutually exclusive with durationFeeLimit.",
                    "nullable": true
                  },
                  "dayPricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`dayIdleFeePerMinute`), the regular day duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "nightPricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`nightIdleFeePerMinute`), the regular night duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "dayIdleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\nWhen configured, this fee applies during idle periods (when no charging is occurring) and replaces the regular day duration fee (`dayPricePerPeriod`). If not configured, the regular day duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "nightIdleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\nWhen configured, this fee applies during idle periods (when no charging is occurring) and replaces the regular night duration fee (`nightPricePerPeriod`). If not configured, the regular night duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "idleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging). Up to 5 digits after the decimal point depending on the currency precision.\n\n**For duration+energy tariffs:** When configured, this fee applies during idle periods and replaces the regular duration fee (`pricePerPeriod`). If not configured, the regular duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "idleFeeGracePeriodMinutes": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee grace period (min). Optional. The interpretation of this field depends on `idleFeeGracePeriodMode`:\n\n- When mode is `idle_detection` (default): The user is given this grace period after idle state is detected (no charging) to remove the vehicle, before idle fee starts applying.\n- When mode is `session_start`: This represents the minimum session duration before idle fee applies. Idle fee will not be charged until the session has been active for at least this many minutes.\n",
                    "nullable": true
                  },
                  "idleFeeGracePeriodMode": {
                    "type": "string",
                    "enum": [
                      "idle_detection",
                      "session_start"
                    ],
                    "description": "Determines when the idle fee grace period timer starts counting.\n\n- `idle_detection` (default): Grace period begins when idle state is detected (vehicle stops charging but remains connected).\n- `session_start`: Grace period begins from session start time. Idle fee will not apply until the session has been active for at least the grace period duration.\n\nApplicable tariff types: `duration+energy`, `duration+energy time of day`, `energy tou`, `standard_tod`.\n"
                  },
                  "idlePricingPeriodInMinutes": {
                    "type": "number",
                    "enum": [
                      1,
                      15,
                      30,
                      60,
                      240,
                      360
                    ],
                    "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging).",
                    "nullable": true
                  },
                  "idleFeePeriodStart": {
                    "type": "string",
                    "format": "time",
                    "description": "Defined start time for the application of idle fee.",
                    "nullable": true
                  },
                  "idleFeePeriodEnd": {
                    "type": "string",
                    "format": "time",
                    "description": "Defined end time for the application of idle fee.",
                    "nullable": true
                  },
                  "idleFeeLimit": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee limit for the whole session if fee is applied.",
                    "nullable": true
                  },
                  "idleFeeCapMinutes": {
                    "type": "integer",
                    "description": "Maximum billable idle time in minutes. A value of zero means no idle fee is charged. Mutually exclusive with idleFeeLimit.",
                    "nullable": true
                  },
                  "connectionFeeMinimumSessionDuration": {
                    "type": "integer",
                    "description": "Connection Fee Minimum Session Duration (min). Optional.",
                    "nullable": true
                  },
                  "connectionFeeMinimumSessionEnergy": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Connection Fee Minimum Session Energy (kWh). Optional. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "durationFeeGracePeriod": {
                    "type": "integer",
                    "description": "Duration Fee Grace Period (min). Optional.",
                    "nullable": true
                  },
                  "minPrice": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Min. price. Sets a minimum total amount per session. This is helpful in the case your payment service provider has a minimum transaction size or high transaction fees and you want to make sure to have a positive ROI per transaction. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "preAuthorizeAmount": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Pre-authorize amount. The amount to pre-authorize before starting a session. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "incrementalPreAuthorizationAmount": {
                    "type": "number",
                    "format": "decimal",
                    "description": "The resolved incremental pre-authorization amount for the requesting user context, in the tariff's currency. When the request targets an ad-hoc user (`filter[userId]=null` and the tariff has ad-hoc users enabled), returns the ad-hoc cascade (ad-hoc tariff override → tariff override → global default); otherwise returns the regular cascade (tariff override → global default). Omitted from the response when incremental pre-authorizations are disabled or no amount is configured. On create/update, accept `null` to clear the regular tariff-level override (mirrors `preAuthorizeAmount`); accepted regardless of the global \"Enable incremental pre-authorizations\" setting.\n"
                  },
                  "taxID": {
                    "type": "integer",
                    "deprecated": true,
                    "description": "If Multi-tax Support has been enabled in the platform settings, you can provide the taxId for the tariff here. If you do not provide a value or provide `null`, the Default tax will be used.\n\nIf Multi-tax Support has not been enabled, any provided value will be ignored.\n",
                    "nullable": true
                  },
                  "chargePointElectricityRate": {
                    "type": "boolean",
                    "description": "Use the Electricity Rate of the Charge Point that is already attached and aims to track the electricity costs."
                  },
                  "fallbackElectricityRateId": {
                    "type": "integer",
                    "description": "When ChargePointElectricityRate is set to *false*, the Electricity Rate ID MUST be supplied in order the electricity rates for the tariff to be known.",
                    "nullable": true
                  },
                  "markupPercentagePerKwh": {
                    "type": "number",
                    "nullable": true
                  },
                  "markupFixedFeePerKwh": {
                    "type": "number",
                    "nullable": true
                  },
                  "flexibleMarkUpAsFixedPerKwh": {
                    "nullable": true,
                    "description": "Set a different fixed markup for different time slots along the day. Applicable for `energy tou` only.",
                    "type": "object",
                    "properties": {
                      "defaultPrice": {
                        "type": "number",
                        "default": 0,
                        "writeOnly": true,
                        "description": "Set price for the intervals not specified in `intervalPricing` field."
                      },
                      "intervalPricing": {
                        "type": "array",
                        "description": "Variable-length time periods for markup pricing. Periods can have any duration and do not need to be uniform. Only explicitly configured periods are returned. Time slots not covered by any interval use the `markupFixedFeePerKwh` value. Overlapping intervals are not allowed.",
                        "items": {
                          "type": "object",
                          "description": "A specific price period. The `startsAt` and `endsAt` times should be provided in the local time zone and not in UTC.\nDepending on the tenant multi timezone configuration either the tenant timezone will be used, or the timezone specific to the corresponding resource.\n",
                          "properties": {
                            "startsAt": {
                              "type": "string",
                              "pattern": "^\\d{2}:\\d{2}$",
                              "description": "The start time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                              "example": "23:45"
                            },
                            "endsAt": {
                              "type": "string",
                              "pattern": "^\\d{2}:\\d{2}$",
                              "description": "The end time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                              "example": "23:45"
                            },
                            "price": {
                              "type": "number",
                              "format": "decimal",
                              "example": 1.23,
                              "description": "The price that will apply for the given price period. Must include tax."
                            }
                          },
                          "required": [
                            "startsAt",
                            "endsAt",
                            "price"
                          ]
                        }
                      }
                    }
                  },
                  "multiPricePerKwh": {
                    "description": "\nCreate the price levels according to the kWh. <br />\nThe first level must have zero value for **firstKwh**. <br />\nThe last level must have an infinity value for **lastKwh**. <br />\nThe **fisrtKwh** value on the current level must be equal to the **lastKwh** value on the previous one. <br />\nInstead of using a price per kWh there is the option for a flat fee per level.\n\nAn example of price levels for kWh is given in the table below.\n\n| First kWh  | Last kWh   | Fee per kWh | Flat Fee    |\n| --------- | ------------| ------------|------------ |\n| 0         | 5.00        | 0.00        | 2.00        |\n| 5.00      | 10.00       | 0.35        | 0.00        |\n| 10.00     | null        | 0.40        | 0.00        |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstKwh": {
                          "type": "number",
                          "multipleOf": 0.01,
                          "example": 0.05
                        },
                        "lastKwh": {
                          "type": "number",
                          "multipleOf": 0.01,
                          "nullable": true,
                          "example": 0.06
                        },
                        "feePerKwh": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.07
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.08
                        }
                      },
                      "required": [
                        "firstKwh"
                      ]
                    }
                  },
                  "multiPricePerDuration": {
                    "description": "\nCreate the price levels according to the duration of the session from the time the charging started.  <br />\nThe first level must have zero value for **firstUnit**. <br />\nThe last level must have an infinity value for **lastUnit**.  <br />\nThe **firstUnit** value on the current level must be greater with one unit from the **lastUnit** value on the previous level. <br />\nThe Unit is created in the **pricePeriodInMinutes** property, the default one is 15 min.  <br />\nThere is the option of applying a flat fee per each level separately.  <br />\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `multiIdleFee`) will apply during idle periods.\n\nAn example of price levels for duration is given in the table below.\n\n| First Unit  | Last Unit   | Fee per Unit | Flat Fee    |\n| ----------- | ------------| -------------|------------ |\n| 0           | 8           | 0.50         | 0.00        |\n| 9           | 24          | 0.55         | 0.00        |\n| 25          | null        | 0.00         | 10.00       |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstUnit": {
                          "type": "integer"
                        },
                        "lastUnit": {
                          "type": "integer",
                          "nullable": true,
                          "example": 1
                        },
                        "feePerUnit": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.05
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0
                        }
                      },
                      "required": [
                        "firstUnit"
                      ]
                    }
                  },
                  "multiIdleFee": {
                    "description": "\nDifferent price levels could be created depending on the duration of the idle period. <br />\nThe first level must have zero value for **firstUnit**. <br />\nThe last level must have an infinity value for **lastUnit**.  <br />\nThe **firstUnit** value on the current level must be greater with one unit from the **lastUnit** value on the previous level. <br />\nThe Unit is created in the **pricePeriodInMinutes** property, the default one is 15 min. <br />\nThere is the option of applying a flat fee per each level separately. <br />\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `multiPricePerDuration`) will be paused.\n\nAn example of price levels for idle periods is given in the table below.\n\n| First Unit  | Last Unit   | Fee per Unit | Flat Fee    |\n| ----------- | ------------| -------------|------------ |\n| 0           | 2           | 0.30         | 0.00        |\n| 3           | 6           | 0.40         | 0.00        |\n| 7           | null        | 0.00         | 0.00        |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstUnit": {
                          "type": "integer"
                        },
                        "lastUnit": {
                          "type": "integer",
                          "nullable": true,
                          "example": 1
                        },
                        "feePerUnit": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.05
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.06
                        }
                      },
                      "required": [
                        "firstUnit"
                      ]
                    }
                  },
                  "regularUsePeriod": {
                    "type": "number",
                    "description": "In minutes. Only for the Peak power level tariff.",
                    "nullable": true
                  },
                  "averagePowerLevels": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 2,
                      "properties": {
                        "averagePowerUpToKw": {
                          "type": "number"
                        },
                        "pricePerMinute": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "averagePowerUpToKw",
                        "pricePerMinute"
                      ]
                    }
                  },
                  "peakPowerLevels": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 2,
                      "properties": {
                        "peakPowerUpToKw": {
                          "type": "number"
                        },
                        "regularPricePerMinute": {
                          "type": "number"
                        },
                        "excessUsePricePerMin": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "peakPowerUpToKw",
                        "regularPricePerMinute",
                        "excessUsePricePerMin"
                      ]
                    }
                  },
                  "timePeriods": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 1,
                      "properties": {
                        "startTime": {
                          "type": "string",
                          "pattern": "^\\d{2}:\\d{2}$",
                          "example": "00:00",
                          "description": "The 24-hour format should be used."
                        },
                        "endTime": {
                          "type": "string",
                          "pattern": "^\\d{2}:\\d{2}$",
                          "example": "00:00",
                          "description": "The 24-hour format should be used."
                        }
                      },
                      "required": [
                        "startTime",
                        "endTime"
                      ]
                    }
                  },
                  "pricePeriods": {
                    "type": "object",
                    "properties": {
                      "connectionFeePeriods": {
                        "type": "object",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "energyFeePeriods": {
                        "type": "object",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "durationFeePeriods": {
                        "type": "object",
                        "description": "Duration fees for each time period. Applicable for standard_tod tariff.\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `idleFeePeriods`) will apply during idle periods.\n",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "idleFeePeriods": {
                        "type": "object",
                        "description": "Idle fees for each time period. Applicable for standard_tod tariff.\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `durationFeePeriods`) will be paused.\n",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      }
                    }
                  },
                  "daysWhenApplied": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "specialDates": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "format": "date"
                          },
                          "example": "2022-01-30"
                        },
                        "idleFeeGracePeriodMinutes": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Idle fee grace period (min). Optional. The interpretation of this field depends on `idleFeeGracePeriodMode`:\n\n- When mode is `idle_detection` (default): The user is given this grace period after idle state is detected (no charging) to remove the vehicle, before idle fee starts applying.\n- When mode is `session_start`: This represents the minimum session duration before idle fee applies. Idle fee will not be charged until the session has been active for at least this many minutes.\n",
                          "nullable": true
                        },
                        "idlePricingPeriodInMinutes": {
                          "type": "number",
                          "enum": [
                            1,
                            15,
                            30,
                            60,
                            240,
                            360
                          ],
                          "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging).",
                          "nullable": true
                        },
                        "connectionFeeMinimumSessionDuration": {
                          "type": "integer",
                          "description": "Connection Fee Minimum Session Duration (min). Optional.",
                          "nullable": true
                        },
                        "connectionFeeMinimumSessionEnergy": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Connection Fee Minimum Session Energy (kWh). Optional. Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true
                        },
                        "durationFeeGracePeriod": {
                          "type": "integer",
                          "description": "Duration Fee Grace Period (min). Optional.",
                          "nullable": true
                        },
                        "pricePeriodInMinutes": {
                          "type": "integer",
                          "enum": [
                            1,
                            15,
                            30,
                            60,
                            240,
                            360
                          ],
                          "description": "Charging period. In minutes. It defines the time-period for charging a fee. Example: If you select 15min then the EV-driver will be charged at the start of every 15min of EV-charging. Applicable for duration+energy and duration+energy time of day",
                          "nullable": true
                        },
                        "pricePeriods": {
                          "type": "object",
                          "minItems": 1,
                          "properties": {
                            "connectionFeePeriods": {
                              "type": "object",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "energyFeePeriods": {
                              "type": "object",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "durationFeePeriods": {
                              "type": "object",
                              "description": "Duration fees for each time period. Applicable for standard_tod tariff.\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `idleFeePeriods`) will apply during idle periods.\n",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "idleFeePeriods": {
                              "type": "object",
                              "description": "Idle fees for each time period. Applicable for standard_tod tariff.\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `durationFeePeriods`) will be paused.\n",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "description": "When left empty, this means that this is the standard pricing that would be applied in general without taking into consideration the day."
                  },
                  "thresholdPriceForEnergy": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price for kWh to be considered by Optimised charging for setting the charging periods.",
                    "nullable": true
                  },
                  "priceForEnergyWhenOptimized": {
                    "type": "number",
                    "format": "decimal",
                    "nullable": true
                  },
                  "optimisedLabel": {
                    "type": "string",
                    "nullable": true
                  },
                  "durationFeeFrom": {
                    "type": "string",
                    "format": "time",
                    "nullable": true,
                    "description": "Defined start time for the application of duration fees."
                  },
                  "durationFeeTo": {
                    "type": "string",
                    "format": "time",
                    "nullable": true,
                    "description": "Defined end time for the application of duration fees."
                  },
                  "subsidyIntegrationId": {
                    "type": "integer",
                    "description": "**This property is deprecated**\n\nUse `subsidy.integrationId` instead.\n\nThe subsidy integration id that should be applied for this tariff. Only valid for Energy ToU tariffs. Please use the admin panel for the specific integration id. Optional.\n",
                    "nullable": true,
                    "deprecated": true
                  },
                  "subsidy": {
                    "type": "object",
                    "description": "Subsidy parameters for this tariff. Only applicable for Energy ToU tariffs. Omitted when no subsidy is configured.",
                    "properties": {
                      "integrationId": {
                        "type": "integer",
                        "description": "The ID of the subsidy integration that is active on the tariff (or was active when the snapshot was taken)."
                      },
                      "threshold": {
                        "type": "number",
                        "description": "The energy price threshold (in the operator's currency per kWh) above which the subsidy applies."
                      },
                      "compensationRate": {
                        "type": "number",
                        "description": "The compensation rate as a percentage (e.g., 90 for 90%)."
                      }
                    },
                    "required": [
                      "integrationId",
                      "threshold",
                      "compensationRate"
                    ]
                  },
                  "lockPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled the tariff of the charger will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for:\n  - `duration+energy time of day` - it locks duration and energy price components\n  - `energy tou` - it locks energy component only\n"
                  },
                  "lockEnergyPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled the tariff of the charger will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for `standard_tod tariff`.\n"
                  },
                  "lockDurationPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled, the energy fee component of the tariff will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for `standard_tod tariff`.\n"
                  },
                  "lockIdlePriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled, the duration fee component of the tariff will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the whole duration of their session.\nApplicable only for `standard_tod tariff`\n"
                  },
                  "stateOfChargeIdleThreshold": {
                    "nullable": true,
                    "type": "integer",
                    "enum": [
                      75,
                      80,
                      85,
                      90,
                      95,
                      100
                    ],
                    "description": "Switches the session to idle when the SoC (%) exceeds the selected value. Leave empty to use the system wide setting.\nThis option will take effect only if `Allow custom SoC (%) threshold per Tariff` is set in `Idle period detection` setting.\nThis only applies to local charge points, it does not affect sessions on roaming charge points. Leave empty to use the system wide setting.\n"
                  },
                  "averagePowerIdleThreshold": {
                    "nullable": true,
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "maximum": 999999.99,
                    "description": "Sets the session to idle state when the average kW for the past 5 minutes is below the set threshold.\nThis option will take effect only if `Allow custom power threshold per Tariff` is set in `Idle period detection` setting.\n"
                  }
                }
              },
              "discountTariffSettings": {
                "type": "object",
                "description": "Discount configuration for discount based tariffs. Present only when `type=discount based`, omitted otherwise.\n",
                "properties": {
                  "discountReferenceType": {
                    "type": "string",
                    "enum": [
                      "base_tariff",
                      "specific_tariff",
                      "roaming_tariff"
                    ],
                    "description": "Determines which tariff the discount is applied to.\n\n- `base_tariff` — the discount applies to the base tariff of the tariff group the discount tariff belongs to.\n- `specific_tariff` — the discount applies to the tariff identified by `referencedTariffId`.\n- `roaming_tariff` — the discount applies to the CPO wholesale tariff resolved at session time via OCPI. The exact source tariff is unknown at configuration time and varies per CPO partner and per session.\n"
                  },
                  "referencedTariffId": {
                    "type": "integer",
                    "description": "Present when `discountReferenceType=specific_tariff`. Omitted otherwise.\n\nMust reference a non-derived priced tariff owned by the same operator that is not itself `discount based`, `free`, or `charging not allowed`. Submitting a referenced tariff that violates these constraints is rejected with HTTP 422. Compatibility between a `base_tariff` discount and the actual base tariff of the tariff group is enforced when the discount tariff is added to a tariff group, and a `base_tariff` discount applied to a `free` or `charging not allowed` base tariff is rejected with HTTP 422 at that point.\n\nProhibited when `discountReferenceType=roaming_tariff`.\n"
                  },
                  "discountMode": {
                    "type": "string",
                    "enum": [
                      "global",
                      "per_element"
                    ],
                    "description": "Determines how the discount is applied. Required when `discountReferenceType` is `base_tariff` or `specific_tariff`.\n\n- `global` — a single `discountPercentage` is applied to every fee component of the referenced tariff.\n- `per_element` — different discount values are applied per fee component, configured via `discountElements`.\n\nProhibited when `discountReferenceType=roaming_tariff` (roaming discounts are always applied globally).\n"
                  },
                  "discountPercentage": {
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "maximum": 100,
                    "description": "Present when `discountMode=global` and `discountReferenceType` is `base_tariff` or `specific_tariff`. Omitted otherwise.\n\nPercentage discount in the range `0` to `100` applied to every fee component of the referenced tariff. Out-of-range values are rejected with HTTP 422.\n\nProhibited when `discountReferenceType=roaming_tariff` (use `discountValue` instead).\n"
                  },
                  "discountType": {
                    "type": "string",
                    "enum": [
                      "percentage",
                      "flat_amount"
                    ],
                    "description": "Present when `discountReferenceType=roaming_tariff`. Prohibited otherwise.\n\n- `percentage` — `discountValue` is interpreted as a percentage from 0 to 100.\n- `flat_amount` — `discountValue` is interpreted as a fixed currency amount to subtract from each CPO price component.\n"
                  },
                  "discountValue": {
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "description": "Present when `discountReferenceType=roaming_tariff`. Prohibited otherwise.\n\nThe discount value, interpreted according to `discountType`. When `discountType` is `percentage`, the maximum is `100`. When `discountType` is `flat_amount`, the value represents a fixed currency amount with no upper bound.\n"
                  },
                  "discountElements": {
                    "type": "array",
                    "description": "Present when `discountMode=per_element` and `discountReferenceType` is `base_tariff` or `specific_tariff`. Omitted otherwise.\n\nEach entry configures a discount for a specific fee component of the referenced tariff. At least one entry is required.\n\nProhibited when `discountReferenceType=roaming_tariff`.\n",
                    "items": {
                      "type": "object",
                      "properties": {
                        "serviceFeeType": {
                          "type": "string",
                          "enum": [
                            "flat",
                            "connection",
                            "energy",
                            "charging_time",
                            "idle_time",
                            "min_price",
                            "service_fee"
                          ],
                          "description": "The fee component of the referenced tariff that this discount applies to. Only discount-eligible fee types are accepted."
                        },
                        "discountType": {
                          "type": "string",
                          "enum": [
                            "percentage",
                            "flat_amount"
                          ],
                          "description": "- `percentage` — `discountValue` is interpreted as a percentage from 0 to 100.\n- `flat_amount` — `discountValue` is interpreted as a fixed amount in the operator's currency that is subtracted from the fee component.\n"
                        },
                        "discountValue": {
                          "type": "number",
                          "format": "decimal",
                          "minimum": 0,
                          "description": "The discount value, interpreted according to `discountType`. When `discountType` is `percentage`, the maximum is 100.\n"
                        }
                      },
                      "required": [
                        "serviceFeeType",
                        "discountType",
                        "discountValue"
                      ]
                    }
                  }
                }
              },
              "currency": {
                "type": "string",
                "description": "ISO 4217 currency code",
                "readOnly": true
              },
              "stopSession": {
                "type": "object",
                "properties": {
                  "timeLimitMinutes": {
                    "type": "number",
                    "description": "Session max time. The maximum minutes a session is allowed to run. Skip for no time limit.",
                    "nullable": true
                  },
                  "stopWhenEnergyExceedsKwh": {
                    "type": "number",
                    "description": "The maximum energy (kWh) allowed per session. Skip for no limit.",
                    "nullable": true
                  },
                  "stopWhenSocExceedsPercent": {
                    "type": "integer",
                    "minimum": 70,
                    "maximum": 99,
                    "description": "Stop the session when the vehicle's reported State of Charge reaches or exceeds this value. If the charge point does not report SoC, this criterion is ignored. Accepts values between 70 and 99.",
                    "nullable": true
                  }
                }
              },
              "restrictions": {
                "type": "object",
                "properties": {
                  "applyToUsersOfChargePointOwner": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to users of the partner, who is set as owner of the charge point",
                    "deprecated": true
                  },
                  "applyToUsersOfChargePointPartner": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to users of the partner, who is set as owner of the charge point"
                  },
                  "applyToUsersOfAllRoamingEmsps": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to users of all eMSPs, which are roaming partners"
                  },
                  "applyToAdHocUsers": {
                    "type": "boolean",
                    "description": "Makes the tariff valid for non-registered users(ad-hoc charging). Mutually exclusive with applyToAdHocOperatorIds."
                  },
                  "adHocPreAuthorizeAmount": {
                    "type": "number",
                    "description": "Sets the amount that would be blocked on the user's card at the start of the session. Required if applyToAdHocUsers is true or applyToAdHocOperatorIds is non-empty, and one of the following billing strategies is chosen: `Require payment method and authorize certain amount before starting session` or `Require payment method OR minimum amount in balance`.",
                    "multipleOf": 0.01,
                    "nullable": true,
                    "minimum": 0
                  },
                  "adHocIncrementalPreAuthorizationAmount": {
                    "type": "number",
                    "description": "The resolved incremental pre-authorization amount for ad-hoc users, in the tariff's currency. Follows the cascade ad-hoc tariff override → tariff override → global default from user billing settings. Omitted from the response when incremental pre-authorizations are disabled, no amount is configured at any cascade level, or the tariff does not have ad-hoc users enabled. On create/update, accept `null` to clear the ad-hoc tariff-level override; accepted only when the tariff has ad-hoc users enabled, regardless of the global \"Enable incremental pre-authorizations\" setting.\n",
                    "multipleOf": 0.01,
                    "minimum": 0
                  },
                  "adHocStopWhenPreAuthorizedAmountFallsBelow": {
                    "type": "number",
                    "description": "Set the minimum pre-authorized amount threshold. When the remaining ad hoc pre-authorized amount falls below this value, the charging session will automatically stop to prevent revenue loss.\n",
                    "multipleOf": 0.01
                  },
                  "applyToAdHocOperatorIds": {
                    "type": "array",
                    "description": "An array of operator IDs. Makes the tariff apply to registered users from specific operators when charging ad-hoc (cross-operator charging without internal roaming). Mutually exclusive with applyToAdHocUsers.",
                    "items": {
                      "type": "integer",
                      "minimum": 1
                    }
                  },
                  "applyToUsersOfPartners": {
                    "type": "array",
                    "description": "Users of specific Partners. Provide a list of partner IDs. Matches if the user is a invited to at least one of the partners.",
                    "items": {
                      "type": "number"
                    }
                  },
                  "applyToUsersWithGroups": {
                    "deprecated": true,
                    "type": "array",
                    "description": "Users with a specific group. Provide a list of user groups. Matches if the user is a member of at least one of the groups. Note: Due to improvements in the user groups, this property could be used with some limitations: \n 1) The value(s) should exactly match the name(s) of the user groups. \n 2) It would not be possible to create a user group from here anymore. \n 3) If there are duplicates, the value would not be accepted.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "applyToHomeChargingOwner": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to the driver who owns the home charge point (the driver, not the partner that manages it)"
                  },
                  "applyToHomeChargingSharedUsers": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to the drivers the owner has shared the home charge point with (accepted shares only)"
                  },
                  "applyToUserGroupIds": {
                    "type": "array",
                    "description": "An array of user group IDs. Users with a specific group. Provide a list of user group IDs. This restriction applies if the user is a member of at least one of the groups.",
                    "items": {
                      "type": "number"
                    }
                  },
                  "applyToUsersWithSubscriptions": {
                    "type": "array",
                    "description": "Users with a specific subscription plan. Provide a list of subscription plan IDs. Matches if the user has active one of the subscription plans.",
                    "items": {
                      "type": "number"
                    }
                  },
                  "applyToAuthorizationMethods": {
                    "type": "array",
                    "description": "The tariff applies to local users (non-roaming) who authorize using any of the selected methods. When omitted or empty, the tariff applies regardless of authorization method.\nValues align with the `Authorization.method` property:\n- `id_tag` - Authorization via physical RFID card\n- `mac_address` - Authorization via vehicle MAC address (AutoCharge)\n- `user_device` - Authorization via mobile app or web portal\n- `plug_and_charge` - Authorization via Plug & Charge protocol\n- `plug_and_charge_iso15118` - Authorization via ISO15118 Plug & Charge protocol\n",
                    "items": {
                      "type": "string",
                      "enum": [
                        "id_tag",
                        "mac_address",
                        "user_device",
                        "plug_and_charge",
                        "plug_and_charge_iso15118"
                      ]
                    }
                  },
                  "startDate": {
                    "type": "string",
                    "format": "date",
                    "description": "The date from which the tariff becomes valid.",
                    "nullable": true
                  },
                  "endDate": {
                    "type": "string",
                    "format": "date",
                    "description": "The expiry date of the tariff. The tariff is valid until this date inclusive.",
                    "nullable": true
                  }
                }
              },
              "partner": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "nullable": true,
                    "description": "The assigned Partner will have access to make changes to the tariff."
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "display": {
                "type": "object",
                "properties": {
                  "defaultPriceInformation": {
                    "type": "string",
                    "maxLength": 150,
                    "nullable": true,
                    "deprecated": true,
                    "description": "Deprecated: use the tariff group resource to manage this field."
                  },
                  "defaultPriceInformationOffline": {
                    "type": "string",
                    "maxLength": 150,
                    "nullable": true,
                    "deprecated": true,
                    "description": "Deprecated: use the tariff group resource to manage this field."
                  },
                  "priceInformation": {
                    "type": "string",
                    "nullable": true,
                    "deprecated": true,
                    "description": "**This property is deprecated. Use `priceInformationLocalized` instead.** The scalar field only carries the default-locale value and cannot round-trip multi-locale content.\n\nThe information that would be shown on the display of the charge point for users that are eligible for this tariff.\n"
                  },
                  "priceInformationLocalized": {
                    "type": "object",
                    "nullable": true,
                    "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                    "additionalProperties": {
                      "type": "string",
                      "nullable": true
                    },
                    "example": {
                      "en": "example",
                      "fr": "affaire"
                    }
                  },
                  "totalCostInformation": {
                    "type": "string",
                    "nullable": true,
                    "deprecated": true,
                    "description": "**This property is deprecated. Use `totalCostInformationLocalized` instead.** The scalar field only carries the default-locale value and cannot round-trip multi-locale content.\n\nAdditional information that would be displayed on the charge point when the session ends, along with the total fees for energy, duration and idle.\n"
                  },
                  "totalCostInformationLocalized": {
                    "type": "object",
                    "nullable": true,
                    "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                    "additionalProperties": {
                      "type": "string",
                      "nullable": true
                    },
                    "example": {
                      "en": "example",
                      "fr": "affaire"
                    }
                  },
                  "plainTextModeEnabled": {
                    "type": "boolean",
                    "default": false,
                    "description": "When `true`, the display text is delivered to the charge point without rich text formatting."
                  }
                }
              },
              "integrationId": {
                "type": "integer",
                "nullable": true,
                "description": "References the internal integration configuration that enables this tariff type"
              },
              "externalId": {
                "type": "string",
                "nullable": true,
                "description": "Used to store custom information, usually used for external references or metadata to the resource."
              },
              "tariffId": {
                "type": "integer"
              }
            },
            "required": [
              "id",
              "operatorId",
              "name",
              "type",
              "tariffId"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "tariffsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "name": {
                  "type": "string"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "free",
                    "flat rate",
                    "duration+energy",
                    "duration+energy time of day",
                    "energy tou",
                    "standard",
                    "charging not allowed",
                    "average power levels",
                    "peak power levels",
                    "standard_tod",
                    "optimised dynamic pricing",
                    "discount based"
                  ],
                  "description": "Setting the type to `charging not allowed` or `free` is enough for creating the particular type of tariff."
                },
                "description": {
                  "type": "object",
                  "nullable": true,
                  "additionalProperties": {
                    "type": "string",
                    "nullable": true
                  },
                  "example": {
                    "en": "example",
                    "fr": "affaire"
                  },
                  "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
                },
                "additionalInformation": {
                  "type": "object",
                  "nullable": true,
                  "additionalProperties": {
                    "type": "string",
                    "nullable": true
                  },
                  "example": {
                    "en": "example",
                    "fr": "affaire"
                  },
                  "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
                },
                "learnMoreUrl": {
                  "type": "object",
                  "nullable": true,
                  "additionalProperties": {
                    "type": "string",
                    "nullable": true
                  },
                  "example": {
                    "en": "example",
                    "fr": "affaire"
                  },
                  "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
                },
                "dayTariffStart": {
                  "type": "string",
                  "format": "time",
                  "description": "A time when the day begins"
                },
                "nightTariffStart": {
                  "type": "string",
                  "format": "time",
                  "description": "A time when the night begins"
                },
                "pricing": {
                  "type": "object",
                  "properties": {
                    "pricePerSession": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Price per session. Only applicable with flat rate tariffs. Up to 5 digits after the decimal point depending on the currency precision.",
                      "nullable": true
                    },
                    "connectionFee": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Connection fee. A fixed fee that is applied at the start of the charging session. Up to 5 digits after the decimal point depending on the currency precision.",
                      "nullable": true
                    },
                    "pricePerKwh": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Price per kWh. Up to 5 digits after the decimal point depending on the currency precision.",
                      "nullable": true
                    },
                    "dayPricePerKwh": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Price per kWh during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.",
                      "nullable": true
                    },
                    "nightPricePerKwh": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Price per kWh during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.",
                      "nullable": true
                    },
                    "pricePeriodInMinutes": {
                      "type": "integer",
                      "enum": [
                        1,
                        15,
                        30,
                        60,
                        240,
                        360
                      ],
                      "description": "Charging period. In minutes. It defines the time-period for charging a fee. Example: If you select 15min then the EV-driver will be charged at the start of every 15min of EV-charging. Applicable for duration+energy and duration+energy time of day",
                      "nullable": true
                    },
                    "pricePerPeriod": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Charging fee per period. Applicable for duration+energy. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`idleFeePerMinute`), the regular duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                      "nullable": true
                    },
                    "durationFeeLimit": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Duration fee limit for the whole session if fee is applied.",
                      "nullable": true
                    },
                    "durationFeeCapMinutes": {
                      "type": "integer",
                      "description": "Maximum billable charging duration in minutes. A value of zero means no duration fee is charged. Mutually exclusive with durationFeeLimit.",
                      "nullable": true
                    },
                    "dayPricePerPeriod": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Charging fee per period during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`dayIdleFeePerMinute`), the regular day duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                      "nullable": true
                    },
                    "nightPricePerPeriod": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Charging fee per period during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`nightIdleFeePerMinute`), the regular night duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                      "nullable": true
                    },
                    "dayIdleFeePerMinute": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Idle fee per minute during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\nWhen configured, this fee applies during idle periods (when no charging is occurring) and replaces the regular day duration fee (`dayPricePerPeriod`). If not configured, the regular day duration fee continues to apply during idle periods.\n",
                      "nullable": true
                    },
                    "nightIdleFeePerMinute": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Idle fee per minute during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\nWhen configured, this fee applies during idle periods (when no charging is occurring) and replaces the regular night duration fee (`nightPricePerPeriod`). If not configured, the regular night duration fee continues to apply during idle periods.\n",
                      "nullable": true
                    },
                    "idleFeePerMinute": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging). Up to 5 digits after the decimal point depending on the currency precision.\n\n**For duration+energy tariffs:** When configured, this fee applies during idle periods and replaces the regular duration fee (`pricePerPeriod`). If not configured, the regular duration fee continues to apply during idle periods.\n",
                      "nullable": true
                    },
                    "idleFeeGracePeriodMinutes": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Idle fee grace period (min). Optional. The interpretation of this field depends on `idleFeeGracePeriodMode`:\n\n- When mode is `idle_detection` (default): The user is given this grace period after idle state is detected (no charging) to remove the vehicle, before idle fee starts applying.\n- When mode is `session_start`: This represents the minimum session duration before idle fee applies. Idle fee will not be charged until the session has been active for at least this many minutes.\n",
                      "nullable": true
                    },
                    "idleFeeGracePeriodMode": {
                      "type": "string",
                      "enum": [
                        "idle_detection",
                        "session_start"
                      ],
                      "description": "Determines when the idle fee grace period timer starts counting.\n\n- `idle_detection` (default): Grace period begins when idle state is detected (vehicle stops charging but remains connected).\n- `session_start`: Grace period begins from session start time. Idle fee will not apply until the session has been active for at least the grace period duration.\n\nApplicable tariff types: `duration+energy`, `duration+energy time of day`, `energy tou`, `standard_tod`.\n"
                    },
                    "idlePricingPeriodInMinutes": {
                      "type": "number",
                      "enum": [
                        1,
                        15,
                        30,
                        60,
                        240,
                        360
                      ],
                      "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging).",
                      "nullable": true
                    },
                    "idleFeePeriodStart": {
                      "type": "string",
                      "format": "time",
                      "description": "Defined start time for the application of idle fee.",
                      "nullable": true
                    },
                    "idleFeePeriodEnd": {
                      "type": "string",
                      "format": "time",
                      "description": "Defined end time for the application of idle fee.",
                      "nullable": true
                    },
                    "idleFeeLimit": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Idle fee limit for the whole session if fee is applied.",
                      "nullable": true
                    },
                    "idleFeeCapMinutes": {
                      "type": "integer",
                      "description": "Maximum billable idle time in minutes. A value of zero means no idle fee is charged. Mutually exclusive with idleFeeLimit.",
                      "nullable": true
                    },
                    "connectionFeeMinimumSessionDuration": {
                      "type": "integer",
                      "description": "Connection Fee Minimum Session Duration (min). Optional.",
                      "nullable": true
                    },
                    "connectionFeeMinimumSessionEnergy": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Connection Fee Minimum Session Energy (kWh). Optional. Up to 5 digits after the decimal point depending on the currency precision.",
                      "nullable": true
                    },
                    "durationFeeGracePeriod": {
                      "type": "integer",
                      "description": "Duration Fee Grace Period (min). Optional.",
                      "nullable": true
                    },
                    "minPrice": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Min. price. Sets a minimum total amount per session. This is helpful in the case your payment service provider has a minimum transaction size or high transaction fees and you want to make sure to have a positive ROI per transaction. Up to 5 digits after the decimal point depending on the currency precision.",
                      "nullable": true
                    },
                    "preAuthorizeAmount": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Pre-authorize amount. The amount to pre-authorize before starting a session. Up to 5 digits after the decimal point depending on the currency precision.",
                      "nullable": true
                    },
                    "incrementalPreAuthorizationAmount": {
                      "type": "number",
                      "format": "decimal",
                      "description": "The resolved incremental pre-authorization amount for the requesting user context, in the tariff's currency. When the request targets an ad-hoc user (`filter[userId]=null` and the tariff has ad-hoc users enabled), returns the ad-hoc cascade (ad-hoc tariff override → tariff override → global default); otherwise returns the regular cascade (tariff override → global default). Omitted from the response when incremental pre-authorizations are disabled or no amount is configured. On create/update, accept `null` to clear the regular tariff-level override (mirrors `preAuthorizeAmount`); accepted regardless of the global \"Enable incremental pre-authorizations\" setting.\n"
                    },
                    "taxID": {
                      "type": "integer",
                      "deprecated": true,
                      "description": "If Multi-tax Support has been enabled in the platform settings, you can provide the taxId for the tariff here. If you do not provide a value or provide `null`, the Default tax will be used.\n\nIf Multi-tax Support has not been enabled, any provided value will be ignored.\n",
                      "nullable": true
                    },
                    "chargePointElectricityRate": {
                      "type": "boolean",
                      "description": "Use the Electricity Rate of the Charge Point that is already attached and aims to track the electricity costs."
                    },
                    "fallbackElectricityRateId": {
                      "type": "integer",
                      "description": "When ChargePointElectricityRate is set to *false*, the Electricity Rate ID MUST be supplied in order the electricity rates for the tariff to be known.",
                      "nullable": true
                    },
                    "markupPercentagePerKwh": {
                      "type": "number",
                      "nullable": true
                    },
                    "markupFixedFeePerKwh": {
                      "type": "number",
                      "nullable": true
                    },
                    "flexibleMarkUpAsFixedPerKwh": {
                      "nullable": true,
                      "description": "Set a different fixed markup for different time slots along the day. Applicable for `energy tou` only.",
                      "type": "object",
                      "properties": {
                        "defaultPrice": {
                          "type": "number",
                          "default": 0,
                          "writeOnly": true,
                          "description": "Set price for the intervals not specified in `intervalPricing` field."
                        },
                        "intervalPricing": {
                          "type": "array",
                          "description": "Variable-length time periods for markup pricing. Periods can have any duration and do not need to be uniform. Only explicitly configured periods are returned. Time slots not covered by any interval use the `markupFixedFeePerKwh` value. Overlapping intervals are not allowed.",
                          "items": {
                            "type": "object",
                            "description": "A specific price period. The `startsAt` and `endsAt` times should be provided in the local time zone and not in UTC.\nDepending on the tenant multi timezone configuration either the tenant timezone will be used, or the timezone specific to the corresponding resource.\n",
                            "properties": {
                              "startsAt": {
                                "type": "string",
                                "pattern": "^\\d{2}:\\d{2}$",
                                "description": "The start time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                                "example": "23:45"
                              },
                              "endsAt": {
                                "type": "string",
                                "pattern": "^\\d{2}:\\d{2}$",
                                "description": "The end time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                                "example": "23:45"
                              },
                              "price": {
                                "type": "number",
                                "format": "decimal",
                                "example": 1.23,
                                "description": "The price that will apply for the given price period. Must include tax."
                              }
                            },
                            "required": [
                              "startsAt",
                              "endsAt",
                              "price"
                            ]
                          }
                        }
                      }
                    },
                    "multiPricePerKwh": {
                      "description": "\nCreate the price levels according to the kWh. <br />\nThe first level must have zero value for **firstKwh**. <br />\nThe last level must have an infinity value for **lastKwh**. <br />\nThe **fisrtKwh** value on the current level must be equal to the **lastKwh** value on the previous one. <br />\nInstead of using a price per kWh there is the option for a flat fee per level.\n\nAn example of price levels for kWh is given in the table below.\n\n| First kWh  | Last kWh   | Fee per kWh | Flat Fee    |\n| --------- | ------------| ------------|------------ |\n| 0         | 5.00        | 0.00        | 2.00        |\n| 5.00      | 10.00       | 0.35        | 0.00        |\n| 10.00     | null        | 0.40        | 0.00        |\n\nApplicable for standard tariff.\n",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "firstKwh": {
                            "type": "number",
                            "multipleOf": 0.01,
                            "example": 0.05
                          },
                          "lastKwh": {
                            "type": "number",
                            "multipleOf": 0.01,
                            "nullable": true,
                            "example": 0.06
                          },
                          "feePerKwh": {
                            "type": "number",
                            "format": "decimal",
                            "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                            "nullable": true,
                            "example": 0.07
                          },
                          "flatFee": {
                            "type": "number",
                            "format": "decimal",
                            "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                            "nullable": true,
                            "example": 0.08
                          }
                        },
                        "required": [
                          "firstKwh"
                        ]
                      }
                    },
                    "multiPricePerDuration": {
                      "description": "\nCreate the price levels according to the duration of the session from the time the charging started.  <br />\nThe first level must have zero value for **firstUnit**. <br />\nThe last level must have an infinity value for **lastUnit**.  <br />\nThe **firstUnit** value on the current level must be greater with one unit from the **lastUnit** value on the previous level. <br />\nThe Unit is created in the **pricePeriodInMinutes** property, the default one is 15 min.  <br />\nThere is the option of applying a flat fee per each level separately.  <br />\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `multiIdleFee`) will apply during idle periods.\n\nAn example of price levels for duration is given in the table below.\n\n| First Unit  | Last Unit   | Fee per Unit | Flat Fee    |\n| ----------- | ------------| -------------|------------ |\n| 0           | 8           | 0.50         | 0.00        |\n| 9           | 24          | 0.55         | 0.00        |\n| 25          | null        | 0.00         | 10.00       |\n\nApplicable for standard tariff.\n",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "firstUnit": {
                            "type": "integer"
                          },
                          "lastUnit": {
                            "type": "integer",
                            "nullable": true,
                            "example": 1
                          },
                          "feePerUnit": {
                            "type": "number",
                            "format": "decimal",
                            "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                            "nullable": true,
                            "example": 0.05
                          },
                          "flatFee": {
                            "type": "number",
                            "format": "decimal",
                            "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                            "nullable": true,
                            "example": 0
                          }
                        },
                        "required": [
                          "firstUnit"
                        ]
                      }
                    },
                    "multiIdleFee": {
                      "description": "\nDifferent price levels could be created depending on the duration of the idle period. <br />\nThe first level must have zero value for **firstUnit**. <br />\nThe last level must have an infinity value for **lastUnit**.  <br />\nThe **firstUnit** value on the current level must be greater with one unit from the **lastUnit** value on the previous level. <br />\nThe Unit is created in the **pricePeriodInMinutes** property, the default one is 15 min. <br />\nThere is the option of applying a flat fee per each level separately. <br />\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `multiPricePerDuration`) will be paused.\n\nAn example of price levels for idle periods is given in the table below.\n\n| First Unit  | Last Unit   | Fee per Unit | Flat Fee    |\n| ----------- | ------------| -------------|------------ |\n| 0           | 2           | 0.30         | 0.00        |\n| 3           | 6           | 0.40         | 0.00        |\n| 7           | null        | 0.00         | 0.00        |\n\nApplicable for standard tariff.\n",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "firstUnit": {
                            "type": "integer"
                          },
                          "lastUnit": {
                            "type": "integer",
                            "nullable": true,
                            "example": 1
                          },
                          "feePerUnit": {
                            "type": "number",
                            "format": "decimal",
                            "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                            "nullable": true,
                            "example": 0.05
                          },
                          "flatFee": {
                            "type": "number",
                            "format": "decimal",
                            "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                            "nullable": true,
                            "example": 0.06
                          }
                        },
                        "required": [
                          "firstUnit"
                        ]
                      }
                    },
                    "regularUsePeriod": {
                      "type": "number",
                      "description": "In minutes. Only for the Peak power level tariff.",
                      "nullable": true
                    },
                    "averagePowerLevels": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "minItems": 2,
                        "properties": {
                          "averagePowerUpToKw": {
                            "type": "number"
                          },
                          "pricePerMinute": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "averagePowerUpToKw",
                          "pricePerMinute"
                        ]
                      }
                    },
                    "peakPowerLevels": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "minItems": 2,
                        "properties": {
                          "peakPowerUpToKw": {
                            "type": "number"
                          },
                          "regularPricePerMinute": {
                            "type": "number"
                          },
                          "excessUsePricePerMin": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "peakPowerUpToKw",
                          "regularPricePerMinute",
                          "excessUsePricePerMin"
                        ]
                      }
                    },
                    "timePeriods": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "minItems": 1,
                        "properties": {
                          "startTime": {
                            "type": "string",
                            "pattern": "^\\d{2}:\\d{2}$",
                            "example": "00:00",
                            "description": "The 24-hour format should be used."
                          },
                          "endTime": {
                            "type": "string",
                            "pattern": "^\\d{2}:\\d{2}$",
                            "example": "00:00",
                            "description": "The 24-hour format should be used."
                          }
                        },
                        "required": [
                          "startTime",
                          "endTime"
                        ]
                      }
                    },
                    "pricePeriods": {
                      "type": "object",
                      "properties": {
                        "connectionFeePeriods": {
                          "type": "object",
                          "properties": {
                            "fee": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              }
                            }
                          }
                        },
                        "energyFeePeriods": {
                          "type": "object",
                          "properties": {
                            "fee": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              }
                            }
                          }
                        },
                        "durationFeePeriods": {
                          "type": "object",
                          "description": "Duration fees for each time period. Applicable for standard_tod tariff.\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `idleFeePeriods`) will apply during idle periods.\n",
                          "properties": {
                            "fee": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              }
                            }
                          }
                        },
                        "idleFeePeriods": {
                          "type": "object",
                          "description": "Idle fees for each time period. Applicable for standard_tod tariff.\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `durationFeePeriods`) will be paused.\n",
                          "properties": {
                            "fee": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              }
                            }
                          }
                        }
                      }
                    },
                    "daysWhenApplied": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "specialDates": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "format": "date"
                            },
                            "example": "2022-01-30"
                          },
                          "idleFeeGracePeriodMinutes": {
                            "type": "number",
                            "format": "decimal",
                            "description": "Idle fee grace period (min). Optional. The interpretation of this field depends on `idleFeeGracePeriodMode`:\n\n- When mode is `idle_detection` (default): The user is given this grace period after idle state is detected (no charging) to remove the vehicle, before idle fee starts applying.\n- When mode is `session_start`: This represents the minimum session duration before idle fee applies. Idle fee will not be charged until the session has been active for at least this many minutes.\n",
                            "nullable": true
                          },
                          "idlePricingPeriodInMinutes": {
                            "type": "number",
                            "enum": [
                              1,
                              15,
                              30,
                              60,
                              240,
                              360
                            ],
                            "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging).",
                            "nullable": true
                          },
                          "connectionFeeMinimumSessionDuration": {
                            "type": "integer",
                            "description": "Connection Fee Minimum Session Duration (min). Optional.",
                            "nullable": true
                          },
                          "connectionFeeMinimumSessionEnergy": {
                            "type": "number",
                            "format": "decimal",
                            "description": "Connection Fee Minimum Session Energy (kWh). Optional. Up to 5 digits after the decimal point depending on the currency precision.",
                            "nullable": true
                          },
                          "durationFeeGracePeriod": {
                            "type": "integer",
                            "description": "Duration Fee Grace Period (min). Optional.",
                            "nullable": true
                          },
                          "pricePeriodInMinutes": {
                            "type": "integer",
                            "enum": [
                              1,
                              15,
                              30,
                              60,
                              240,
                              360
                            ],
                            "description": "Charging period. In minutes. It defines the time-period for charging a fee. Example: If you select 15min then the EV-driver will be charged at the start of every 15min of EV-charging. Applicable for duration+energy and duration+energy time of day",
                            "nullable": true
                          },
                          "pricePeriods": {
                            "type": "object",
                            "minItems": 1,
                            "properties": {
                              "connectionFeePeriods": {
                                "type": "object",
                                "properties": {
                                  "fee": {
                                    "type": "array",
                                    "items": {
                                      "type": "number"
                                    }
                                  }
                                }
                              },
                              "energyFeePeriods": {
                                "type": "object",
                                "properties": {
                                  "fee": {
                                    "type": "array",
                                    "items": {
                                      "type": "number"
                                    }
                                  }
                                }
                              },
                              "durationFeePeriods": {
                                "type": "object",
                                "description": "Duration fees for each time period. Applicable for standard_tod tariff.\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `idleFeePeriods`) will apply during idle periods.\n",
                                "properties": {
                                  "fee": {
                                    "type": "array",
                                    "items": {
                                      "type": "number"
                                    }
                                  }
                                }
                              },
                              "idleFeePeriods": {
                                "type": "object",
                                "description": "Idle fees for each time period. Applicable for standard_tod tariff.\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `durationFeePeriods`) will be paused.\n",
                                "properties": {
                                  "fee": {
                                    "type": "array",
                                    "items": {
                                      "type": "number"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      "description": "When left empty, this means that this is the standard pricing that would be applied in general without taking into consideration the day."
                    },
                    "thresholdPriceForEnergy": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Price for kWh to be considered by Optimised charging for setting the charging periods.",
                      "nullable": true
                    },
                    "priceForEnergyWhenOptimized": {
                      "type": "number",
                      "format": "decimal",
                      "nullable": true
                    },
                    "optimisedLabel": {
                      "type": "string",
                      "nullable": true
                    },
                    "durationFeeFrom": {
                      "type": "string",
                      "format": "time",
                      "nullable": true,
                      "description": "Defined start time for the application of duration fees."
                    },
                    "durationFeeTo": {
                      "type": "string",
                      "format": "time",
                      "nullable": true,
                      "description": "Defined end time for the application of duration fees."
                    },
                    "subsidyIntegrationId": {
                      "type": "integer",
                      "description": "**This property is deprecated**\n\nUse `subsidy.integrationId` instead.\n\nThe subsidy integration id that should be applied for this tariff. Only valid for Energy ToU tariffs. Please use the admin panel for the specific integration id. Optional.\n",
                      "nullable": true,
                      "deprecated": true
                    },
                    "subsidy": {
                      "type": "object",
                      "description": "Subsidy parameters for this tariff. Only applicable for Energy ToU tariffs. Omitted when no subsidy is configured.",
                      "properties": {
                        "integrationId": {
                          "type": "integer",
                          "description": "The ID of the subsidy integration that is active on the tariff (or was active when the snapshot was taken)."
                        },
                        "threshold": {
                          "type": "number",
                          "description": "The energy price threshold (in the operator's currency per kWh) above which the subsidy applies."
                        },
                        "compensationRate": {
                          "type": "number",
                          "description": "The compensation rate as a percentage (e.g., 90 for 90%)."
                        }
                      },
                      "required": [
                        "integrationId",
                        "threshold",
                        "compensationRate"
                      ]
                    },
                    "lockPriceOnSessionStart": {
                      "type": "boolean",
                      "default": false,
                      "description": "When enabled the tariff of the charger will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for:\n  - `duration+energy time of day` - it locks duration and energy price components\n  - `energy tou` - it locks energy component only\n"
                    },
                    "lockEnergyPriceOnSessionStart": {
                      "type": "boolean",
                      "default": false,
                      "description": "When enabled the tariff of the charger will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for `standard_tod tariff`.\n"
                    },
                    "lockDurationPriceOnSessionStart": {
                      "type": "boolean",
                      "default": false,
                      "description": "When enabled, the energy fee component of the tariff will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for `standard_tod tariff`.\n"
                    },
                    "lockIdlePriceOnSessionStart": {
                      "type": "boolean",
                      "default": false,
                      "description": "When enabled, the duration fee component of the tariff will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the whole duration of their session.\nApplicable only for `standard_tod tariff`\n"
                    },
                    "stateOfChargeIdleThreshold": {
                      "nullable": true,
                      "type": "integer",
                      "enum": [
                        75,
                        80,
                        85,
                        90,
                        95,
                        100
                      ],
                      "description": "Switches the session to idle when the SoC (%) exceeds the selected value. Leave empty to use the system wide setting.\nThis option will take effect only if `Allow custom SoC (%) threshold per Tariff` is set in `Idle period detection` setting.\nThis only applies to local charge points, it does not affect sessions on roaming charge points. Leave empty to use the system wide setting.\n"
                    },
                    "averagePowerIdleThreshold": {
                      "nullable": true,
                      "type": "number",
                      "format": "decimal",
                      "minimum": 0,
                      "maximum": 999999.99,
                      "description": "Sets the session to idle state when the average kW for the past 5 minutes is below the set threshold.\nThis option will take effect only if `Allow custom power threshold per Tariff` is set in `Idle period detection` setting.\n"
                    }
                  }
                },
                "discountTariffSettings": {
                  "type": "object",
                  "description": "Discount configuration for discount based tariffs. Present only when `type=discount based`, omitted otherwise.\n",
                  "properties": {
                    "discountReferenceType": {
                      "type": "string",
                      "enum": [
                        "base_tariff",
                        "specific_tariff",
                        "roaming_tariff"
                      ],
                      "description": "Determines which tariff the discount is applied to.\n\n- `base_tariff` — the discount applies to the base tariff of the tariff group the discount tariff belongs to.\n- `specific_tariff` — the discount applies to the tariff identified by `referencedTariffId`.\n- `roaming_tariff` — the discount applies to the CPO wholesale tariff resolved at session time via OCPI. The exact source tariff is unknown at configuration time and varies per CPO partner and per session.\n"
                    },
                    "referencedTariffId": {
                      "type": "integer",
                      "description": "Present when `discountReferenceType=specific_tariff`. Omitted otherwise.\n\nMust reference a non-derived priced tariff owned by the same operator that is not itself `discount based`, `free`, or `charging not allowed`. Submitting a referenced tariff that violates these constraints is rejected with HTTP 422. Compatibility between a `base_tariff` discount and the actual base tariff of the tariff group is enforced when the discount tariff is added to a tariff group, and a `base_tariff` discount applied to a `free` or `charging not allowed` base tariff is rejected with HTTP 422 at that point.\n\nProhibited when `discountReferenceType=roaming_tariff`.\n"
                    },
                    "discountMode": {
                      "type": "string",
                      "enum": [
                        "global",
                        "per_element"
                      ],
                      "description": "Determines how the discount is applied. Required when `discountReferenceType` is `base_tariff` or `specific_tariff`.\n\n- `global` — a single `discountPercentage` is applied to every fee component of the referenced tariff.\n- `per_element` — different discount values are applied per fee component, configured via `discountElements`.\n\nProhibited when `discountReferenceType=roaming_tariff` (roaming discounts are always applied globally).\n"
                    },
                    "discountPercentage": {
                      "type": "number",
                      "format": "decimal",
                      "minimum": 0,
                      "maximum": 100,
                      "description": "Present when `discountMode=global` and `discountReferenceType` is `base_tariff` or `specific_tariff`. Omitted otherwise.\n\nPercentage discount in the range `0` to `100` applied to every fee component of the referenced tariff. Out-of-range values are rejected with HTTP 422.\n\nProhibited when `discountReferenceType=roaming_tariff` (use `discountValue` instead).\n"
                    },
                    "discountType": {
                      "type": "string",
                      "enum": [
                        "percentage",
                        "flat_amount"
                      ],
                      "description": "Present when `discountReferenceType=roaming_tariff`. Prohibited otherwise.\n\n- `percentage` — `discountValue` is interpreted as a percentage from 0 to 100.\n- `flat_amount` — `discountValue` is interpreted as a fixed currency amount to subtract from each CPO price component.\n"
                    },
                    "discountValue": {
                      "type": "number",
                      "format": "decimal",
                      "minimum": 0,
                      "description": "Present when `discountReferenceType=roaming_tariff`. Prohibited otherwise.\n\nThe discount value, interpreted according to `discountType`. When `discountType` is `percentage`, the maximum is `100`. When `discountType` is `flat_amount`, the value represents a fixed currency amount with no upper bound.\n"
                    },
                    "discountElements": {
                      "type": "array",
                      "description": "Present when `discountMode=per_element` and `discountReferenceType` is `base_tariff` or `specific_tariff`. Omitted otherwise.\n\nEach entry configures a discount for a specific fee component of the referenced tariff. At least one entry is required.\n\nProhibited when `discountReferenceType=roaming_tariff`.\n",
                      "items": {
                        "type": "object",
                        "properties": {
                          "serviceFeeType": {
                            "type": "string",
                            "enum": [
                              "flat",
                              "connection",
                              "energy",
                              "charging_time",
                              "idle_time",
                              "min_price",
                              "service_fee"
                            ],
                            "description": "The fee component of the referenced tariff that this discount applies to. Only discount-eligible fee types are accepted."
                          },
                          "discountType": {
                            "type": "string",
                            "enum": [
                              "percentage",
                              "flat_amount"
                            ],
                            "description": "- `percentage` — `discountValue` is interpreted as a percentage from 0 to 100.\n- `flat_amount` — `discountValue` is interpreted as a fixed amount in the operator's currency that is subtracted from the fee component.\n"
                          },
                          "discountValue": {
                            "type": "number",
                            "format": "decimal",
                            "minimum": 0,
                            "description": "The discount value, interpreted according to `discountType`. When `discountType` is `percentage`, the maximum is 100.\n"
                          }
                        },
                        "required": [
                          "serviceFeeType",
                          "discountType",
                          "discountValue"
                        ]
                      }
                    }
                  }
                },
                "currency": {
                  "type": "string",
                  "description": "ISO 4217 currency code",
                  "readOnly": true
                },
                "stopSession": {
                  "type": "object",
                  "properties": {
                    "timeLimitMinutes": {
                      "type": "number",
                      "description": "Session max time. The maximum minutes a session is allowed to run. Skip for no time limit.",
                      "nullable": true
                    },
                    "stopWhenEnergyExceedsKwh": {
                      "type": "number",
                      "description": "The maximum energy (kWh) allowed per session. Skip for no limit.",
                      "nullable": true
                    },
                    "stopWhenSocExceedsPercent": {
                      "type": "integer",
                      "minimum": 70,
                      "maximum": 99,
                      "description": "Stop the session when the vehicle's reported State of Charge reaches or exceeds this value. If the charge point does not report SoC, this criterion is ignored. Accepts values between 70 and 99.",
                      "nullable": true
                    }
                  }
                },
                "restrictions": {
                  "type": "object",
                  "properties": {
                    "applyToUsersOfChargePointOwner": {
                      "type": "boolean",
                      "description": "Makes the tariff apply to users of the partner, who is set as owner of the charge point",
                      "deprecated": true
                    },
                    "applyToUsersOfChargePointPartner": {
                      "type": "boolean",
                      "description": "Makes the tariff apply to users of the partner, who is set as owner of the charge point"
                    },
                    "applyToUsersOfAllRoamingEmsps": {
                      "type": "boolean",
                      "description": "Makes the tariff apply to users of all eMSPs, which are roaming partners"
                    },
                    "applyToAdHocUsers": {
                      "type": "boolean",
                      "description": "Makes the tariff valid for non-registered users(ad-hoc charging). Mutually exclusive with applyToAdHocOperatorIds."
                    },
                    "adHocPreAuthorizeAmount": {
                      "type": "number",
                      "description": "Sets the amount that would be blocked on the user's card at the start of the session. Required if applyToAdHocUsers is true or applyToAdHocOperatorIds is non-empty, and one of the following billing strategies is chosen: `Require payment method and authorize certain amount before starting session` or `Require payment method OR minimum amount in balance`.",
                      "multipleOf": 0.01,
                      "nullable": true,
                      "minimum": 0
                    },
                    "adHocIncrementalPreAuthorizationAmount": {
                      "type": "number",
                      "description": "The resolved incremental pre-authorization amount for ad-hoc users, in the tariff's currency. Follows the cascade ad-hoc tariff override → tariff override → global default from user billing settings. Omitted from the response when incremental pre-authorizations are disabled, no amount is configured at any cascade level, or the tariff does not have ad-hoc users enabled. On create/update, accept `null` to clear the ad-hoc tariff-level override; accepted only when the tariff has ad-hoc users enabled, regardless of the global \"Enable incremental pre-authorizations\" setting.\n",
                      "multipleOf": 0.01,
                      "minimum": 0
                    },
                    "adHocStopWhenPreAuthorizedAmountFallsBelow": {
                      "type": "number",
                      "description": "Set the minimum pre-authorized amount threshold. When the remaining ad hoc pre-authorized amount falls below this value, the charging session will automatically stop to prevent revenue loss.\n",
                      "multipleOf": 0.01
                    },
                    "applyToAdHocOperatorIds": {
                      "type": "array",
                      "description": "An array of operator IDs. Makes the tariff apply to registered users from specific operators when charging ad-hoc (cross-operator charging without internal roaming). Mutually exclusive with applyToAdHocUsers.",
                      "items": {
                        "type": "integer",
                        "minimum": 1
                      }
                    },
                    "applyToUsersOfPartners": {
                      "type": "array",
                      "description": "Users of specific Partners. Provide a list of partner IDs. Matches if the user is a invited to at least one of the partners.",
                      "items": {
                        "type": "number"
                      }
                    },
                    "applyToUsersWithGroups": {
                      "deprecated": true,
                      "type": "array",
                      "description": "Users with a specific group. Provide a list of user groups. Matches if the user is a member of at least one of the groups. Note: Due to improvements in the user groups, this property could be used with some limitations: \n 1) The value(s) should exactly match the name(s) of the user groups. \n 2) It would not be possible to create a user group from here anymore. \n 3) If there are duplicates, the value would not be accepted.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "applyToHomeChargingOwner": {
                      "type": "boolean",
                      "description": "Makes the tariff apply to the driver who owns the home charge point (the driver, not the partner that manages it)"
                    },
                    "applyToHomeChargingSharedUsers": {
                      "type": "boolean",
                      "description": "Makes the tariff apply to the drivers the owner has shared the home charge point with (accepted shares only)"
                    },
                    "applyToUserGroupIds": {
                      "type": "array",
                      "description": "An array of user group IDs. Users with a specific group. Provide a list of user group IDs. This restriction applies if the user is a member of at least one of the groups.",
                      "items": {
                        "type": "number"
                      }
                    },
                    "applyToUsersWithSubscriptions": {
                      "type": "array",
                      "description": "Users with a specific subscription plan. Provide a list of subscription plan IDs. Matches if the user has active one of the subscription plans.",
                      "items": {
                        "type": "number"
                      }
                    },
                    "applyToAuthorizationMethods": {
                      "type": "array",
                      "description": "The tariff applies to local users (non-roaming) who authorize using any of the selected methods. When omitted or empty, the tariff applies regardless of authorization method.\nValues align with the `Authorization.method` property:\n- `id_tag` - Authorization via physical RFID card\n- `mac_address` - Authorization via vehicle MAC address (AutoCharge)\n- `user_device` - Authorization via mobile app or web portal\n- `plug_and_charge` - Authorization via Plug & Charge protocol\n- `plug_and_charge_iso15118` - Authorization via ISO15118 Plug & Charge protocol\n",
                      "items": {
                        "type": "string",
                        "enum": [
                          "id_tag",
                          "mac_address",
                          "user_device",
                          "plug_and_charge",
                          "plug_and_charge_iso15118"
                        ]
                      }
                    },
                    "startDate": {
                      "type": "string",
                      "format": "date",
                      "description": "The date from which the tariff becomes valid.",
                      "nullable": true
                    },
                    "endDate": {
                      "type": "string",
                      "format": "date",
                      "description": "The expiry date of the tariff. The tariff is valid until this date inclusive.",
                      "nullable": true
                    }
                  }
                },
                "partner": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "nullable": true,
                      "description": "The assigned Partner will have access to make changes to the tariff."
                    }
                  }
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "display": {
                  "type": "object",
                  "properties": {
                    "defaultPriceInformation": {
                      "type": "string",
                      "maxLength": 150,
                      "nullable": true,
                      "deprecated": true,
                      "description": "Deprecated: use the tariff group resource to manage this field."
                    },
                    "defaultPriceInformationOffline": {
                      "type": "string",
                      "maxLength": 150,
                      "nullable": true,
                      "deprecated": true,
                      "description": "Deprecated: use the tariff group resource to manage this field."
                    },
                    "priceInformation": {
                      "type": "string",
                      "nullable": true,
                      "deprecated": true,
                      "description": "**This property is deprecated. Use `priceInformationLocalized` instead.** The scalar field only carries the default-locale value and cannot round-trip multi-locale content.\n\nThe information that would be shown on the display of the charge point for users that are eligible for this tariff.\n"
                    },
                    "priceInformationLocalized": {
                      "type": "object",
                      "nullable": true,
                      "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                      "additionalProperties": {
                        "type": "string",
                        "nullable": true
                      },
                      "example": {
                        "en": "example",
                        "fr": "affaire"
                      }
                    },
                    "totalCostInformation": {
                      "type": "string",
                      "nullable": true,
                      "deprecated": true,
                      "description": "**This property is deprecated. Use `totalCostInformationLocalized` instead.** The scalar field only carries the default-locale value and cannot round-trip multi-locale content.\n\nAdditional information that would be displayed on the charge point when the session ends, along with the total fees for energy, duration and idle.\n"
                    },
                    "totalCostInformationLocalized": {
                      "type": "object",
                      "nullable": true,
                      "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                      "additionalProperties": {
                        "type": "string",
                        "nullable": true
                      },
                      "example": {
                        "en": "example",
                        "fr": "affaire"
                      }
                    },
                    "plainTextModeEnabled": {
                      "type": "boolean",
                      "default": false,
                      "description": "When `true`, the display text is delivered to the charge point without rich text formatting."
                    }
                  }
                },
                "integrationId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "References the internal integration configuration that enables this tariff type"
                },
                "externalId": {
                  "type": "string",
                  "nullable": true,
                  "description": "Used to store custom information, usually used for external references or metadata to the resource."
                },
                "incrementalPreAuthorizationSupported": {
                  "type": "boolean",
                  "readOnly": true,
                  "description": "Whether incremental pre-authorizations may apply for sessions using this tariff.\n`true` when all configuration-level preconditions are met: the feature flag is enabled, incremental pre-authorizations are enabled in user billing settings, and the billing strategy supports pre-authorization.\n`false` in all other cases.\nThis is a configuration-level indicator — the actual session-level status may differ depending on the PSP and card capability.\nNot included on the tariff snapshot endpoint, since the value depends on the current feature flag and billing settings, which are not captured at snapshot time.\n"
                }
              },
              "required": [
                "id",
                "operatorId",
                "name",
                "type",
                "incrementalPreAuthorizationSupported"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "tariffCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "free",
                  "flat rate",
                  "duration+energy",
                  "duration+energy time of day",
                  "energy tou",
                  "standard",
                  "charging not allowed",
                  "average power levels",
                  "peak power levels",
                  "standard_tod",
                  "optimised dynamic pricing",
                  "discount based"
                ],
                "description": "Setting the type to `charging not allowed` or `free` is enough for creating the particular type of tariff."
              },
              "description": {
                "type": "object",
                "nullable": true,
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "additionalInformation": {
                "type": "object",
                "nullable": true,
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "learnMoreUrl": {
                "type": "object",
                "nullable": true,
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "dayTariffStart": {
                "type": "string",
                "format": "time",
                "description": "A time when the day begins"
              },
              "nightTariffStart": {
                "type": "string",
                "format": "time",
                "description": "A time when the night begins"
              },
              "pricing": {
                "type": "object",
                "properties": {
                  "pricePerSession": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per session. Only applicable with flat rate tariffs. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "connectionFee": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Connection fee. A fixed fee that is applied at the start of the charging session. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "pricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "dayPricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "nightPricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "pricePeriodInMinutes": {
                    "type": "integer",
                    "enum": [
                      1,
                      15,
                      30,
                      60,
                      240,
                      360
                    ],
                    "description": "Charging period. In minutes. It defines the time-period for charging a fee. Example: If you select 15min then the EV-driver will be charged at the start of every 15min of EV-charging. Applicable for duration+energy and duration+energy time of day",
                    "nullable": true
                  },
                  "pricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period. Applicable for duration+energy. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`idleFeePerMinute`), the regular duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "durationFeeLimit": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Duration fee limit for the whole session if fee is applied.",
                    "nullable": true
                  },
                  "durationFeeCapMinutes": {
                    "type": "integer",
                    "description": "Maximum billable charging duration in minutes. A value of zero means no duration fee is charged. Mutually exclusive with durationFeeLimit.",
                    "nullable": true
                  },
                  "dayPricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`dayIdleFeePerMinute`), the regular day duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "nightPricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`nightIdleFeePerMinute`), the regular night duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "dayIdleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\nWhen configured, this fee applies during idle periods (when no charging is occurring) and replaces the regular day duration fee (`dayPricePerPeriod`). If not configured, the regular day duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "nightIdleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\nWhen configured, this fee applies during idle periods (when no charging is occurring) and replaces the regular night duration fee (`nightPricePerPeriod`). If not configured, the regular night duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "idleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging). Up to 5 digits after the decimal point depending on the currency precision.\n\n**For duration+energy tariffs:** When configured, this fee applies during idle periods and replaces the regular duration fee (`pricePerPeriod`). If not configured, the regular duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "idleFeeGracePeriodMinutes": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee grace period (min). Optional. The interpretation of this field depends on `idleFeeGracePeriodMode`:\n\n- When mode is `idle_detection` (default): The user is given this grace period after idle state is detected (no charging) to remove the vehicle, before idle fee starts applying.\n- When mode is `session_start`: This represents the minimum session duration before idle fee applies. Idle fee will not be charged until the session has been active for at least this many minutes.\n",
                    "nullable": true
                  },
                  "idleFeeGracePeriodMode": {
                    "type": "string",
                    "enum": [
                      "idle_detection",
                      "session_start"
                    ],
                    "description": "Determines when the idle fee grace period timer starts counting.\n\n- `idle_detection` (default): Grace period begins when idle state is detected (vehicle stops charging but remains connected).\n- `session_start`: Grace period begins from session start time. Idle fee will not apply until the session has been active for at least the grace period duration.\n\nApplicable tariff types: `duration+energy`, `duration+energy time of day`, `energy tou`, `standard_tod`.\n"
                  },
                  "idlePricingPeriodInMinutes": {
                    "type": "number",
                    "enum": [
                      1,
                      15,
                      30,
                      60,
                      240,
                      360
                    ],
                    "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging).",
                    "nullable": true
                  },
                  "idleFeePeriodStart": {
                    "type": "string",
                    "format": "time",
                    "description": "Defined start time for the application of idle fee.",
                    "nullable": true
                  },
                  "idleFeePeriodEnd": {
                    "type": "string",
                    "format": "time",
                    "description": "Defined end time for the application of idle fee.",
                    "nullable": true
                  },
                  "idleFeeLimit": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee limit for the whole session if fee is applied.",
                    "nullable": true
                  },
                  "idleFeeCapMinutes": {
                    "type": "integer",
                    "description": "Maximum billable idle time in minutes. A value of zero means no idle fee is charged. Mutually exclusive with idleFeeLimit.",
                    "nullable": true
                  },
                  "connectionFeeMinimumSessionDuration": {
                    "type": "integer",
                    "description": "Connection Fee Minimum Session Duration (min). Optional.",
                    "nullable": true
                  },
                  "connectionFeeMinimumSessionEnergy": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Connection Fee Minimum Session Energy (kWh). Optional. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "durationFeeGracePeriod": {
                    "type": "integer",
                    "description": "Duration Fee Grace Period (min). Optional.",
                    "nullable": true
                  },
                  "minPrice": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Min. price. Sets a minimum total amount per session. This is helpful in the case your payment service provider has a minimum transaction size or high transaction fees and you want to make sure to have a positive ROI per transaction. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "preAuthorizeAmount": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Pre-authorize amount. The amount to pre-authorize before starting a session. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "incrementalPreAuthorizationAmount": {
                    "type": "number",
                    "format": "decimal",
                    "description": "The resolved incremental pre-authorization amount for the requesting user context, in the tariff's currency. When the request targets an ad-hoc user (`filter[userId]=null` and the tariff has ad-hoc users enabled), returns the ad-hoc cascade (ad-hoc tariff override → tariff override → global default); otherwise returns the regular cascade (tariff override → global default). Omitted from the response when incremental pre-authorizations are disabled or no amount is configured. On create/update, accept `null` to clear the regular tariff-level override (mirrors `preAuthorizeAmount`); accepted regardless of the global \"Enable incremental pre-authorizations\" setting.\n"
                  },
                  "taxID": {
                    "type": "integer",
                    "deprecated": true,
                    "description": "If Multi-tax Support has been enabled in the platform settings, you can provide the taxId for the tariff here. If you do not provide a value or provide `null`, the Default tax will be used.\n\nIf Multi-tax Support has not been enabled, any provided value will be ignored.\n",
                    "nullable": true
                  },
                  "chargePointElectricityRate": {
                    "type": "boolean",
                    "description": "Use the Electricity Rate of the Charge Point that is already attached and aims to track the electricity costs."
                  },
                  "fallbackElectricityRateId": {
                    "type": "integer",
                    "description": "When ChargePointElectricityRate is set to *false*, the Electricity Rate ID MUST be supplied in order the electricity rates for the tariff to be known.",
                    "nullable": true
                  },
                  "markupPercentagePerKwh": {
                    "type": "number",
                    "nullable": true
                  },
                  "markupFixedFeePerKwh": {
                    "type": "number",
                    "nullable": true
                  },
                  "flexibleMarkUpAsFixedPerKwh": {
                    "nullable": true,
                    "description": "Set a different fixed markup for different time slots along the day. Applicable for `energy tou` only.",
                    "type": "object",
                    "properties": {
                      "defaultPrice": {
                        "type": "number",
                        "default": 0,
                        "writeOnly": true,
                        "description": "Set price for the intervals not specified in `intervalPricing` field."
                      },
                      "intervalPricing": {
                        "type": "array",
                        "description": "Variable-length time periods for markup pricing. Periods can have any duration and do not need to be uniform. Only explicitly configured periods are returned. Time slots not covered by any interval use the `markupFixedFeePerKwh` value. Overlapping intervals are not allowed.",
                        "items": {
                          "type": "object",
                          "description": "A specific price period. The `startsAt` and `endsAt` times should be provided in the local time zone and not in UTC.\nDepending on the tenant multi timezone configuration either the tenant timezone will be used, or the timezone specific to the corresponding resource.\n",
                          "properties": {
                            "startsAt": {
                              "type": "string",
                              "pattern": "^\\d{2}:\\d{2}$",
                              "description": "The start time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                              "example": "23:45"
                            },
                            "endsAt": {
                              "type": "string",
                              "pattern": "^\\d{2}:\\d{2}$",
                              "description": "The end time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                              "example": "23:45"
                            },
                            "price": {
                              "type": "number",
                              "format": "decimal",
                              "example": 1.23,
                              "description": "The price that will apply for the given price period. Must include tax."
                            }
                          },
                          "required": [
                            "startsAt",
                            "endsAt",
                            "price"
                          ]
                        }
                      }
                    }
                  },
                  "multiPricePerKwh": {
                    "description": "\nCreate the price levels according to the kWh. <br />\nThe first level must have zero value for **firstKwh**. <br />\nThe last level must have an infinity value for **lastKwh**. <br />\nThe **fisrtKwh** value on the current level must be equal to the **lastKwh** value on the previous one. <br />\nInstead of using a price per kWh there is the option for a flat fee per level.\n\nAn example of price levels for kWh is given in the table below.\n\n| First kWh  | Last kWh   | Fee per kWh | Flat Fee    |\n| --------- | ------------| ------------|------------ |\n| 0         | 5.00        | 0.00        | 2.00        |\n| 5.00      | 10.00       | 0.35        | 0.00        |\n| 10.00     | null        | 0.40        | 0.00        |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstKwh": {
                          "type": "number",
                          "multipleOf": 0.01,
                          "example": 0.05
                        },
                        "lastKwh": {
                          "type": "number",
                          "multipleOf": 0.01,
                          "nullable": true,
                          "example": 0.06
                        },
                        "feePerKwh": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.07
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.08
                        }
                      },
                      "required": [
                        "firstKwh"
                      ]
                    }
                  },
                  "multiPricePerDuration": {
                    "description": "\nCreate the price levels according to the duration of the session from the time the charging started.  <br />\nThe first level must have zero value for **firstUnit**. <br />\nThe last level must have an infinity value for **lastUnit**.  <br />\nThe **firstUnit** value on the current level must be greater with one unit from the **lastUnit** value on the previous level. <br />\nThe Unit is created in the **pricePeriodInMinutes** property, the default one is 15 min.  <br />\nThere is the option of applying a flat fee per each level separately.  <br />\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `multiIdleFee`) will apply during idle periods.\n\nAn example of price levels for duration is given in the table below.\n\n| First Unit  | Last Unit   | Fee per Unit | Flat Fee    |\n| ----------- | ------------| -------------|------------ |\n| 0           | 8           | 0.50         | 0.00        |\n| 9           | 24          | 0.55         | 0.00        |\n| 25          | null        | 0.00         | 10.00       |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstUnit": {
                          "type": "integer"
                        },
                        "lastUnit": {
                          "type": "integer",
                          "nullable": true,
                          "example": 1
                        },
                        "feePerUnit": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.05
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0
                        }
                      },
                      "required": [
                        "firstUnit"
                      ]
                    }
                  },
                  "multiIdleFee": {
                    "description": "\nDifferent price levels could be created depending on the duration of the idle period. <br />\nThe first level must have zero value for **firstUnit**. <br />\nThe last level must have an infinity value for **lastUnit**.  <br />\nThe **firstUnit** value on the current level must be greater with one unit from the **lastUnit** value on the previous level. <br />\nThe Unit is created in the **pricePeriodInMinutes** property, the default one is 15 min. <br />\nThere is the option of applying a flat fee per each level separately. <br />\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `multiPricePerDuration`) will be paused.\n\nAn example of price levels for idle periods is given in the table below.\n\n| First Unit  | Last Unit   | Fee per Unit | Flat Fee    |\n| ----------- | ------------| -------------|------------ |\n| 0           | 2           | 0.30         | 0.00        |\n| 3           | 6           | 0.40         | 0.00        |\n| 7           | null        | 0.00         | 0.00        |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstUnit": {
                          "type": "integer"
                        },
                        "lastUnit": {
                          "type": "integer",
                          "nullable": true,
                          "example": 1
                        },
                        "feePerUnit": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.05
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.06
                        }
                      },
                      "required": [
                        "firstUnit"
                      ]
                    }
                  },
                  "regularUsePeriod": {
                    "type": "number",
                    "description": "In minutes. Only for the Peak power level tariff.",
                    "nullable": true
                  },
                  "averagePowerLevels": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 2,
                      "properties": {
                        "averagePowerUpToKw": {
                          "type": "number"
                        },
                        "pricePerMinute": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "averagePowerUpToKw",
                        "pricePerMinute"
                      ]
                    }
                  },
                  "peakPowerLevels": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 2,
                      "properties": {
                        "peakPowerUpToKw": {
                          "type": "number"
                        },
                        "regularPricePerMinute": {
                          "type": "number"
                        },
                        "excessUsePricePerMin": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "peakPowerUpToKw",
                        "regularPricePerMinute",
                        "excessUsePricePerMin"
                      ]
                    }
                  },
                  "timePeriods": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 1,
                      "properties": {
                        "startTime": {
                          "type": "string",
                          "pattern": "^\\d{2}:\\d{2}$",
                          "example": "00:00",
                          "description": "The 24-hour format should be used."
                        },
                        "endTime": {
                          "type": "string",
                          "pattern": "^\\d{2}:\\d{2}$",
                          "example": "00:00",
                          "description": "The 24-hour format should be used."
                        }
                      },
                      "required": [
                        "startTime",
                        "endTime"
                      ]
                    }
                  },
                  "pricePeriods": {
                    "type": "object",
                    "properties": {
                      "connectionFeePeriods": {
                        "type": "object",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "energyFeePeriods": {
                        "type": "object",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "durationFeePeriods": {
                        "type": "object",
                        "description": "Duration fees for each time period. Applicable for standard_tod tariff.\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `idleFeePeriods`) will apply during idle periods.\n",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "idleFeePeriods": {
                        "type": "object",
                        "description": "Idle fees for each time period. Applicable for standard_tod tariff.\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `durationFeePeriods`) will be paused.\n",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      }
                    }
                  },
                  "daysWhenApplied": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "specialDates": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "format": "date"
                          },
                          "example": "2022-01-30"
                        },
                        "idleFeeGracePeriodMinutes": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Idle fee grace period (min). Optional. The interpretation of this field depends on `idleFeeGracePeriodMode`:\n\n- When mode is `idle_detection` (default): The user is given this grace period after idle state is detected (no charging) to remove the vehicle, before idle fee starts applying.\n- When mode is `session_start`: This represents the minimum session duration before idle fee applies. Idle fee will not be charged until the session has been active for at least this many minutes.\n",
                          "nullable": true
                        },
                        "idlePricingPeriodInMinutes": {
                          "type": "number",
                          "enum": [
                            1,
                            15,
                            30,
                            60,
                            240,
                            360
                          ],
                          "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging).",
                          "nullable": true
                        },
                        "connectionFeeMinimumSessionDuration": {
                          "type": "integer",
                          "description": "Connection Fee Minimum Session Duration (min). Optional.",
                          "nullable": true
                        },
                        "connectionFeeMinimumSessionEnergy": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Connection Fee Minimum Session Energy (kWh). Optional. Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true
                        },
                        "durationFeeGracePeriod": {
                          "type": "integer",
                          "description": "Duration Fee Grace Period (min). Optional.",
                          "nullable": true
                        },
                        "pricePeriodInMinutes": {
                          "type": "integer",
                          "enum": [
                            1,
                            15,
                            30,
                            60,
                            240,
                            360
                          ],
                          "description": "Charging period. In minutes. It defines the time-period for charging a fee. Example: If you select 15min then the EV-driver will be charged at the start of every 15min of EV-charging. Applicable for duration+energy and duration+energy time of day",
                          "nullable": true
                        },
                        "pricePeriods": {
                          "type": "object",
                          "minItems": 1,
                          "properties": {
                            "connectionFeePeriods": {
                              "type": "object",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "energyFeePeriods": {
                              "type": "object",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "durationFeePeriods": {
                              "type": "object",
                              "description": "Duration fees for each time period. Applicable for standard_tod tariff.\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `idleFeePeriods`) will apply during idle periods.\n",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "idleFeePeriods": {
                              "type": "object",
                              "description": "Idle fees for each time period. Applicable for standard_tod tariff.\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `durationFeePeriods`) will be paused.\n",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "description": "When left empty, this means that this is the standard pricing that would be applied in general without taking into consideration the day."
                  },
                  "thresholdPriceForEnergy": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price for kWh to be considered by Optimised charging for setting the charging periods.",
                    "nullable": true
                  },
                  "priceForEnergyWhenOptimized": {
                    "type": "number",
                    "format": "decimal",
                    "nullable": true
                  },
                  "optimisedLabel": {
                    "type": "string",
                    "nullable": true
                  },
                  "durationFeeFrom": {
                    "type": "string",
                    "format": "time",
                    "nullable": true,
                    "description": "Defined start time for the application of duration fees."
                  },
                  "durationFeeTo": {
                    "type": "string",
                    "format": "time",
                    "nullable": true,
                    "description": "Defined end time for the application of duration fees."
                  },
                  "subsidyIntegrationId": {
                    "type": "integer",
                    "description": "**This property is deprecated**\n\nUse `subsidy.integrationId` instead.\n\nThe subsidy integration id that should be applied for this tariff. Only valid for Energy ToU tariffs. Please use the admin panel for the specific integration id. Optional.\n",
                    "nullable": true,
                    "deprecated": true
                  },
                  "subsidy": {
                    "type": "object",
                    "description": "Subsidy parameters for this tariff. Only applicable for Energy ToU tariffs. Omitted when no subsidy is configured.",
                    "properties": {
                      "integrationId": {
                        "type": "integer",
                        "description": "The ID of the subsidy integration that is active on the tariff (or was active when the snapshot was taken)."
                      },
                      "threshold": {
                        "type": "number",
                        "description": "The energy price threshold (in the operator's currency per kWh) above which the subsidy applies."
                      },
                      "compensationRate": {
                        "type": "number",
                        "description": "The compensation rate as a percentage (e.g., 90 for 90%)."
                      }
                    },
                    "required": [
                      "integrationId",
                      "threshold",
                      "compensationRate"
                    ]
                  },
                  "lockPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled the tariff of the charger will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for:\n  - `duration+energy time of day` - it locks duration and energy price components\n  - `energy tou` - it locks energy component only\n"
                  },
                  "lockEnergyPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled the tariff of the charger will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for `standard_tod tariff`.\n"
                  },
                  "lockDurationPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled, the energy fee component of the tariff will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for `standard_tod tariff`.\n"
                  },
                  "lockIdlePriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled, the duration fee component of the tariff will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the whole duration of their session.\nApplicable only for `standard_tod tariff`\n"
                  },
                  "stateOfChargeIdleThreshold": {
                    "nullable": true,
                    "type": "integer",
                    "enum": [
                      75,
                      80,
                      85,
                      90,
                      95,
                      100
                    ],
                    "description": "Switches the session to idle when the SoC (%) exceeds the selected value. Leave empty to use the system wide setting.\nThis option will take effect only if `Allow custom SoC (%) threshold per Tariff` is set in `Idle period detection` setting.\nThis only applies to local charge points, it does not affect sessions on roaming charge points. Leave empty to use the system wide setting.\n"
                  },
                  "averagePowerIdleThreshold": {
                    "nullable": true,
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "maximum": 999999.99,
                    "description": "Sets the session to idle state when the average kW for the past 5 minutes is below the set threshold.\nThis option will take effect only if `Allow custom power threshold per Tariff` is set in `Idle period detection` setting.\n"
                  }
                }
              },
              "discountTariffSettings": {
                "type": "object",
                "description": "Discount configuration for discount based tariffs. Present only when `type=discount based`, omitted otherwise.\n",
                "properties": {
                  "discountReferenceType": {
                    "type": "string",
                    "enum": [
                      "base_tariff",
                      "specific_tariff",
                      "roaming_tariff"
                    ],
                    "description": "Determines which tariff the discount is applied to.\n\n- `base_tariff` — the discount applies to the base tariff of the tariff group the discount tariff belongs to.\n- `specific_tariff` — the discount applies to the tariff identified by `referencedTariffId`.\n- `roaming_tariff` — the discount applies to the CPO wholesale tariff resolved at session time via OCPI. The exact source tariff is unknown at configuration time and varies per CPO partner and per session.\n"
                  },
                  "referencedTariffId": {
                    "type": "integer",
                    "description": "Present when `discountReferenceType=specific_tariff`. Omitted otherwise.\n\nMust reference a non-derived priced tariff owned by the same operator that is not itself `discount based`, `free`, or `charging not allowed`. Submitting a referenced tariff that violates these constraints is rejected with HTTP 422. Compatibility between a `base_tariff` discount and the actual base tariff of the tariff group is enforced when the discount tariff is added to a tariff group, and a `base_tariff` discount applied to a `free` or `charging not allowed` base tariff is rejected with HTTP 422 at that point.\n\nProhibited when `discountReferenceType=roaming_tariff`.\n"
                  },
                  "discountMode": {
                    "type": "string",
                    "enum": [
                      "global",
                      "per_element"
                    ],
                    "description": "Determines how the discount is applied. Required when `discountReferenceType` is `base_tariff` or `specific_tariff`.\n\n- `global` — a single `discountPercentage` is applied to every fee component of the referenced tariff.\n- `per_element` — different discount values are applied per fee component, configured via `discountElements`.\n\nProhibited when `discountReferenceType=roaming_tariff` (roaming discounts are always applied globally).\n"
                  },
                  "discountPercentage": {
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "maximum": 100,
                    "description": "Present when `discountMode=global` and `discountReferenceType` is `base_tariff` or `specific_tariff`. Omitted otherwise.\n\nPercentage discount in the range `0` to `100` applied to every fee component of the referenced tariff. Out-of-range values are rejected with HTTP 422.\n\nProhibited when `discountReferenceType=roaming_tariff` (use `discountValue` instead).\n"
                  },
                  "discountType": {
                    "type": "string",
                    "enum": [
                      "percentage",
                      "flat_amount"
                    ],
                    "description": "Present when `discountReferenceType=roaming_tariff`. Prohibited otherwise.\n\n- `percentage` — `discountValue` is interpreted as a percentage from 0 to 100.\n- `flat_amount` — `discountValue` is interpreted as a fixed currency amount to subtract from each CPO price component.\n"
                  },
                  "discountValue": {
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "description": "Present when `discountReferenceType=roaming_tariff`. Prohibited otherwise.\n\nThe discount value, interpreted according to `discountType`. When `discountType` is `percentage`, the maximum is `100`. When `discountType` is `flat_amount`, the value represents a fixed currency amount with no upper bound.\n"
                  },
                  "discountElements": {
                    "type": "array",
                    "description": "Present when `discountMode=per_element` and `discountReferenceType` is `base_tariff` or `specific_tariff`. Omitted otherwise.\n\nEach entry configures a discount for a specific fee component of the referenced tariff. At least one entry is required.\n\nProhibited when `discountReferenceType=roaming_tariff`.\n",
                    "items": {
                      "type": "object",
                      "properties": {
                        "serviceFeeType": {
                          "type": "string",
                          "enum": [
                            "flat",
                            "connection",
                            "energy",
                            "charging_time",
                            "idle_time",
                            "min_price",
                            "service_fee"
                          ],
                          "description": "The fee component of the referenced tariff that this discount applies to. Only discount-eligible fee types are accepted."
                        },
                        "discountType": {
                          "type": "string",
                          "enum": [
                            "percentage",
                            "flat_amount"
                          ],
                          "description": "- `percentage` — `discountValue` is interpreted as a percentage from 0 to 100.\n- `flat_amount` — `discountValue` is interpreted as a fixed amount in the operator's currency that is subtracted from the fee component.\n"
                        },
                        "discountValue": {
                          "type": "number",
                          "format": "decimal",
                          "minimum": 0,
                          "description": "The discount value, interpreted according to `discountType`. When `discountType` is `percentage`, the maximum is 100.\n"
                        }
                      },
                      "required": [
                        "serviceFeeType",
                        "discountType",
                        "discountValue"
                      ]
                    }
                  }
                }
              },
              "currency": {
                "type": "string",
                "description": "ISO 4217 currency code",
                "readOnly": true
              },
              "stopSession": {
                "type": "object",
                "properties": {
                  "timeLimitMinutes": {
                    "type": "number",
                    "description": "Session max time. The maximum minutes a session is allowed to run. Skip for no time limit.",
                    "nullable": true
                  },
                  "stopWhenEnergyExceedsKwh": {
                    "type": "number",
                    "description": "The maximum energy (kWh) allowed per session. Skip for no limit.",
                    "nullable": true
                  },
                  "stopWhenSocExceedsPercent": {
                    "type": "integer",
                    "minimum": 70,
                    "maximum": 99,
                    "description": "Stop the session when the vehicle's reported State of Charge reaches or exceeds this value. If the charge point does not report SoC, this criterion is ignored. Accepts values between 70 and 99.",
                    "nullable": true
                  }
                }
              },
              "restrictions": {
                "type": "object",
                "properties": {
                  "applyToUsersOfChargePointOwner": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to users of the partner, who is set as owner of the charge point",
                    "deprecated": true
                  },
                  "applyToUsersOfChargePointPartner": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to users of the partner, who is set as owner of the charge point"
                  },
                  "applyToUsersOfAllRoamingEmsps": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to users of all eMSPs, which are roaming partners"
                  },
                  "applyToAdHocUsers": {
                    "type": "boolean",
                    "description": "Makes the tariff valid for non-registered users(ad-hoc charging). Mutually exclusive with applyToAdHocOperatorIds."
                  },
                  "adHocPreAuthorizeAmount": {
                    "type": "number",
                    "description": "Sets the amount that would be blocked on the user's card at the start of the session. Required if applyToAdHocUsers is true or applyToAdHocOperatorIds is non-empty, and one of the following billing strategies is chosen: `Require payment method and authorize certain amount before starting session` or `Require payment method OR minimum amount in balance`.",
                    "multipleOf": 0.01,
                    "nullable": true,
                    "minimum": 0
                  },
                  "adHocIncrementalPreAuthorizationAmount": {
                    "type": "number",
                    "description": "The resolved incremental pre-authorization amount for ad-hoc users, in the tariff's currency. Follows the cascade ad-hoc tariff override → tariff override → global default from user billing settings. Omitted from the response when incremental pre-authorizations are disabled, no amount is configured at any cascade level, or the tariff does not have ad-hoc users enabled. On create/update, accept `null` to clear the ad-hoc tariff-level override; accepted only when the tariff has ad-hoc users enabled, regardless of the global \"Enable incremental pre-authorizations\" setting.\n",
                    "multipleOf": 0.01,
                    "minimum": 0
                  },
                  "adHocStopWhenPreAuthorizedAmountFallsBelow": {
                    "type": "number",
                    "description": "Set the minimum pre-authorized amount threshold. When the remaining ad hoc pre-authorized amount falls below this value, the charging session will automatically stop to prevent revenue loss.\n",
                    "multipleOf": 0.01
                  },
                  "applyToAdHocOperatorIds": {
                    "type": "array",
                    "description": "An array of operator IDs. Makes the tariff apply to registered users from specific operators when charging ad-hoc (cross-operator charging without internal roaming). Mutually exclusive with applyToAdHocUsers.",
                    "items": {
                      "type": "integer",
                      "minimum": 1
                    }
                  },
                  "applyToUsersOfPartners": {
                    "type": "array",
                    "description": "Users of specific Partners. Provide a list of partner IDs. Matches if the user is a invited to at least one of the partners.",
                    "items": {
                      "type": "number"
                    }
                  },
                  "applyToUsersWithGroups": {
                    "deprecated": true,
                    "type": "array",
                    "description": "Users with a specific group. Provide a list of user groups. Matches if the user is a member of at least one of the groups. Note: Due to improvements in the user groups, this property could be used with some limitations: \n 1) The value(s) should exactly match the name(s) of the user groups. \n 2) It would not be possible to create a user group from here anymore. \n 3) If there are duplicates, the value would not be accepted.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "applyToHomeChargingOwner": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to the driver who owns the home charge point (the driver, not the partner that manages it)"
                  },
                  "applyToHomeChargingSharedUsers": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to the drivers the owner has shared the home charge point with (accepted shares only)"
                  },
                  "applyToUserGroupIds": {
                    "type": "array",
                    "description": "An array of user group IDs. Users with a specific group. Provide a list of user group IDs. This restriction applies if the user is a member of at least one of the groups.",
                    "items": {
                      "type": "number"
                    }
                  },
                  "applyToUsersWithSubscriptions": {
                    "type": "array",
                    "description": "Users with a specific subscription plan. Provide a list of subscription plan IDs. Matches if the user has active one of the subscription plans.",
                    "items": {
                      "type": "number"
                    }
                  },
                  "applyToAuthorizationMethods": {
                    "type": "array",
                    "description": "The tariff applies to local users (non-roaming) who authorize using any of the selected methods. When omitted or empty, the tariff applies regardless of authorization method.\nValues align with the `Authorization.method` property:\n- `id_tag` - Authorization via physical RFID card\n- `mac_address` - Authorization via vehicle MAC address (AutoCharge)\n- `user_device` - Authorization via mobile app or web portal\n- `plug_and_charge` - Authorization via Plug & Charge protocol\n- `plug_and_charge_iso15118` - Authorization via ISO15118 Plug & Charge protocol\n",
                    "items": {
                      "type": "string",
                      "enum": [
                        "id_tag",
                        "mac_address",
                        "user_device",
                        "plug_and_charge",
                        "plug_and_charge_iso15118"
                      ]
                    }
                  },
                  "startDate": {
                    "type": "string",
                    "format": "date",
                    "description": "The date from which the tariff becomes valid.",
                    "nullable": true
                  },
                  "endDate": {
                    "type": "string",
                    "format": "date",
                    "description": "The expiry date of the tariff. The tariff is valid until this date inclusive.",
                    "nullable": true
                  }
                }
              },
              "partner": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "nullable": true,
                    "description": "The assigned Partner will have access to make changes to the tariff."
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "display": {
                "type": "object",
                "properties": {
                  "defaultPriceInformation": {
                    "type": "string",
                    "maxLength": 150,
                    "nullable": true,
                    "deprecated": true,
                    "description": "Deprecated: use the tariff group resource to manage this field."
                  },
                  "defaultPriceInformationOffline": {
                    "type": "string",
                    "maxLength": 150,
                    "nullable": true,
                    "deprecated": true,
                    "description": "Deprecated: use the tariff group resource to manage this field."
                  },
                  "priceInformation": {
                    "type": "string",
                    "nullable": true,
                    "deprecated": true,
                    "description": "**This property is deprecated. Use `priceInformationLocalized` instead.** The scalar field only carries the default-locale value and cannot round-trip multi-locale content.\n\nThe information that would be shown on the display of the charge point for users that are eligible for this tariff.\n"
                  },
                  "priceInformationLocalized": {
                    "type": "object",
                    "nullable": true,
                    "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                    "additionalProperties": {
                      "type": "string",
                      "nullable": true
                    },
                    "example": {
                      "en": "example",
                      "fr": "affaire"
                    }
                  },
                  "totalCostInformation": {
                    "type": "string",
                    "nullable": true,
                    "deprecated": true,
                    "description": "**This property is deprecated. Use `totalCostInformationLocalized` instead.** The scalar field only carries the default-locale value and cannot round-trip multi-locale content.\n\nAdditional information that would be displayed on the charge point when the session ends, along with the total fees for energy, duration and idle.\n"
                  },
                  "totalCostInformationLocalized": {
                    "type": "object",
                    "nullable": true,
                    "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                    "additionalProperties": {
                      "type": "string",
                      "nullable": true
                    },
                    "example": {
                      "en": "example",
                      "fr": "affaire"
                    }
                  },
                  "plainTextModeEnabled": {
                    "type": "boolean",
                    "default": false,
                    "description": "When `true`, the display text is delivered to the charge point without rich text formatting."
                  }
                }
              },
              "integrationId": {
                "type": "integer",
                "nullable": true,
                "description": "References the internal integration configuration that enables this tariff type"
              },
              "externalId": {
                "type": "string",
                "nullable": true,
                "description": "Used to store custom information, usually used for external references or metadata to the resource."
              },
              "incrementalPreAuthorizationSupported": {
                "type": "boolean",
                "readOnly": true,
                "description": "Whether incremental pre-authorizations may apply for sessions using this tariff.\n`true` when all configuration-level preconditions are met: the feature flag is enabled, incremental pre-authorizations are enabled in user billing settings, and the billing strategy supports pre-authorization.\n`false` in all other cases.\nThis is a configuration-level indicator — the actual session-level status may differ depending on the PSP and card capability.\nNot included on the tariff snapshot endpoint, since the value depends on the current feature flag and billing settings, which are not captured at snapshot time.\n"
              }
            },
            "required": [
              "id",
              "operatorId",
              "name",
              "type",
              "incrementalPreAuthorizationSupported"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "tariffRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "free",
                  "flat rate",
                  "duration+energy",
                  "duration+energy time of day",
                  "energy tou",
                  "standard",
                  "charging not allowed",
                  "average power levels",
                  "peak power levels",
                  "standard_tod",
                  "optimised dynamic pricing",
                  "discount based"
                ],
                "description": "Setting the type to `charging not allowed` or `free` is enough for creating the particular type of tariff."
              },
              "description": {
                "type": "object",
                "nullable": true,
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "additionalInformation": {
                "type": "object",
                "nullable": true,
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "learnMoreUrl": {
                "type": "object",
                "nullable": true,
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "dayTariffStart": {
                "type": "string",
                "format": "time",
                "description": "A time when the day begins"
              },
              "nightTariffStart": {
                "type": "string",
                "format": "time",
                "description": "A time when the night begins"
              },
              "pricing": {
                "type": "object",
                "properties": {
                  "pricePerSession": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per session. Only applicable with flat rate tariffs. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "connectionFee": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Connection fee. A fixed fee that is applied at the start of the charging session. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "pricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "dayPricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "nightPricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "pricePeriodInMinutes": {
                    "type": "integer",
                    "enum": [
                      1,
                      15,
                      30,
                      60,
                      240,
                      360
                    ],
                    "description": "Charging period. In minutes. It defines the time-period for charging a fee. Example: If you select 15min then the EV-driver will be charged at the start of every 15min of EV-charging. Applicable for duration+energy and duration+energy time of day",
                    "nullable": true
                  },
                  "pricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period. Applicable for duration+energy. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`idleFeePerMinute`), the regular duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "durationFeeLimit": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Duration fee limit for the whole session if fee is applied.",
                    "nullable": true
                  },
                  "durationFeeCapMinutes": {
                    "type": "integer",
                    "description": "Maximum billable charging duration in minutes. A value of zero means no duration fee is charged. Mutually exclusive with durationFeeLimit.",
                    "nullable": true
                  },
                  "dayPricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`dayIdleFeePerMinute`), the regular day duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "nightPricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`nightIdleFeePerMinute`), the regular night duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "dayIdleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\nWhen configured, this fee applies during idle periods (when no charging is occurring) and replaces the regular day duration fee (`dayPricePerPeriod`). If not configured, the regular day duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "nightIdleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\nWhen configured, this fee applies during idle periods (when no charging is occurring) and replaces the regular night duration fee (`nightPricePerPeriod`). If not configured, the regular night duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "idleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging). Up to 5 digits after the decimal point depending on the currency precision.\n\n**For duration+energy tariffs:** When configured, this fee applies during idle periods and replaces the regular duration fee (`pricePerPeriod`). If not configured, the regular duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "idleFeeGracePeriodMinutes": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee grace period (min). Optional. The interpretation of this field depends on `idleFeeGracePeriodMode`:\n\n- When mode is `idle_detection` (default): The user is given this grace period after idle state is detected (no charging) to remove the vehicle, before idle fee starts applying.\n- When mode is `session_start`: This represents the minimum session duration before idle fee applies. Idle fee will not be charged until the session has been active for at least this many minutes.\n",
                    "nullable": true
                  },
                  "idleFeeGracePeriodMode": {
                    "type": "string",
                    "enum": [
                      "idle_detection",
                      "session_start"
                    ],
                    "description": "Determines when the idle fee grace period timer starts counting.\n\n- `idle_detection` (default): Grace period begins when idle state is detected (vehicle stops charging but remains connected).\n- `session_start`: Grace period begins from session start time. Idle fee will not apply until the session has been active for at least the grace period duration.\n\nApplicable tariff types: `duration+energy`, `duration+energy time of day`, `energy tou`, `standard_tod`.\n"
                  },
                  "idlePricingPeriodInMinutes": {
                    "type": "number",
                    "enum": [
                      1,
                      15,
                      30,
                      60,
                      240,
                      360
                    ],
                    "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging).",
                    "nullable": true
                  },
                  "idleFeePeriodStart": {
                    "type": "string",
                    "format": "time",
                    "description": "Defined start time for the application of idle fee.",
                    "nullable": true
                  },
                  "idleFeePeriodEnd": {
                    "type": "string",
                    "format": "time",
                    "description": "Defined end time for the application of idle fee.",
                    "nullable": true
                  },
                  "idleFeeLimit": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee limit for the whole session if fee is applied.",
                    "nullable": true
                  },
                  "idleFeeCapMinutes": {
                    "type": "integer",
                    "description": "Maximum billable idle time in minutes. A value of zero means no idle fee is charged. Mutually exclusive with idleFeeLimit.",
                    "nullable": true
                  },
                  "connectionFeeMinimumSessionDuration": {
                    "type": "integer",
                    "description": "Connection Fee Minimum Session Duration (min). Optional.",
                    "nullable": true
                  },
                  "connectionFeeMinimumSessionEnergy": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Connection Fee Minimum Session Energy (kWh). Optional. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "durationFeeGracePeriod": {
                    "type": "integer",
                    "description": "Duration Fee Grace Period (min). Optional.",
                    "nullable": true
                  },
                  "minPrice": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Min. price. Sets a minimum total amount per session. This is helpful in the case your payment service provider has a minimum transaction size or high transaction fees and you want to make sure to have a positive ROI per transaction. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "preAuthorizeAmount": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Pre-authorize amount. The amount to pre-authorize before starting a session. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "incrementalPreAuthorizationAmount": {
                    "type": "number",
                    "format": "decimal",
                    "description": "The resolved incremental pre-authorization amount for the requesting user context, in the tariff's currency. When the request targets an ad-hoc user (`filter[userId]=null` and the tariff has ad-hoc users enabled), returns the ad-hoc cascade (ad-hoc tariff override → tariff override → global default); otherwise returns the regular cascade (tariff override → global default). Omitted from the response when incremental pre-authorizations are disabled or no amount is configured. On create/update, accept `null` to clear the regular tariff-level override (mirrors `preAuthorizeAmount`); accepted regardless of the global \"Enable incremental pre-authorizations\" setting.\n"
                  },
                  "taxID": {
                    "type": "integer",
                    "deprecated": true,
                    "description": "If Multi-tax Support has been enabled in the platform settings, you can provide the taxId for the tariff here. If you do not provide a value or provide `null`, the Default tax will be used.\n\nIf Multi-tax Support has not been enabled, any provided value will be ignored.\n",
                    "nullable": true
                  },
                  "chargePointElectricityRate": {
                    "type": "boolean",
                    "description": "Use the Electricity Rate of the Charge Point that is already attached and aims to track the electricity costs."
                  },
                  "fallbackElectricityRateId": {
                    "type": "integer",
                    "description": "When ChargePointElectricityRate is set to *false*, the Electricity Rate ID MUST be supplied in order the electricity rates for the tariff to be known.",
                    "nullable": true
                  },
                  "markupPercentagePerKwh": {
                    "type": "number",
                    "nullable": true
                  },
                  "markupFixedFeePerKwh": {
                    "type": "number",
                    "nullable": true
                  },
                  "flexibleMarkUpAsFixedPerKwh": {
                    "nullable": true,
                    "description": "Set a different fixed markup for different time slots along the day. Applicable for `energy tou` only.",
                    "type": "object",
                    "properties": {
                      "defaultPrice": {
                        "type": "number",
                        "default": 0,
                        "writeOnly": true,
                        "description": "Set price for the intervals not specified in `intervalPricing` field."
                      },
                      "intervalPricing": {
                        "type": "array",
                        "description": "Variable-length time periods for markup pricing. Periods can have any duration and do not need to be uniform. Only explicitly configured periods are returned. Time slots not covered by any interval use the `markupFixedFeePerKwh` value. Overlapping intervals are not allowed.",
                        "items": {
                          "type": "object",
                          "description": "A specific price period. The `startsAt` and `endsAt` times should be provided in the local time zone and not in UTC.\nDepending on the tenant multi timezone configuration either the tenant timezone will be used, or the timezone specific to the corresponding resource.\n",
                          "properties": {
                            "startsAt": {
                              "type": "string",
                              "pattern": "^\\d{2}:\\d{2}$",
                              "description": "The start time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                              "example": "23:45"
                            },
                            "endsAt": {
                              "type": "string",
                              "pattern": "^\\d{2}:\\d{2}$",
                              "description": "The end time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                              "example": "23:45"
                            },
                            "price": {
                              "type": "number",
                              "format": "decimal",
                              "example": 1.23,
                              "description": "The price that will apply for the given price period. Must include tax."
                            }
                          },
                          "required": [
                            "startsAt",
                            "endsAt",
                            "price"
                          ]
                        }
                      }
                    }
                  },
                  "multiPricePerKwh": {
                    "description": "\nCreate the price levels according to the kWh. <br />\nThe first level must have zero value for **firstKwh**. <br />\nThe last level must have an infinity value for **lastKwh**. <br />\nThe **fisrtKwh** value on the current level must be equal to the **lastKwh** value on the previous one. <br />\nInstead of using a price per kWh there is the option for a flat fee per level.\n\nAn example of price levels for kWh is given in the table below.\n\n| First kWh  | Last kWh   | Fee per kWh | Flat Fee    |\n| --------- | ------------| ------------|------------ |\n| 0         | 5.00        | 0.00        | 2.00        |\n| 5.00      | 10.00       | 0.35        | 0.00        |\n| 10.00     | null        | 0.40        | 0.00        |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstKwh": {
                          "type": "number",
                          "multipleOf": 0.01,
                          "example": 0.05
                        },
                        "lastKwh": {
                          "type": "number",
                          "multipleOf": 0.01,
                          "nullable": true,
                          "example": 0.06
                        },
                        "feePerKwh": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.07
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.08
                        }
                      },
                      "required": [
                        "firstKwh"
                      ]
                    }
                  },
                  "multiPricePerDuration": {
                    "description": "\nCreate the price levels according to the duration of the session from the time the charging started.  <br />\nThe first level must have zero value for **firstUnit**. <br />\nThe last level must have an infinity value for **lastUnit**.  <br />\nThe **firstUnit** value on the current level must be greater with one unit from the **lastUnit** value on the previous level. <br />\nThe Unit is created in the **pricePeriodInMinutes** property, the default one is 15 min.  <br />\nThere is the option of applying a flat fee per each level separately.  <br />\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `multiIdleFee`) will apply during idle periods.\n\nAn example of price levels for duration is given in the table below.\n\n| First Unit  | Last Unit   | Fee per Unit | Flat Fee    |\n| ----------- | ------------| -------------|------------ |\n| 0           | 8           | 0.50         | 0.00        |\n| 9           | 24          | 0.55         | 0.00        |\n| 25          | null        | 0.00         | 10.00       |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstUnit": {
                          "type": "integer"
                        },
                        "lastUnit": {
                          "type": "integer",
                          "nullable": true,
                          "example": 1
                        },
                        "feePerUnit": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.05
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0
                        }
                      },
                      "required": [
                        "firstUnit"
                      ]
                    }
                  },
                  "multiIdleFee": {
                    "description": "\nDifferent price levels could be created depending on the duration of the idle period. <br />\nThe first level must have zero value for **firstUnit**. <br />\nThe last level must have an infinity value for **lastUnit**.  <br />\nThe **firstUnit** value on the current level must be greater with one unit from the **lastUnit** value on the previous level. <br />\nThe Unit is created in the **pricePeriodInMinutes** property, the default one is 15 min. <br />\nThere is the option of applying a flat fee per each level separately. <br />\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `multiPricePerDuration`) will be paused.\n\nAn example of price levels for idle periods is given in the table below.\n\n| First Unit  | Last Unit   | Fee per Unit | Flat Fee    |\n| ----------- | ------------| -------------|------------ |\n| 0           | 2           | 0.30         | 0.00        |\n| 3           | 6           | 0.40         | 0.00        |\n| 7           | null        | 0.00         | 0.00        |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstUnit": {
                          "type": "integer"
                        },
                        "lastUnit": {
                          "type": "integer",
                          "nullable": true,
                          "example": 1
                        },
                        "feePerUnit": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.05
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.06
                        }
                      },
                      "required": [
                        "firstUnit"
                      ]
                    }
                  },
                  "regularUsePeriod": {
                    "type": "number",
                    "description": "In minutes. Only for the Peak power level tariff.",
                    "nullable": true
                  },
                  "averagePowerLevels": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 2,
                      "properties": {
                        "averagePowerUpToKw": {
                          "type": "number"
                        },
                        "pricePerMinute": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "averagePowerUpToKw",
                        "pricePerMinute"
                      ]
                    }
                  },
                  "peakPowerLevels": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 2,
                      "properties": {
                        "peakPowerUpToKw": {
                          "type": "number"
                        },
                        "regularPricePerMinute": {
                          "type": "number"
                        },
                        "excessUsePricePerMin": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "peakPowerUpToKw",
                        "regularPricePerMinute",
                        "excessUsePricePerMin"
                      ]
                    }
                  },
                  "timePeriods": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 1,
                      "properties": {
                        "startTime": {
                          "type": "string",
                          "pattern": "^\\d{2}:\\d{2}$",
                          "example": "00:00",
                          "description": "The 24-hour format should be used."
                        },
                        "endTime": {
                          "type": "string",
                          "pattern": "^\\d{2}:\\d{2}$",
                          "example": "00:00",
                          "description": "The 24-hour format should be used."
                        }
                      },
                      "required": [
                        "startTime",
                        "endTime"
                      ]
                    }
                  },
                  "pricePeriods": {
                    "type": "object",
                    "properties": {
                      "connectionFeePeriods": {
                        "type": "object",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "energyFeePeriods": {
                        "type": "object",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "durationFeePeriods": {
                        "type": "object",
                        "description": "Duration fees for each time period. Applicable for standard_tod tariff.\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `idleFeePeriods`) will apply during idle periods.\n",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "idleFeePeriods": {
                        "type": "object",
                        "description": "Idle fees for each time period. Applicable for standard_tod tariff.\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `durationFeePeriods`) will be paused.\n",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      }
                    }
                  },
                  "daysWhenApplied": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "specialDates": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "format": "date"
                          },
                          "example": "2022-01-30"
                        },
                        "idleFeeGracePeriodMinutes": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Idle fee grace period (min). Optional. The interpretation of this field depends on `idleFeeGracePeriodMode`:\n\n- When mode is `idle_detection` (default): The user is given this grace period after idle state is detected (no charging) to remove the vehicle, before idle fee starts applying.\n- When mode is `session_start`: This represents the minimum session duration before idle fee applies. Idle fee will not be charged until the session has been active for at least this many minutes.\n",
                          "nullable": true
                        },
                        "idlePricingPeriodInMinutes": {
                          "type": "number",
                          "enum": [
                            1,
                            15,
                            30,
                            60,
                            240,
                            360
                          ],
                          "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging).",
                          "nullable": true
                        },
                        "connectionFeeMinimumSessionDuration": {
                          "type": "integer",
                          "description": "Connection Fee Minimum Session Duration (min). Optional.",
                          "nullable": true
                        },
                        "connectionFeeMinimumSessionEnergy": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Connection Fee Minimum Session Energy (kWh). Optional. Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true
                        },
                        "durationFeeGracePeriod": {
                          "type": "integer",
                          "description": "Duration Fee Grace Period (min). Optional.",
                          "nullable": true
                        },
                        "pricePeriodInMinutes": {
                          "type": "integer",
                          "enum": [
                            1,
                            15,
                            30,
                            60,
                            240,
                            360
                          ],
                          "description": "Charging period. In minutes. It defines the time-period for charging a fee. Example: If you select 15min then the EV-driver will be charged at the start of every 15min of EV-charging. Applicable for duration+energy and duration+energy time of day",
                          "nullable": true
                        },
                        "pricePeriods": {
                          "type": "object",
                          "minItems": 1,
                          "properties": {
                            "connectionFeePeriods": {
                              "type": "object",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "energyFeePeriods": {
                              "type": "object",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "durationFeePeriods": {
                              "type": "object",
                              "description": "Duration fees for each time period. Applicable for standard_tod tariff.\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `idleFeePeriods`) will apply during idle periods.\n",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "idleFeePeriods": {
                              "type": "object",
                              "description": "Idle fees for each time period. Applicable for standard_tod tariff.\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `durationFeePeriods`) will be paused.\n",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "description": "When left empty, this means that this is the standard pricing that would be applied in general without taking into consideration the day."
                  },
                  "thresholdPriceForEnergy": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price for kWh to be considered by Optimised charging for setting the charging periods.",
                    "nullable": true
                  },
                  "priceForEnergyWhenOptimized": {
                    "type": "number",
                    "format": "decimal",
                    "nullable": true
                  },
                  "optimisedLabel": {
                    "type": "string",
                    "nullable": true
                  },
                  "durationFeeFrom": {
                    "type": "string",
                    "format": "time",
                    "nullable": true,
                    "description": "Defined start time for the application of duration fees."
                  },
                  "durationFeeTo": {
                    "type": "string",
                    "format": "time",
                    "nullable": true,
                    "description": "Defined end time for the application of duration fees."
                  },
                  "subsidyIntegrationId": {
                    "type": "integer",
                    "description": "**This property is deprecated**\n\nUse `subsidy.integrationId` instead.\n\nThe subsidy integration id that should be applied for this tariff. Only valid for Energy ToU tariffs. Please use the admin panel for the specific integration id. Optional.\n",
                    "nullable": true,
                    "deprecated": true
                  },
                  "subsidy": {
                    "type": "object",
                    "description": "Subsidy parameters for this tariff. Only applicable for Energy ToU tariffs. Omitted when no subsidy is configured.",
                    "properties": {
                      "integrationId": {
                        "type": "integer",
                        "description": "The ID of the subsidy integration that is active on the tariff (or was active when the snapshot was taken)."
                      },
                      "threshold": {
                        "type": "number",
                        "description": "The energy price threshold (in the operator's currency per kWh) above which the subsidy applies."
                      },
                      "compensationRate": {
                        "type": "number",
                        "description": "The compensation rate as a percentage (e.g., 90 for 90%)."
                      }
                    },
                    "required": [
                      "integrationId",
                      "threshold",
                      "compensationRate"
                    ]
                  },
                  "lockPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled the tariff of the charger will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for:\n  - `duration+energy time of day` - it locks duration and energy price components\n  - `energy tou` - it locks energy component only\n"
                  },
                  "lockEnergyPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled the tariff of the charger will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for `standard_tod tariff`.\n"
                  },
                  "lockDurationPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled, the energy fee component of the tariff will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for `standard_tod tariff`.\n"
                  },
                  "lockIdlePriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled, the duration fee component of the tariff will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the whole duration of their session.\nApplicable only for `standard_tod tariff`\n"
                  },
                  "stateOfChargeIdleThreshold": {
                    "nullable": true,
                    "type": "integer",
                    "enum": [
                      75,
                      80,
                      85,
                      90,
                      95,
                      100
                    ],
                    "description": "Switches the session to idle when the SoC (%) exceeds the selected value. Leave empty to use the system wide setting.\nThis option will take effect only if `Allow custom SoC (%) threshold per Tariff` is set in `Idle period detection` setting.\nThis only applies to local charge points, it does not affect sessions on roaming charge points. Leave empty to use the system wide setting.\n"
                  },
                  "averagePowerIdleThreshold": {
                    "nullable": true,
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "maximum": 999999.99,
                    "description": "Sets the session to idle state when the average kW for the past 5 minutes is below the set threshold.\nThis option will take effect only if `Allow custom power threshold per Tariff` is set in `Idle period detection` setting.\n"
                  }
                }
              },
              "discountTariffSettings": {
                "type": "object",
                "description": "Discount configuration for discount based tariffs. Present only when `type=discount based`, omitted otherwise.\n",
                "properties": {
                  "discountReferenceType": {
                    "type": "string",
                    "enum": [
                      "base_tariff",
                      "specific_tariff",
                      "roaming_tariff"
                    ],
                    "description": "Determines which tariff the discount is applied to.\n\n- `base_tariff` — the discount applies to the base tariff of the tariff group the discount tariff belongs to.\n- `specific_tariff` — the discount applies to the tariff identified by `referencedTariffId`.\n- `roaming_tariff` — the discount applies to the CPO wholesale tariff resolved at session time via OCPI. The exact source tariff is unknown at configuration time and varies per CPO partner and per session.\n"
                  },
                  "referencedTariffId": {
                    "type": "integer",
                    "description": "Present when `discountReferenceType=specific_tariff`. Omitted otherwise.\n\nMust reference a non-derived priced tariff owned by the same operator that is not itself `discount based`, `free`, or `charging not allowed`. Submitting a referenced tariff that violates these constraints is rejected with HTTP 422. Compatibility between a `base_tariff` discount and the actual base tariff of the tariff group is enforced when the discount tariff is added to a tariff group, and a `base_tariff` discount applied to a `free` or `charging not allowed` base tariff is rejected with HTTP 422 at that point.\n\nProhibited when `discountReferenceType=roaming_tariff`.\n"
                  },
                  "discountMode": {
                    "type": "string",
                    "enum": [
                      "global",
                      "per_element"
                    ],
                    "description": "Determines how the discount is applied. Required when `discountReferenceType` is `base_tariff` or `specific_tariff`.\n\n- `global` — a single `discountPercentage` is applied to every fee component of the referenced tariff.\n- `per_element` — different discount values are applied per fee component, configured via `discountElements`.\n\nProhibited when `discountReferenceType=roaming_tariff` (roaming discounts are always applied globally).\n"
                  },
                  "discountPercentage": {
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "maximum": 100,
                    "description": "Present when `discountMode=global` and `discountReferenceType` is `base_tariff` or `specific_tariff`. Omitted otherwise.\n\nPercentage discount in the range `0` to `100` applied to every fee component of the referenced tariff. Out-of-range values are rejected with HTTP 422.\n\nProhibited when `discountReferenceType=roaming_tariff` (use `discountValue` instead).\n"
                  },
                  "discountType": {
                    "type": "string",
                    "enum": [
                      "percentage",
                      "flat_amount"
                    ],
                    "description": "Present when `discountReferenceType=roaming_tariff`. Prohibited otherwise.\n\n- `percentage` — `discountValue` is interpreted as a percentage from 0 to 100.\n- `flat_amount` — `discountValue` is interpreted as a fixed currency amount to subtract from each CPO price component.\n"
                  },
                  "discountValue": {
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "description": "Present when `discountReferenceType=roaming_tariff`. Prohibited otherwise.\n\nThe discount value, interpreted according to `discountType`. When `discountType` is `percentage`, the maximum is `100`. When `discountType` is `flat_amount`, the value represents a fixed currency amount with no upper bound.\n"
                  },
                  "discountElements": {
                    "type": "array",
                    "description": "Present when `discountMode=per_element` and `discountReferenceType` is `base_tariff` or `specific_tariff`. Omitted otherwise.\n\nEach entry configures a discount for a specific fee component of the referenced tariff. At least one entry is required.\n\nProhibited when `discountReferenceType=roaming_tariff`.\n",
                    "items": {
                      "type": "object",
                      "properties": {
                        "serviceFeeType": {
                          "type": "string",
                          "enum": [
                            "flat",
                            "connection",
                            "energy",
                            "charging_time",
                            "idle_time",
                            "min_price",
                            "service_fee"
                          ],
                          "description": "The fee component of the referenced tariff that this discount applies to. Only discount-eligible fee types are accepted."
                        },
                        "discountType": {
                          "type": "string",
                          "enum": [
                            "percentage",
                            "flat_amount"
                          ],
                          "description": "- `percentage` — `discountValue` is interpreted as a percentage from 0 to 100.\n- `flat_amount` — `discountValue` is interpreted as a fixed amount in the operator's currency that is subtracted from the fee component.\n"
                        },
                        "discountValue": {
                          "type": "number",
                          "format": "decimal",
                          "minimum": 0,
                          "description": "The discount value, interpreted according to `discountType`. When `discountType` is `percentage`, the maximum is 100.\n"
                        }
                      },
                      "required": [
                        "serviceFeeType",
                        "discountType",
                        "discountValue"
                      ]
                    }
                  }
                }
              },
              "currency": {
                "type": "string",
                "description": "ISO 4217 currency code",
                "readOnly": true
              },
              "stopSession": {
                "type": "object",
                "properties": {
                  "timeLimitMinutes": {
                    "type": "number",
                    "description": "Session max time. The maximum minutes a session is allowed to run. Skip for no time limit.",
                    "nullable": true
                  },
                  "stopWhenEnergyExceedsKwh": {
                    "type": "number",
                    "description": "The maximum energy (kWh) allowed per session. Skip for no limit.",
                    "nullable": true
                  },
                  "stopWhenSocExceedsPercent": {
                    "type": "integer",
                    "minimum": 70,
                    "maximum": 99,
                    "description": "Stop the session when the vehicle's reported State of Charge reaches or exceeds this value. If the charge point does not report SoC, this criterion is ignored. Accepts values between 70 and 99.",
                    "nullable": true
                  }
                }
              },
              "restrictions": {
                "type": "object",
                "properties": {
                  "applyToUsersOfChargePointOwner": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to users of the partner, who is set as owner of the charge point",
                    "deprecated": true
                  },
                  "applyToUsersOfChargePointPartner": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to users of the partner, who is set as owner of the charge point"
                  },
                  "applyToUsersOfAllRoamingEmsps": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to users of all eMSPs, which are roaming partners"
                  },
                  "applyToAdHocUsers": {
                    "type": "boolean",
                    "description": "Makes the tariff valid for non-registered users(ad-hoc charging). Mutually exclusive with applyToAdHocOperatorIds."
                  },
                  "adHocPreAuthorizeAmount": {
                    "type": "number",
                    "description": "Sets the amount that would be blocked on the user's card at the start of the session. Required if applyToAdHocUsers is true or applyToAdHocOperatorIds is non-empty, and one of the following billing strategies is chosen: `Require payment method and authorize certain amount before starting session` or `Require payment method OR minimum amount in balance`.",
                    "multipleOf": 0.01,
                    "nullable": true,
                    "minimum": 0
                  },
                  "adHocIncrementalPreAuthorizationAmount": {
                    "type": "number",
                    "description": "The resolved incremental pre-authorization amount for ad-hoc users, in the tariff's currency. Follows the cascade ad-hoc tariff override → tariff override → global default from user billing settings. Omitted from the response when incremental pre-authorizations are disabled, no amount is configured at any cascade level, or the tariff does not have ad-hoc users enabled. On create/update, accept `null` to clear the ad-hoc tariff-level override; accepted only when the tariff has ad-hoc users enabled, regardless of the global \"Enable incremental pre-authorizations\" setting.\n",
                    "multipleOf": 0.01,
                    "minimum": 0
                  },
                  "adHocStopWhenPreAuthorizedAmountFallsBelow": {
                    "type": "number",
                    "description": "Set the minimum pre-authorized amount threshold. When the remaining ad hoc pre-authorized amount falls below this value, the charging session will automatically stop to prevent revenue loss.\n",
                    "multipleOf": 0.01
                  },
                  "applyToAdHocOperatorIds": {
                    "type": "array",
                    "description": "An array of operator IDs. Makes the tariff apply to registered users from specific operators when charging ad-hoc (cross-operator charging without internal roaming). Mutually exclusive with applyToAdHocUsers.",
                    "items": {
                      "type": "integer",
                      "minimum": 1
                    }
                  },
                  "applyToUsersOfPartners": {
                    "type": "array",
                    "description": "Users of specific Partners. Provide a list of partner IDs. Matches if the user is a invited to at least one of the partners.",
                    "items": {
                      "type": "number"
                    }
                  },
                  "applyToUsersWithGroups": {
                    "deprecated": true,
                    "type": "array",
                    "description": "Users with a specific group. Provide a list of user groups. Matches if the user is a member of at least one of the groups. Note: Due to improvements in the user groups, this property could be used with some limitations: \n 1) The value(s) should exactly match the name(s) of the user groups. \n 2) It would not be possible to create a user group from here anymore. \n 3) If there are duplicates, the value would not be accepted.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "applyToHomeChargingOwner": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to the driver who owns the home charge point (the driver, not the partner that manages it)"
                  },
                  "applyToHomeChargingSharedUsers": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to the drivers the owner has shared the home charge point with (accepted shares only)"
                  },
                  "applyToUserGroupIds": {
                    "type": "array",
                    "description": "An array of user group IDs. Users with a specific group. Provide a list of user group IDs. This restriction applies if the user is a member of at least one of the groups.",
                    "items": {
                      "type": "number"
                    }
                  },
                  "applyToUsersWithSubscriptions": {
                    "type": "array",
                    "description": "Users with a specific subscription plan. Provide a list of subscription plan IDs. Matches if the user has active one of the subscription plans.",
                    "items": {
                      "type": "number"
                    }
                  },
                  "applyToAuthorizationMethods": {
                    "type": "array",
                    "description": "The tariff applies to local users (non-roaming) who authorize using any of the selected methods. When omitted or empty, the tariff applies regardless of authorization method.\nValues align with the `Authorization.method` property:\n- `id_tag` - Authorization via physical RFID card\n- `mac_address` - Authorization via vehicle MAC address (AutoCharge)\n- `user_device` - Authorization via mobile app or web portal\n- `plug_and_charge` - Authorization via Plug & Charge protocol\n- `plug_and_charge_iso15118` - Authorization via ISO15118 Plug & Charge protocol\n",
                    "items": {
                      "type": "string",
                      "enum": [
                        "id_tag",
                        "mac_address",
                        "user_device",
                        "plug_and_charge",
                        "plug_and_charge_iso15118"
                      ]
                    }
                  },
                  "startDate": {
                    "type": "string",
                    "format": "date",
                    "description": "The date from which the tariff becomes valid.",
                    "nullable": true
                  },
                  "endDate": {
                    "type": "string",
                    "format": "date",
                    "description": "The expiry date of the tariff. The tariff is valid until this date inclusive.",
                    "nullable": true
                  }
                }
              },
              "partner": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "nullable": true,
                    "description": "The assigned Partner will have access to make changes to the tariff."
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "display": {
                "type": "object",
                "properties": {
                  "defaultPriceInformation": {
                    "type": "string",
                    "maxLength": 150,
                    "nullable": true,
                    "deprecated": true,
                    "description": "Deprecated: use the tariff group resource to manage this field."
                  },
                  "defaultPriceInformationOffline": {
                    "type": "string",
                    "maxLength": 150,
                    "nullable": true,
                    "deprecated": true,
                    "description": "Deprecated: use the tariff group resource to manage this field."
                  },
                  "priceInformation": {
                    "type": "string",
                    "nullable": true,
                    "deprecated": true,
                    "description": "**This property is deprecated. Use `priceInformationLocalized` instead.** The scalar field only carries the default-locale value and cannot round-trip multi-locale content.\n\nThe information that would be shown on the display of the charge point for users that are eligible for this tariff.\n"
                  },
                  "priceInformationLocalized": {
                    "type": "object",
                    "nullable": true,
                    "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                    "additionalProperties": {
                      "type": "string",
                      "nullable": true
                    },
                    "example": {
                      "en": "example",
                      "fr": "affaire"
                    }
                  },
                  "totalCostInformation": {
                    "type": "string",
                    "nullable": true,
                    "deprecated": true,
                    "description": "**This property is deprecated. Use `totalCostInformationLocalized` instead.** The scalar field only carries the default-locale value and cannot round-trip multi-locale content.\n\nAdditional information that would be displayed on the charge point when the session ends, along with the total fees for energy, duration and idle.\n"
                  },
                  "totalCostInformationLocalized": {
                    "type": "object",
                    "nullable": true,
                    "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                    "additionalProperties": {
                      "type": "string",
                      "nullable": true
                    },
                    "example": {
                      "en": "example",
                      "fr": "affaire"
                    }
                  },
                  "plainTextModeEnabled": {
                    "type": "boolean",
                    "default": false,
                    "description": "When `true`, the display text is delivered to the charge point without rich text formatting."
                  }
                }
              },
              "integrationId": {
                "type": "integer",
                "nullable": true,
                "description": "References the internal integration configuration that enables this tariff type"
              },
              "externalId": {
                "type": "string",
                "nullable": true,
                "description": "Used to store custom information, usually used for external references or metadata to the resource."
              },
              "incrementalPreAuthorizationSupported": {
                "type": "boolean",
                "readOnly": true,
                "description": "Whether incremental pre-authorizations may apply for sessions using this tariff.\n`true` when all configuration-level preconditions are met: the feature flag is enabled, incremental pre-authorizations are enabled in user billing settings, and the billing strategy supports pre-authorization.\n`false` in all other cases.\nThis is a configuration-level indicator — the actual session-level status may differ depending on the PSP and card capability.\nNot included on the tariff snapshot endpoint, since the value depends on the current feature flag and billing settings, which are not captured at snapshot time.\n"
              }
            },
            "required": [
              "id",
              "operatorId",
              "name",
              "type",
              "incrementalPreAuthorizationSupported"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "tariffUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "free",
                  "flat rate",
                  "duration+energy",
                  "duration+energy time of day",
                  "energy tou",
                  "standard",
                  "charging not allowed",
                  "average power levels",
                  "peak power levels",
                  "standard_tod",
                  "optimised dynamic pricing",
                  "discount based"
                ],
                "description": "Setting the type to `charging not allowed` or `free` is enough for creating the particular type of tariff."
              },
              "description": {
                "type": "object",
                "nullable": true,
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "additionalInformation": {
                "type": "object",
                "nullable": true,
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "learnMoreUrl": {
                "type": "object",
                "nullable": true,
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "dayTariffStart": {
                "type": "string",
                "format": "time",
                "description": "A time when the day begins"
              },
              "nightTariffStart": {
                "type": "string",
                "format": "time",
                "description": "A time when the night begins"
              },
              "pricing": {
                "type": "object",
                "properties": {
                  "pricePerSession": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per session. Only applicable with flat rate tariffs. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "connectionFee": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Connection fee. A fixed fee that is applied at the start of the charging session. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "pricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "dayPricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "nightPricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "pricePeriodInMinutes": {
                    "type": "integer",
                    "enum": [
                      1,
                      15,
                      30,
                      60,
                      240,
                      360
                    ],
                    "description": "Charging period. In minutes. It defines the time-period for charging a fee. Example: If you select 15min then the EV-driver will be charged at the start of every 15min of EV-charging. Applicable for duration+energy and duration+energy time of day",
                    "nullable": true
                  },
                  "pricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period. Applicable for duration+energy. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`idleFeePerMinute`), the regular duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "durationFeeLimit": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Duration fee limit for the whole session if fee is applied.",
                    "nullable": true
                  },
                  "durationFeeCapMinutes": {
                    "type": "integer",
                    "description": "Maximum billable charging duration in minutes. A value of zero means no duration fee is charged. Mutually exclusive with durationFeeLimit.",
                    "nullable": true
                  },
                  "dayPricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`dayIdleFeePerMinute`), the regular day duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "nightPricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`nightIdleFeePerMinute`), the regular night duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "dayIdleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\nWhen configured, this fee applies during idle periods (when no charging is occurring) and replaces the regular day duration fee (`dayPricePerPeriod`). If not configured, the regular day duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "nightIdleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\nWhen configured, this fee applies during idle periods (when no charging is occurring) and replaces the regular night duration fee (`nightPricePerPeriod`). If not configured, the regular night duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "idleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging). Up to 5 digits after the decimal point depending on the currency precision.\n\n**For duration+energy tariffs:** When configured, this fee applies during idle periods and replaces the regular duration fee (`pricePerPeriod`). If not configured, the regular duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "idleFeeGracePeriodMinutes": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee grace period (min). Optional. The interpretation of this field depends on `idleFeeGracePeriodMode`:\n\n- When mode is `idle_detection` (default): The user is given this grace period after idle state is detected (no charging) to remove the vehicle, before idle fee starts applying.\n- When mode is `session_start`: This represents the minimum session duration before idle fee applies. Idle fee will not be charged until the session has been active for at least this many minutes.\n",
                    "nullable": true
                  },
                  "idleFeeGracePeriodMode": {
                    "type": "string",
                    "enum": [
                      "idle_detection",
                      "session_start"
                    ],
                    "description": "Determines when the idle fee grace period timer starts counting.\n\n- `idle_detection` (default): Grace period begins when idle state is detected (vehicle stops charging but remains connected).\n- `session_start`: Grace period begins from session start time. Idle fee will not apply until the session has been active for at least the grace period duration.\n\nApplicable tariff types: `duration+energy`, `duration+energy time of day`, `energy tou`, `standard_tod`.\n"
                  },
                  "idlePricingPeriodInMinutes": {
                    "type": "number",
                    "enum": [
                      1,
                      15,
                      30,
                      60,
                      240,
                      360
                    ],
                    "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging).",
                    "nullable": true
                  },
                  "idleFeePeriodStart": {
                    "type": "string",
                    "format": "time",
                    "description": "Defined start time for the application of idle fee.",
                    "nullable": true
                  },
                  "idleFeePeriodEnd": {
                    "type": "string",
                    "format": "time",
                    "description": "Defined end time for the application of idle fee.",
                    "nullable": true
                  },
                  "idleFeeLimit": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee limit for the whole session if fee is applied.",
                    "nullable": true
                  },
                  "idleFeeCapMinutes": {
                    "type": "integer",
                    "description": "Maximum billable idle time in minutes. A value of zero means no idle fee is charged. Mutually exclusive with idleFeeLimit.",
                    "nullable": true
                  },
                  "connectionFeeMinimumSessionDuration": {
                    "type": "integer",
                    "description": "Connection Fee Minimum Session Duration (min). Optional.",
                    "nullable": true
                  },
                  "connectionFeeMinimumSessionEnergy": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Connection Fee Minimum Session Energy (kWh). Optional. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "durationFeeGracePeriod": {
                    "type": "integer",
                    "description": "Duration Fee Grace Period (min). Optional.",
                    "nullable": true
                  },
                  "minPrice": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Min. price. Sets a minimum total amount per session. This is helpful in the case your payment service provider has a minimum transaction size or high transaction fees and you want to make sure to have a positive ROI per transaction. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "preAuthorizeAmount": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Pre-authorize amount. The amount to pre-authorize before starting a session. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "incrementalPreAuthorizationAmount": {
                    "type": "number",
                    "format": "decimal",
                    "description": "The resolved incremental pre-authorization amount for the requesting user context, in the tariff's currency. When the request targets an ad-hoc user (`filter[userId]=null` and the tariff has ad-hoc users enabled), returns the ad-hoc cascade (ad-hoc tariff override → tariff override → global default); otherwise returns the regular cascade (tariff override → global default). Omitted from the response when incremental pre-authorizations are disabled or no amount is configured. On create/update, accept `null` to clear the regular tariff-level override (mirrors `preAuthorizeAmount`); accepted regardless of the global \"Enable incremental pre-authorizations\" setting.\n"
                  },
                  "taxID": {
                    "type": "integer",
                    "deprecated": true,
                    "description": "If Multi-tax Support has been enabled in the platform settings, you can provide the taxId for the tariff here. If you do not provide a value or provide `null`, the Default tax will be used.\n\nIf Multi-tax Support has not been enabled, any provided value will be ignored.\n",
                    "nullable": true
                  },
                  "chargePointElectricityRate": {
                    "type": "boolean",
                    "description": "Use the Electricity Rate of the Charge Point that is already attached and aims to track the electricity costs."
                  },
                  "fallbackElectricityRateId": {
                    "type": "integer",
                    "description": "When ChargePointElectricityRate is set to *false*, the Electricity Rate ID MUST be supplied in order the electricity rates for the tariff to be known.",
                    "nullable": true
                  },
                  "markupPercentagePerKwh": {
                    "type": "number",
                    "nullable": true
                  },
                  "markupFixedFeePerKwh": {
                    "type": "number",
                    "nullable": true
                  },
                  "flexibleMarkUpAsFixedPerKwh": {
                    "nullable": true,
                    "description": "Set a different fixed markup for different time slots along the day. Applicable for `energy tou` only.",
                    "type": "object",
                    "properties": {
                      "defaultPrice": {
                        "type": "number",
                        "default": 0,
                        "writeOnly": true,
                        "description": "Set price for the intervals not specified in `intervalPricing` field."
                      },
                      "intervalPricing": {
                        "type": "array",
                        "description": "Variable-length time periods for markup pricing. Periods can have any duration and do not need to be uniform. Only explicitly configured periods are returned. Time slots not covered by any interval use the `markupFixedFeePerKwh` value. Overlapping intervals are not allowed.",
                        "items": {
                          "type": "object",
                          "description": "A specific price period. The `startsAt` and `endsAt` times should be provided in the local time zone and not in UTC.\nDepending on the tenant multi timezone configuration either the tenant timezone will be used, or the timezone specific to the corresponding resource.\n",
                          "properties": {
                            "startsAt": {
                              "type": "string",
                              "pattern": "^\\d{2}:\\d{2}$",
                              "description": "The start time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                              "example": "23:45"
                            },
                            "endsAt": {
                              "type": "string",
                              "pattern": "^\\d{2}:\\d{2}$",
                              "description": "The end time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                              "example": "23:45"
                            },
                            "price": {
                              "type": "number",
                              "format": "decimal",
                              "example": 1.23,
                              "description": "The price that will apply for the given price period. Must include tax."
                            }
                          },
                          "required": [
                            "startsAt",
                            "endsAt",
                            "price"
                          ]
                        }
                      }
                    }
                  },
                  "multiPricePerKwh": {
                    "description": "\nCreate the price levels according to the kWh. <br />\nThe first level must have zero value for **firstKwh**. <br />\nThe last level must have an infinity value for **lastKwh**. <br />\nThe **fisrtKwh** value on the current level must be equal to the **lastKwh** value on the previous one. <br />\nInstead of using a price per kWh there is the option for a flat fee per level.\n\nAn example of price levels for kWh is given in the table below.\n\n| First kWh  | Last kWh   | Fee per kWh | Flat Fee    |\n| --------- | ------------| ------------|------------ |\n| 0         | 5.00        | 0.00        | 2.00        |\n| 5.00      | 10.00       | 0.35        | 0.00        |\n| 10.00     | null        | 0.40        | 0.00        |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstKwh": {
                          "type": "number",
                          "multipleOf": 0.01,
                          "example": 0.05
                        },
                        "lastKwh": {
                          "type": "number",
                          "multipleOf": 0.01,
                          "nullable": true,
                          "example": 0.06
                        },
                        "feePerKwh": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.07
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.08
                        }
                      },
                      "required": [
                        "firstKwh"
                      ]
                    }
                  },
                  "multiPricePerDuration": {
                    "description": "\nCreate the price levels according to the duration of the session from the time the charging started.  <br />\nThe first level must have zero value for **firstUnit**. <br />\nThe last level must have an infinity value for **lastUnit**.  <br />\nThe **firstUnit** value on the current level must be greater with one unit from the **lastUnit** value on the previous level. <br />\nThe Unit is created in the **pricePeriodInMinutes** property, the default one is 15 min.  <br />\nThere is the option of applying a flat fee per each level separately.  <br />\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `multiIdleFee`) will apply during idle periods.\n\nAn example of price levels for duration is given in the table below.\n\n| First Unit  | Last Unit   | Fee per Unit | Flat Fee    |\n| ----------- | ------------| -------------|------------ |\n| 0           | 8           | 0.50         | 0.00        |\n| 9           | 24          | 0.55         | 0.00        |\n| 25          | null        | 0.00         | 10.00       |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstUnit": {
                          "type": "integer"
                        },
                        "lastUnit": {
                          "type": "integer",
                          "nullable": true,
                          "example": 1
                        },
                        "feePerUnit": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.05
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0
                        }
                      },
                      "required": [
                        "firstUnit"
                      ]
                    }
                  },
                  "multiIdleFee": {
                    "description": "\nDifferent price levels could be created depending on the duration of the idle period. <br />\nThe first level must have zero value for **firstUnit**. <br />\nThe last level must have an infinity value for **lastUnit**.  <br />\nThe **firstUnit** value on the current level must be greater with one unit from the **lastUnit** value on the previous level. <br />\nThe Unit is created in the **pricePeriodInMinutes** property, the default one is 15 min. <br />\nThere is the option of applying a flat fee per each level separately. <br />\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `multiPricePerDuration`) will be paused.\n\nAn example of price levels for idle periods is given in the table below.\n\n| First Unit  | Last Unit   | Fee per Unit | Flat Fee    |\n| ----------- | ------------| -------------|------------ |\n| 0           | 2           | 0.30         | 0.00        |\n| 3           | 6           | 0.40         | 0.00        |\n| 7           | null        | 0.00         | 0.00        |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstUnit": {
                          "type": "integer"
                        },
                        "lastUnit": {
                          "type": "integer",
                          "nullable": true,
                          "example": 1
                        },
                        "feePerUnit": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.05
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.06
                        }
                      },
                      "required": [
                        "firstUnit"
                      ]
                    }
                  },
                  "regularUsePeriod": {
                    "type": "number",
                    "description": "In minutes. Only for the Peak power level tariff.",
                    "nullable": true
                  },
                  "averagePowerLevels": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 2,
                      "properties": {
                        "averagePowerUpToKw": {
                          "type": "number"
                        },
                        "pricePerMinute": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "averagePowerUpToKw",
                        "pricePerMinute"
                      ]
                    }
                  },
                  "peakPowerLevels": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 2,
                      "properties": {
                        "peakPowerUpToKw": {
                          "type": "number"
                        },
                        "regularPricePerMinute": {
                          "type": "number"
                        },
                        "excessUsePricePerMin": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "peakPowerUpToKw",
                        "regularPricePerMinute",
                        "excessUsePricePerMin"
                      ]
                    }
                  },
                  "timePeriods": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 1,
                      "properties": {
                        "startTime": {
                          "type": "string",
                          "pattern": "^\\d{2}:\\d{2}$",
                          "example": "00:00",
                          "description": "The 24-hour format should be used."
                        },
                        "endTime": {
                          "type": "string",
                          "pattern": "^\\d{2}:\\d{2}$",
                          "example": "00:00",
                          "description": "The 24-hour format should be used."
                        }
                      },
                      "required": [
                        "startTime",
                        "endTime"
                      ]
                    }
                  },
                  "pricePeriods": {
                    "type": "object",
                    "properties": {
                      "connectionFeePeriods": {
                        "type": "object",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "energyFeePeriods": {
                        "type": "object",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "durationFeePeriods": {
                        "type": "object",
                        "description": "Duration fees for each time period. Applicable for standard_tod tariff.\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `idleFeePeriods`) will apply during idle periods.\n",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "idleFeePeriods": {
                        "type": "object",
                        "description": "Idle fees for each time period. Applicable for standard_tod tariff.\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `durationFeePeriods`) will be paused.\n",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      }
                    }
                  },
                  "daysWhenApplied": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "specialDates": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "format": "date"
                          },
                          "example": "2022-01-30"
                        },
                        "idleFeeGracePeriodMinutes": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Idle fee grace period (min). Optional. The interpretation of this field depends on `idleFeeGracePeriodMode`:\n\n- When mode is `idle_detection` (default): The user is given this grace period after idle state is detected (no charging) to remove the vehicle, before idle fee starts applying.\n- When mode is `session_start`: This represents the minimum session duration before idle fee applies. Idle fee will not be charged until the session has been active for at least this many minutes.\n",
                          "nullable": true
                        },
                        "idlePricingPeriodInMinutes": {
                          "type": "number",
                          "enum": [
                            1,
                            15,
                            30,
                            60,
                            240,
                            360
                          ],
                          "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging).",
                          "nullable": true
                        },
                        "connectionFeeMinimumSessionDuration": {
                          "type": "integer",
                          "description": "Connection Fee Minimum Session Duration (min). Optional.",
                          "nullable": true
                        },
                        "connectionFeeMinimumSessionEnergy": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Connection Fee Minimum Session Energy (kWh). Optional. Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true
                        },
                        "durationFeeGracePeriod": {
                          "type": "integer",
                          "description": "Duration Fee Grace Period (min). Optional.",
                          "nullable": true
                        },
                        "pricePeriodInMinutes": {
                          "type": "integer",
                          "enum": [
                            1,
                            15,
                            30,
                            60,
                            240,
                            360
                          ],
                          "description": "Charging period. In minutes. It defines the time-period for charging a fee. Example: If you select 15min then the EV-driver will be charged at the start of every 15min of EV-charging. Applicable for duration+energy and duration+energy time of day",
                          "nullable": true
                        },
                        "pricePeriods": {
                          "type": "object",
                          "minItems": 1,
                          "properties": {
                            "connectionFeePeriods": {
                              "type": "object",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "energyFeePeriods": {
                              "type": "object",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "durationFeePeriods": {
                              "type": "object",
                              "description": "Duration fees for each time period. Applicable for standard_tod tariff.\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `idleFeePeriods`) will apply during idle periods.\n",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "idleFeePeriods": {
                              "type": "object",
                              "description": "Idle fees for each time period. Applicable for standard_tod tariff.\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `durationFeePeriods`) will be paused.\n",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "description": "When left empty, this means that this is the standard pricing that would be applied in general without taking into consideration the day."
                  },
                  "thresholdPriceForEnergy": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price for kWh to be considered by Optimised charging for setting the charging periods.",
                    "nullable": true
                  },
                  "priceForEnergyWhenOptimized": {
                    "type": "number",
                    "format": "decimal",
                    "nullable": true
                  },
                  "optimisedLabel": {
                    "type": "string",
                    "nullable": true
                  },
                  "durationFeeFrom": {
                    "type": "string",
                    "format": "time",
                    "nullable": true,
                    "description": "Defined start time for the application of duration fees."
                  },
                  "durationFeeTo": {
                    "type": "string",
                    "format": "time",
                    "nullable": true,
                    "description": "Defined end time for the application of duration fees."
                  },
                  "subsidyIntegrationId": {
                    "type": "integer",
                    "description": "**This property is deprecated**\n\nUse `subsidy.integrationId` instead.\n\nThe subsidy integration id that should be applied for this tariff. Only valid for Energy ToU tariffs. Please use the admin panel for the specific integration id. Optional.\n",
                    "nullable": true,
                    "deprecated": true
                  },
                  "subsidy": {
                    "type": "object",
                    "description": "Subsidy parameters for this tariff. Only applicable for Energy ToU tariffs. Omitted when no subsidy is configured.",
                    "properties": {
                      "integrationId": {
                        "type": "integer",
                        "description": "The ID of the subsidy integration that is active on the tariff (or was active when the snapshot was taken)."
                      },
                      "threshold": {
                        "type": "number",
                        "description": "The energy price threshold (in the operator's currency per kWh) above which the subsidy applies."
                      },
                      "compensationRate": {
                        "type": "number",
                        "description": "The compensation rate as a percentage (e.g., 90 for 90%)."
                      }
                    },
                    "required": [
                      "integrationId",
                      "threshold",
                      "compensationRate"
                    ]
                  },
                  "lockPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled the tariff of the charger will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for:\n  - `duration+energy time of day` - it locks duration and energy price components\n  - `energy tou` - it locks energy component only\n"
                  },
                  "lockEnergyPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled the tariff of the charger will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for `standard_tod tariff`.\n"
                  },
                  "lockDurationPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled, the energy fee component of the tariff will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for `standard_tod tariff`.\n"
                  },
                  "lockIdlePriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled, the duration fee component of the tariff will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the whole duration of their session.\nApplicable only for `standard_tod tariff`\n"
                  },
                  "stateOfChargeIdleThreshold": {
                    "nullable": true,
                    "type": "integer",
                    "enum": [
                      75,
                      80,
                      85,
                      90,
                      95,
                      100
                    ],
                    "description": "Switches the session to idle when the SoC (%) exceeds the selected value. Leave empty to use the system wide setting.\nThis option will take effect only if `Allow custom SoC (%) threshold per Tariff` is set in `Idle period detection` setting.\nThis only applies to local charge points, it does not affect sessions on roaming charge points. Leave empty to use the system wide setting.\n"
                  },
                  "averagePowerIdleThreshold": {
                    "nullable": true,
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "maximum": 999999.99,
                    "description": "Sets the session to idle state when the average kW for the past 5 minutes is below the set threshold.\nThis option will take effect only if `Allow custom power threshold per Tariff` is set in `Idle period detection` setting.\n"
                  }
                }
              },
              "discountTariffSettings": {
                "type": "object",
                "description": "Discount configuration for discount based tariffs. Present only when `type=discount based`, omitted otherwise.\n",
                "properties": {
                  "discountReferenceType": {
                    "type": "string",
                    "enum": [
                      "base_tariff",
                      "specific_tariff",
                      "roaming_tariff"
                    ],
                    "description": "Determines which tariff the discount is applied to.\n\n- `base_tariff` — the discount applies to the base tariff of the tariff group the discount tariff belongs to.\n- `specific_tariff` — the discount applies to the tariff identified by `referencedTariffId`.\n- `roaming_tariff` — the discount applies to the CPO wholesale tariff resolved at session time via OCPI. The exact source tariff is unknown at configuration time and varies per CPO partner and per session.\n"
                  },
                  "referencedTariffId": {
                    "type": "integer",
                    "description": "Present when `discountReferenceType=specific_tariff`. Omitted otherwise.\n\nMust reference a non-derived priced tariff owned by the same operator that is not itself `discount based`, `free`, or `charging not allowed`. Submitting a referenced tariff that violates these constraints is rejected with HTTP 422. Compatibility between a `base_tariff` discount and the actual base tariff of the tariff group is enforced when the discount tariff is added to a tariff group, and a `base_tariff` discount applied to a `free` or `charging not allowed` base tariff is rejected with HTTP 422 at that point.\n\nProhibited when `discountReferenceType=roaming_tariff`.\n"
                  },
                  "discountMode": {
                    "type": "string",
                    "enum": [
                      "global",
                      "per_element"
                    ],
                    "description": "Determines how the discount is applied. Required when `discountReferenceType` is `base_tariff` or `specific_tariff`.\n\n- `global` — a single `discountPercentage` is applied to every fee component of the referenced tariff.\n- `per_element` — different discount values are applied per fee component, configured via `discountElements`.\n\nProhibited when `discountReferenceType=roaming_tariff` (roaming discounts are always applied globally).\n"
                  },
                  "discountPercentage": {
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "maximum": 100,
                    "description": "Present when `discountMode=global` and `discountReferenceType` is `base_tariff` or `specific_tariff`. Omitted otherwise.\n\nPercentage discount in the range `0` to `100` applied to every fee component of the referenced tariff. Out-of-range values are rejected with HTTP 422.\n\nProhibited when `discountReferenceType=roaming_tariff` (use `discountValue` instead).\n"
                  },
                  "discountType": {
                    "type": "string",
                    "enum": [
                      "percentage",
                      "flat_amount"
                    ],
                    "description": "Present when `discountReferenceType=roaming_tariff`. Prohibited otherwise.\n\n- `percentage` — `discountValue` is interpreted as a percentage from 0 to 100.\n- `flat_amount` — `discountValue` is interpreted as a fixed currency amount to subtract from each CPO price component.\n"
                  },
                  "discountValue": {
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "description": "Present when `discountReferenceType=roaming_tariff`. Prohibited otherwise.\n\nThe discount value, interpreted according to `discountType`. When `discountType` is `percentage`, the maximum is `100`. When `discountType` is `flat_amount`, the value represents a fixed currency amount with no upper bound.\n"
                  },
                  "discountElements": {
                    "type": "array",
                    "description": "Present when `discountMode=per_element` and `discountReferenceType` is `base_tariff` or `specific_tariff`. Omitted otherwise.\n\nEach entry configures a discount for a specific fee component of the referenced tariff. At least one entry is required.\n\nProhibited when `discountReferenceType=roaming_tariff`.\n",
                    "items": {
                      "type": "object",
                      "properties": {
                        "serviceFeeType": {
                          "type": "string",
                          "enum": [
                            "flat",
                            "connection",
                            "energy",
                            "charging_time",
                            "idle_time",
                            "min_price",
                            "service_fee"
                          ],
                          "description": "The fee component of the referenced tariff that this discount applies to. Only discount-eligible fee types are accepted."
                        },
                        "discountType": {
                          "type": "string",
                          "enum": [
                            "percentage",
                            "flat_amount"
                          ],
                          "description": "- `percentage` — `discountValue` is interpreted as a percentage from 0 to 100.\n- `flat_amount` — `discountValue` is interpreted as a fixed amount in the operator's currency that is subtracted from the fee component.\n"
                        },
                        "discountValue": {
                          "type": "number",
                          "format": "decimal",
                          "minimum": 0,
                          "description": "The discount value, interpreted according to `discountType`. When `discountType` is `percentage`, the maximum is 100.\n"
                        }
                      },
                      "required": [
                        "serviceFeeType",
                        "discountType",
                        "discountValue"
                      ]
                    }
                  }
                }
              },
              "currency": {
                "type": "string",
                "description": "ISO 4217 currency code",
                "readOnly": true
              },
              "stopSession": {
                "type": "object",
                "properties": {
                  "timeLimitMinutes": {
                    "type": "number",
                    "description": "Session max time. The maximum minutes a session is allowed to run. Skip for no time limit.",
                    "nullable": true
                  },
                  "stopWhenEnergyExceedsKwh": {
                    "type": "number",
                    "description": "The maximum energy (kWh) allowed per session. Skip for no limit.",
                    "nullable": true
                  },
                  "stopWhenSocExceedsPercent": {
                    "type": "integer",
                    "minimum": 70,
                    "maximum": 99,
                    "description": "Stop the session when the vehicle's reported State of Charge reaches or exceeds this value. If the charge point does not report SoC, this criterion is ignored. Accepts values between 70 and 99.",
                    "nullable": true
                  }
                }
              },
              "restrictions": {
                "type": "object",
                "properties": {
                  "applyToUsersOfChargePointOwner": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to users of the partner, who is set as owner of the charge point",
                    "deprecated": true
                  },
                  "applyToUsersOfChargePointPartner": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to users of the partner, who is set as owner of the charge point"
                  },
                  "applyToUsersOfAllRoamingEmsps": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to users of all eMSPs, which are roaming partners"
                  },
                  "applyToAdHocUsers": {
                    "type": "boolean",
                    "description": "Makes the tariff valid for non-registered users(ad-hoc charging). Mutually exclusive with applyToAdHocOperatorIds."
                  },
                  "adHocPreAuthorizeAmount": {
                    "type": "number",
                    "description": "Sets the amount that would be blocked on the user's card at the start of the session. Required if applyToAdHocUsers is true or applyToAdHocOperatorIds is non-empty, and one of the following billing strategies is chosen: `Require payment method and authorize certain amount before starting session` or `Require payment method OR minimum amount in balance`.",
                    "multipleOf": 0.01,
                    "nullable": true,
                    "minimum": 0
                  },
                  "adHocIncrementalPreAuthorizationAmount": {
                    "type": "number",
                    "description": "The resolved incremental pre-authorization amount for ad-hoc users, in the tariff's currency. Follows the cascade ad-hoc tariff override → tariff override → global default from user billing settings. Omitted from the response when incremental pre-authorizations are disabled, no amount is configured at any cascade level, or the tariff does not have ad-hoc users enabled. On create/update, accept `null` to clear the ad-hoc tariff-level override; accepted only when the tariff has ad-hoc users enabled, regardless of the global \"Enable incremental pre-authorizations\" setting.\n",
                    "multipleOf": 0.01,
                    "minimum": 0
                  },
                  "adHocStopWhenPreAuthorizedAmountFallsBelow": {
                    "type": "number",
                    "description": "Set the minimum pre-authorized amount threshold. When the remaining ad hoc pre-authorized amount falls below this value, the charging session will automatically stop to prevent revenue loss.\n",
                    "multipleOf": 0.01
                  },
                  "applyToAdHocOperatorIds": {
                    "type": "array",
                    "description": "An array of operator IDs. Makes the tariff apply to registered users from specific operators when charging ad-hoc (cross-operator charging without internal roaming). Mutually exclusive with applyToAdHocUsers.",
                    "items": {
                      "type": "integer",
                      "minimum": 1
                    }
                  },
                  "applyToUsersOfPartners": {
                    "type": "array",
                    "description": "Users of specific Partners. Provide a list of partner IDs. Matches if the user is a invited to at least one of the partners.",
                    "items": {
                      "type": "number"
                    }
                  },
                  "applyToUsersWithGroups": {
                    "deprecated": true,
                    "type": "array",
                    "description": "Users with a specific group. Provide a list of user groups. Matches if the user is a member of at least one of the groups. Note: Due to improvements in the user groups, this property could be used with some limitations: \n 1) The value(s) should exactly match the name(s) of the user groups. \n 2) It would not be possible to create a user group from here anymore. \n 3) If there are duplicates, the value would not be accepted.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "applyToHomeChargingOwner": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to the driver who owns the home charge point (the driver, not the partner that manages it)"
                  },
                  "applyToHomeChargingSharedUsers": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to the drivers the owner has shared the home charge point with (accepted shares only)"
                  },
                  "applyToUserGroupIds": {
                    "type": "array",
                    "description": "An array of user group IDs. Users with a specific group. Provide a list of user group IDs. This restriction applies if the user is a member of at least one of the groups.",
                    "items": {
                      "type": "number"
                    }
                  },
                  "applyToUsersWithSubscriptions": {
                    "type": "array",
                    "description": "Users with a specific subscription plan. Provide a list of subscription plan IDs. Matches if the user has active one of the subscription plans.",
                    "items": {
                      "type": "number"
                    }
                  },
                  "applyToAuthorizationMethods": {
                    "type": "array",
                    "description": "The tariff applies to local users (non-roaming) who authorize using any of the selected methods. When omitted or empty, the tariff applies regardless of authorization method.\nValues align with the `Authorization.method` property:\n- `id_tag` - Authorization via physical RFID card\n- `mac_address` - Authorization via vehicle MAC address (AutoCharge)\n- `user_device` - Authorization via mobile app or web portal\n- `plug_and_charge` - Authorization via Plug & Charge protocol\n- `plug_and_charge_iso15118` - Authorization via ISO15118 Plug & Charge protocol\n",
                    "items": {
                      "type": "string",
                      "enum": [
                        "id_tag",
                        "mac_address",
                        "user_device",
                        "plug_and_charge",
                        "plug_and_charge_iso15118"
                      ]
                    }
                  },
                  "startDate": {
                    "type": "string",
                    "format": "date",
                    "description": "The date from which the tariff becomes valid.",
                    "nullable": true
                  },
                  "endDate": {
                    "type": "string",
                    "format": "date",
                    "description": "The expiry date of the tariff. The tariff is valid until this date inclusive.",
                    "nullable": true
                  }
                }
              },
              "partner": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "nullable": true,
                    "description": "The assigned Partner will have access to make changes to the tariff."
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "display": {
                "type": "object",
                "properties": {
                  "defaultPriceInformation": {
                    "type": "string",
                    "maxLength": 150,
                    "nullable": true,
                    "deprecated": true,
                    "description": "Deprecated: use the tariff group resource to manage this field."
                  },
                  "defaultPriceInformationOffline": {
                    "type": "string",
                    "maxLength": 150,
                    "nullable": true,
                    "deprecated": true,
                    "description": "Deprecated: use the tariff group resource to manage this field."
                  },
                  "priceInformation": {
                    "type": "string",
                    "nullable": true,
                    "deprecated": true,
                    "description": "**This property is deprecated. Use `priceInformationLocalized` instead.** The scalar field only carries the default-locale value and cannot round-trip multi-locale content.\n\nThe information that would be shown on the display of the charge point for users that are eligible for this tariff.\n"
                  },
                  "priceInformationLocalized": {
                    "type": "object",
                    "nullable": true,
                    "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                    "additionalProperties": {
                      "type": "string",
                      "nullable": true
                    },
                    "example": {
                      "en": "example",
                      "fr": "affaire"
                    }
                  },
                  "totalCostInformation": {
                    "type": "string",
                    "nullable": true,
                    "deprecated": true,
                    "description": "**This property is deprecated. Use `totalCostInformationLocalized` instead.** The scalar field only carries the default-locale value and cannot round-trip multi-locale content.\n\nAdditional information that would be displayed on the charge point when the session ends, along with the total fees for energy, duration and idle.\n"
                  },
                  "totalCostInformationLocalized": {
                    "type": "object",
                    "nullable": true,
                    "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                    "additionalProperties": {
                      "type": "string",
                      "nullable": true
                    },
                    "example": {
                      "en": "example",
                      "fr": "affaire"
                    }
                  },
                  "plainTextModeEnabled": {
                    "type": "boolean",
                    "default": false,
                    "description": "When `true`, the display text is delivered to the charge point without rich text formatting."
                  }
                }
              },
              "integrationId": {
                "type": "integer",
                "nullable": true,
                "description": "References the internal integration configuration that enables this tariff type"
              },
              "externalId": {
                "type": "string",
                "nullable": true,
                "description": "Used to store custom information, usually used for external references or metadata to the resource."
              },
              "incrementalPreAuthorizationSupported": {
                "type": "boolean",
                "readOnly": true,
                "description": "Whether incremental pre-authorizations may apply for sessions using this tariff.\n`true` when all configuration-level preconditions are met: the feature flag is enabled, incremental pre-authorizations are enabled in user billing settings, and the billing strategy supports pre-authorization.\n`false` in all other cases.\nThis is a configuration-level indicator — the actual session-level status may differ depending on the PSP and card capability.\nNot included on the tariff snapshot endpoint, since the value depends on the current feature flag and billing settings, which are not captured at snapshot time.\n"
              }
            },
            "required": [
              "id",
              "operatorId",
              "name",
              "type",
              "incrementalPreAuthorizationSupported"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "tariffDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "tariffPartialUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "free",
                  "flat rate",
                  "duration+energy",
                  "duration+energy time of day",
                  "energy tou",
                  "standard",
                  "charging not allowed",
                  "average power levels",
                  "peak power levels",
                  "standard_tod",
                  "optimised dynamic pricing",
                  "discount based"
                ],
                "description": "Setting the type to `charging not allowed` or `free` is enough for creating the particular type of tariff."
              },
              "description": {
                "type": "object",
                "nullable": true,
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "additionalInformation": {
                "type": "object",
                "nullable": true,
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "learnMoreUrl": {
                "type": "object",
                "nullable": true,
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "dayTariffStart": {
                "type": "string",
                "format": "time",
                "description": "A time when the day begins"
              },
              "nightTariffStart": {
                "type": "string",
                "format": "time",
                "description": "A time when the night begins"
              },
              "pricing": {
                "type": "object",
                "properties": {
                  "pricePerSession": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per session. Only applicable with flat rate tariffs. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "connectionFee": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Connection fee. A fixed fee that is applied at the start of the charging session. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "pricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "dayPricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "nightPricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "pricePeriodInMinutes": {
                    "type": "integer",
                    "enum": [
                      1,
                      15,
                      30,
                      60,
                      240,
                      360
                    ],
                    "description": "Charging period. In minutes. It defines the time-period for charging a fee. Example: If you select 15min then the EV-driver will be charged at the start of every 15min of EV-charging. Applicable for duration+energy and duration+energy time of day",
                    "nullable": true
                  },
                  "pricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period. Applicable for duration+energy. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`idleFeePerMinute`), the regular duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "durationFeeLimit": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Duration fee limit for the whole session if fee is applied.",
                    "nullable": true
                  },
                  "durationFeeCapMinutes": {
                    "type": "integer",
                    "description": "Maximum billable charging duration in minutes. A value of zero means no duration fee is charged. Mutually exclusive with durationFeeLimit.",
                    "nullable": true
                  },
                  "dayPricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`dayIdleFeePerMinute`), the regular day duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "nightPricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`nightIdleFeePerMinute`), the regular night duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "dayIdleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\nWhen configured, this fee applies during idle periods (when no charging is occurring) and replaces the regular day duration fee (`dayPricePerPeriod`). If not configured, the regular day duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "nightIdleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\nWhen configured, this fee applies during idle periods (when no charging is occurring) and replaces the regular night duration fee (`nightPricePerPeriod`). If not configured, the regular night duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "idleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging). Up to 5 digits after the decimal point depending on the currency precision.\n\n**For duration+energy tariffs:** When configured, this fee applies during idle periods and replaces the regular duration fee (`pricePerPeriod`). If not configured, the regular duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "idleFeeGracePeriodMinutes": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee grace period (min). Optional. The interpretation of this field depends on `idleFeeGracePeriodMode`:\n\n- When mode is `idle_detection` (default): The user is given this grace period after idle state is detected (no charging) to remove the vehicle, before idle fee starts applying.\n- When mode is `session_start`: This represents the minimum session duration before idle fee applies. Idle fee will not be charged until the session has been active for at least this many minutes.\n",
                    "nullable": true
                  },
                  "idleFeeGracePeriodMode": {
                    "type": "string",
                    "enum": [
                      "idle_detection",
                      "session_start"
                    ],
                    "description": "Determines when the idle fee grace period timer starts counting.\n\n- `idle_detection` (default): Grace period begins when idle state is detected (vehicle stops charging but remains connected).\n- `session_start`: Grace period begins from session start time. Idle fee will not apply until the session has been active for at least the grace period duration.\n\nApplicable tariff types: `duration+energy`, `duration+energy time of day`, `energy tou`, `standard_tod`.\n"
                  },
                  "idlePricingPeriodInMinutes": {
                    "type": "number",
                    "enum": [
                      1,
                      15,
                      30,
                      60,
                      240,
                      360
                    ],
                    "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging).",
                    "nullable": true
                  },
                  "idleFeePeriodStart": {
                    "type": "string",
                    "format": "time",
                    "description": "Defined start time for the application of idle fee.",
                    "nullable": true
                  },
                  "idleFeePeriodEnd": {
                    "type": "string",
                    "format": "time",
                    "description": "Defined end time for the application of idle fee.",
                    "nullable": true
                  },
                  "idleFeeLimit": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee limit for the whole session if fee is applied.",
                    "nullable": true
                  },
                  "idleFeeCapMinutes": {
                    "type": "integer",
                    "description": "Maximum billable idle time in minutes. A value of zero means no idle fee is charged. Mutually exclusive with idleFeeLimit.",
                    "nullable": true
                  },
                  "connectionFeeMinimumSessionDuration": {
                    "type": "integer",
                    "description": "Connection Fee Minimum Session Duration (min). Optional.",
                    "nullable": true
                  },
                  "connectionFeeMinimumSessionEnergy": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Connection Fee Minimum Session Energy (kWh). Optional. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "durationFeeGracePeriod": {
                    "type": "integer",
                    "description": "Duration Fee Grace Period (min). Optional.",
                    "nullable": true
                  },
                  "minPrice": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Min. price. Sets a minimum total amount per session. This is helpful in the case your payment service provider has a minimum transaction size or high transaction fees and you want to make sure to have a positive ROI per transaction. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "preAuthorizeAmount": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Pre-authorize amount. The amount to pre-authorize before starting a session. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "incrementalPreAuthorizationAmount": {
                    "type": "number",
                    "format": "decimal",
                    "description": "The resolved incremental pre-authorization amount for the requesting user context, in the tariff's currency. When the request targets an ad-hoc user (`filter[userId]=null` and the tariff has ad-hoc users enabled), returns the ad-hoc cascade (ad-hoc tariff override → tariff override → global default); otherwise returns the regular cascade (tariff override → global default). Omitted from the response when incremental pre-authorizations are disabled or no amount is configured. On create/update, accept `null` to clear the regular tariff-level override (mirrors `preAuthorizeAmount`); accepted regardless of the global \"Enable incremental pre-authorizations\" setting.\n"
                  },
                  "taxID": {
                    "type": "integer",
                    "deprecated": true,
                    "description": "If Multi-tax Support has been enabled in the platform settings, you can provide the taxId for the tariff here. If you do not provide a value or provide `null`, the Default tax will be used.\n\nIf Multi-tax Support has not been enabled, any provided value will be ignored.\n",
                    "nullable": true
                  },
                  "chargePointElectricityRate": {
                    "type": "boolean",
                    "description": "Use the Electricity Rate of the Charge Point that is already attached and aims to track the electricity costs."
                  },
                  "fallbackElectricityRateId": {
                    "type": "integer",
                    "description": "When ChargePointElectricityRate is set to *false*, the Electricity Rate ID MUST be supplied in order the electricity rates for the tariff to be known.",
                    "nullable": true
                  },
                  "markupPercentagePerKwh": {
                    "type": "number",
                    "nullable": true
                  },
                  "markupFixedFeePerKwh": {
                    "type": "number",
                    "nullable": true
                  },
                  "flexibleMarkUpAsFixedPerKwh": {
                    "nullable": true,
                    "description": "Set a different fixed markup for different time slots along the day. Applicable for `energy tou` only.",
                    "type": "object",
                    "properties": {
                      "defaultPrice": {
                        "type": "number",
                        "default": 0,
                        "writeOnly": true,
                        "description": "Set price for the intervals not specified in `intervalPricing` field."
                      },
                      "intervalPricing": {
                        "type": "array",
                        "description": "Variable-length time periods for markup pricing. Periods can have any duration and do not need to be uniform. Only explicitly configured periods are returned. Time slots not covered by any interval use the `markupFixedFeePerKwh` value. Overlapping intervals are not allowed.",
                        "items": {
                          "type": "object",
                          "description": "A specific price period. The `startsAt` and `endsAt` times should be provided in the local time zone and not in UTC.\nDepending on the tenant multi timezone configuration either the tenant timezone will be used, or the timezone specific to the corresponding resource.\n",
                          "properties": {
                            "startsAt": {
                              "type": "string",
                              "pattern": "^\\d{2}:\\d{2}$",
                              "description": "The start time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                              "example": "23:45"
                            },
                            "endsAt": {
                              "type": "string",
                              "pattern": "^\\d{2}:\\d{2}$",
                              "description": "The end time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                              "example": "23:45"
                            },
                            "price": {
                              "type": "number",
                              "format": "decimal",
                              "example": 1.23,
                              "description": "The price that will apply for the given price period. Must include tax."
                            }
                          },
                          "required": [
                            "startsAt",
                            "endsAt",
                            "price"
                          ]
                        }
                      }
                    }
                  },
                  "multiPricePerKwh": {
                    "description": "\nCreate the price levels according to the kWh. <br />\nThe first level must have zero value for **firstKwh**. <br />\nThe last level must have an infinity value for **lastKwh**. <br />\nThe **fisrtKwh** value on the current level must be equal to the **lastKwh** value on the previous one. <br />\nInstead of using a price per kWh there is the option for a flat fee per level.\n\nAn example of price levels for kWh is given in the table below.\n\n| First kWh  | Last kWh   | Fee per kWh | Flat Fee    |\n| --------- | ------------| ------------|------------ |\n| 0         | 5.00        | 0.00        | 2.00        |\n| 5.00      | 10.00       | 0.35        | 0.00        |\n| 10.00     | null        | 0.40        | 0.00        |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstKwh": {
                          "type": "number",
                          "multipleOf": 0.01,
                          "example": 0.05
                        },
                        "lastKwh": {
                          "type": "number",
                          "multipleOf": 0.01,
                          "nullable": true,
                          "example": 0.06
                        },
                        "feePerKwh": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.07
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.08
                        }
                      },
                      "required": [
                        "firstKwh"
                      ]
                    }
                  },
                  "multiPricePerDuration": {
                    "description": "\nCreate the price levels according to the duration of the session from the time the charging started.  <br />\nThe first level must have zero value for **firstUnit**. <br />\nThe last level must have an infinity value for **lastUnit**.  <br />\nThe **firstUnit** value on the current level must be greater with one unit from the **lastUnit** value on the previous level. <br />\nThe Unit is created in the **pricePeriodInMinutes** property, the default one is 15 min.  <br />\nThere is the option of applying a flat fee per each level separately.  <br />\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `multiIdleFee`) will apply during idle periods.\n\nAn example of price levels for duration is given in the table below.\n\n| First Unit  | Last Unit   | Fee per Unit | Flat Fee    |\n| ----------- | ------------| -------------|------------ |\n| 0           | 8           | 0.50         | 0.00        |\n| 9           | 24          | 0.55         | 0.00        |\n| 25          | null        | 0.00         | 10.00       |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstUnit": {
                          "type": "integer"
                        },
                        "lastUnit": {
                          "type": "integer",
                          "nullable": true,
                          "example": 1
                        },
                        "feePerUnit": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.05
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0
                        }
                      },
                      "required": [
                        "firstUnit"
                      ]
                    }
                  },
                  "multiIdleFee": {
                    "description": "\nDifferent price levels could be created depending on the duration of the idle period. <br />\nThe first level must have zero value for **firstUnit**. <br />\nThe last level must have an infinity value for **lastUnit**.  <br />\nThe **firstUnit** value on the current level must be greater with one unit from the **lastUnit** value on the previous level. <br />\nThe Unit is created in the **pricePeriodInMinutes** property, the default one is 15 min. <br />\nThere is the option of applying a flat fee per each level separately. <br />\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `multiPricePerDuration`) will be paused.\n\nAn example of price levels for idle periods is given in the table below.\n\n| First Unit  | Last Unit   | Fee per Unit | Flat Fee    |\n| ----------- | ------------| -------------|------------ |\n| 0           | 2           | 0.30         | 0.00        |\n| 3           | 6           | 0.40         | 0.00        |\n| 7           | null        | 0.00         | 0.00        |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstUnit": {
                          "type": "integer"
                        },
                        "lastUnit": {
                          "type": "integer",
                          "nullable": true,
                          "example": 1
                        },
                        "feePerUnit": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.05
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.06
                        }
                      },
                      "required": [
                        "firstUnit"
                      ]
                    }
                  },
                  "regularUsePeriod": {
                    "type": "number",
                    "description": "In minutes. Only for the Peak power level tariff.",
                    "nullable": true
                  },
                  "averagePowerLevels": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 2,
                      "properties": {
                        "averagePowerUpToKw": {
                          "type": "number"
                        },
                        "pricePerMinute": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "averagePowerUpToKw",
                        "pricePerMinute"
                      ]
                    }
                  },
                  "peakPowerLevels": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 2,
                      "properties": {
                        "peakPowerUpToKw": {
                          "type": "number"
                        },
                        "regularPricePerMinute": {
                          "type": "number"
                        },
                        "excessUsePricePerMin": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "peakPowerUpToKw",
                        "regularPricePerMinute",
                        "excessUsePricePerMin"
                      ]
                    }
                  },
                  "timePeriods": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 1,
                      "properties": {
                        "startTime": {
                          "type": "string",
                          "pattern": "^\\d{2}:\\d{2}$",
                          "example": "00:00",
                          "description": "The 24-hour format should be used."
                        },
                        "endTime": {
                          "type": "string",
                          "pattern": "^\\d{2}:\\d{2}$",
                          "example": "00:00",
                          "description": "The 24-hour format should be used."
                        }
                      },
                      "required": [
                        "startTime",
                        "endTime"
                      ]
                    }
                  },
                  "pricePeriods": {
                    "type": "object",
                    "properties": {
                      "connectionFeePeriods": {
                        "type": "object",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "energyFeePeriods": {
                        "type": "object",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "durationFeePeriods": {
                        "type": "object",
                        "description": "Duration fees for each time period. Applicable for standard_tod tariff.\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `idleFeePeriods`) will apply during idle periods.\n",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "idleFeePeriods": {
                        "type": "object",
                        "description": "Idle fees for each time period. Applicable for standard_tod tariff.\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `durationFeePeriods`) will be paused.\n",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      }
                    }
                  },
                  "daysWhenApplied": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "specialDates": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "format": "date"
                          },
                          "example": "2022-01-30"
                        },
                        "idleFeeGracePeriodMinutes": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Idle fee grace period (min). Optional. The interpretation of this field depends on `idleFeeGracePeriodMode`:\n\n- When mode is `idle_detection` (default): The user is given this grace period after idle state is detected (no charging) to remove the vehicle, before idle fee starts applying.\n- When mode is `session_start`: This represents the minimum session duration before idle fee applies. Idle fee will not be charged until the session has been active for at least this many minutes.\n",
                          "nullable": true
                        },
                        "idlePricingPeriodInMinutes": {
                          "type": "number",
                          "enum": [
                            1,
                            15,
                            30,
                            60,
                            240,
                            360
                          ],
                          "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging).",
                          "nullable": true
                        },
                        "connectionFeeMinimumSessionDuration": {
                          "type": "integer",
                          "description": "Connection Fee Minimum Session Duration (min). Optional.",
                          "nullable": true
                        },
                        "connectionFeeMinimumSessionEnergy": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Connection Fee Minimum Session Energy (kWh). Optional. Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true
                        },
                        "durationFeeGracePeriod": {
                          "type": "integer",
                          "description": "Duration Fee Grace Period (min). Optional.",
                          "nullable": true
                        },
                        "pricePeriodInMinutes": {
                          "type": "integer",
                          "enum": [
                            1,
                            15,
                            30,
                            60,
                            240,
                            360
                          ],
                          "description": "Charging period. In minutes. It defines the time-period for charging a fee. Example: If you select 15min then the EV-driver will be charged at the start of every 15min of EV-charging. Applicable for duration+energy and duration+energy time of day",
                          "nullable": true
                        },
                        "pricePeriods": {
                          "type": "object",
                          "minItems": 1,
                          "properties": {
                            "connectionFeePeriods": {
                              "type": "object",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "energyFeePeriods": {
                              "type": "object",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "durationFeePeriods": {
                              "type": "object",
                              "description": "Duration fees for each time period. Applicable for standard_tod tariff.\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `idleFeePeriods`) will apply during idle periods.\n",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "idleFeePeriods": {
                              "type": "object",
                              "description": "Idle fees for each time period. Applicable for standard_tod tariff.\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `durationFeePeriods`) will be paused.\n",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "description": "When left empty, this means that this is the standard pricing that would be applied in general without taking into consideration the day."
                  },
                  "thresholdPriceForEnergy": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price for kWh to be considered by Optimised charging for setting the charging periods.",
                    "nullable": true
                  },
                  "priceForEnergyWhenOptimized": {
                    "type": "number",
                    "format": "decimal",
                    "nullable": true
                  },
                  "optimisedLabel": {
                    "type": "string",
                    "nullable": true
                  },
                  "durationFeeFrom": {
                    "type": "string",
                    "format": "time",
                    "nullable": true,
                    "description": "Defined start time for the application of duration fees."
                  },
                  "durationFeeTo": {
                    "type": "string",
                    "format": "time",
                    "nullable": true,
                    "description": "Defined end time for the application of duration fees."
                  },
                  "subsidyIntegrationId": {
                    "type": "integer",
                    "description": "**This property is deprecated**\n\nUse `subsidy.integrationId` instead.\n\nThe subsidy integration id that should be applied for this tariff. Only valid for Energy ToU tariffs. Please use the admin panel for the specific integration id. Optional.\n",
                    "nullable": true,
                    "deprecated": true
                  },
                  "subsidy": {
                    "type": "object",
                    "description": "Subsidy parameters for this tariff. Only applicable for Energy ToU tariffs. Omitted when no subsidy is configured.",
                    "properties": {
                      "integrationId": {
                        "type": "integer",
                        "description": "The ID of the subsidy integration that is active on the tariff (or was active when the snapshot was taken)."
                      },
                      "threshold": {
                        "type": "number",
                        "description": "The energy price threshold (in the operator's currency per kWh) above which the subsidy applies."
                      },
                      "compensationRate": {
                        "type": "number",
                        "description": "The compensation rate as a percentage (e.g., 90 for 90%)."
                      }
                    },
                    "required": [
                      "integrationId",
                      "threshold",
                      "compensationRate"
                    ]
                  },
                  "lockPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled the tariff of the charger will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for:\n  - `duration+energy time of day` - it locks duration and energy price components\n  - `energy tou` - it locks energy component only\n"
                  },
                  "lockEnergyPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled the tariff of the charger will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for `standard_tod tariff`.\n"
                  },
                  "lockDurationPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled, the energy fee component of the tariff will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for `standard_tod tariff`.\n"
                  },
                  "lockIdlePriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled, the duration fee component of the tariff will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the whole duration of their session.\nApplicable only for `standard_tod tariff`\n"
                  },
                  "stateOfChargeIdleThreshold": {
                    "nullable": true,
                    "type": "integer",
                    "enum": [
                      75,
                      80,
                      85,
                      90,
                      95,
                      100
                    ],
                    "description": "Switches the session to idle when the SoC (%) exceeds the selected value. Leave empty to use the system wide setting.\nThis option will take effect only if `Allow custom SoC (%) threshold per Tariff` is set in `Idle period detection` setting.\nThis only applies to local charge points, it does not affect sessions on roaming charge points. Leave empty to use the system wide setting.\n"
                  },
                  "averagePowerIdleThreshold": {
                    "nullable": true,
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "maximum": 999999.99,
                    "description": "Sets the session to idle state when the average kW for the past 5 minutes is below the set threshold.\nThis option will take effect only if `Allow custom power threshold per Tariff` is set in `Idle period detection` setting.\n"
                  }
                }
              },
              "discountTariffSettings": {
                "type": "object",
                "description": "Discount configuration for discount based tariffs. Present only when `type=discount based`, omitted otherwise.\n",
                "properties": {
                  "discountReferenceType": {
                    "type": "string",
                    "enum": [
                      "base_tariff",
                      "specific_tariff",
                      "roaming_tariff"
                    ],
                    "description": "Determines which tariff the discount is applied to.\n\n- `base_tariff` — the discount applies to the base tariff of the tariff group the discount tariff belongs to.\n- `specific_tariff` — the discount applies to the tariff identified by `referencedTariffId`.\n- `roaming_tariff` — the discount applies to the CPO wholesale tariff resolved at session time via OCPI. The exact source tariff is unknown at configuration time and varies per CPO partner and per session.\n"
                  },
                  "referencedTariffId": {
                    "type": "integer",
                    "description": "Present when `discountReferenceType=specific_tariff`. Omitted otherwise.\n\nMust reference a non-derived priced tariff owned by the same operator that is not itself `discount based`, `free`, or `charging not allowed`. Submitting a referenced tariff that violates these constraints is rejected with HTTP 422. Compatibility between a `base_tariff` discount and the actual base tariff of the tariff group is enforced when the discount tariff is added to a tariff group, and a `base_tariff` discount applied to a `free` or `charging not allowed` base tariff is rejected with HTTP 422 at that point.\n\nProhibited when `discountReferenceType=roaming_tariff`.\n"
                  },
                  "discountMode": {
                    "type": "string",
                    "enum": [
                      "global",
                      "per_element"
                    ],
                    "description": "Determines how the discount is applied. Required when `discountReferenceType` is `base_tariff` or `specific_tariff`.\n\n- `global` — a single `discountPercentage` is applied to every fee component of the referenced tariff.\n- `per_element` — different discount values are applied per fee component, configured via `discountElements`.\n\nProhibited when `discountReferenceType=roaming_tariff` (roaming discounts are always applied globally).\n"
                  },
                  "discountPercentage": {
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "maximum": 100,
                    "description": "Present when `discountMode=global` and `discountReferenceType` is `base_tariff` or `specific_tariff`. Omitted otherwise.\n\nPercentage discount in the range `0` to `100` applied to every fee component of the referenced tariff. Out-of-range values are rejected with HTTP 422.\n\nProhibited when `discountReferenceType=roaming_tariff` (use `discountValue` instead).\n"
                  },
                  "discountType": {
                    "type": "string",
                    "enum": [
                      "percentage",
                      "flat_amount"
                    ],
                    "description": "Present when `discountReferenceType=roaming_tariff`. Prohibited otherwise.\n\n- `percentage` — `discountValue` is interpreted as a percentage from 0 to 100.\n- `flat_amount` — `discountValue` is interpreted as a fixed currency amount to subtract from each CPO price component.\n"
                  },
                  "discountValue": {
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "description": "Present when `discountReferenceType=roaming_tariff`. Prohibited otherwise.\n\nThe discount value, interpreted according to `discountType`. When `discountType` is `percentage`, the maximum is `100`. When `discountType` is `flat_amount`, the value represents a fixed currency amount with no upper bound.\n"
                  },
                  "discountElements": {
                    "type": "array",
                    "description": "Present when `discountMode=per_element` and `discountReferenceType` is `base_tariff` or `specific_tariff`. Omitted otherwise.\n\nEach entry configures a discount for a specific fee component of the referenced tariff. At least one entry is required.\n\nProhibited when `discountReferenceType=roaming_tariff`.\n",
                    "items": {
                      "type": "object",
                      "properties": {
                        "serviceFeeType": {
                          "type": "string",
                          "enum": [
                            "flat",
                            "connection",
                            "energy",
                            "charging_time",
                            "idle_time",
                            "min_price",
                            "service_fee"
                          ],
                          "description": "The fee component of the referenced tariff that this discount applies to. Only discount-eligible fee types are accepted."
                        },
                        "discountType": {
                          "type": "string",
                          "enum": [
                            "percentage",
                            "flat_amount"
                          ],
                          "description": "- `percentage` — `discountValue` is interpreted as a percentage from 0 to 100.\n- `flat_amount` — `discountValue` is interpreted as a fixed amount in the operator's currency that is subtracted from the fee component.\n"
                        },
                        "discountValue": {
                          "type": "number",
                          "format": "decimal",
                          "minimum": 0,
                          "description": "The discount value, interpreted according to `discountType`. When `discountType` is `percentage`, the maximum is 100.\n"
                        }
                      },
                      "required": [
                        "serviceFeeType",
                        "discountType",
                        "discountValue"
                      ]
                    }
                  }
                }
              },
              "currency": {
                "type": "string",
                "description": "ISO 4217 currency code",
                "readOnly": true
              },
              "stopSession": {
                "type": "object",
                "properties": {
                  "timeLimitMinutes": {
                    "type": "number",
                    "description": "Session max time. The maximum minutes a session is allowed to run. Skip for no time limit.",
                    "nullable": true
                  },
                  "stopWhenEnergyExceedsKwh": {
                    "type": "number",
                    "description": "The maximum energy (kWh) allowed per session. Skip for no limit.",
                    "nullable": true
                  },
                  "stopWhenSocExceedsPercent": {
                    "type": "integer",
                    "minimum": 70,
                    "maximum": 99,
                    "description": "Stop the session when the vehicle's reported State of Charge reaches or exceeds this value. If the charge point does not report SoC, this criterion is ignored. Accepts values between 70 and 99.",
                    "nullable": true
                  }
                }
              },
              "restrictions": {
                "type": "object",
                "properties": {
                  "applyToUsersOfChargePointOwner": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to users of the partner, who is set as owner of the charge point",
                    "deprecated": true
                  },
                  "applyToUsersOfChargePointPartner": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to users of the partner, who is set as owner of the charge point"
                  },
                  "applyToUsersOfAllRoamingEmsps": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to users of all eMSPs, which are roaming partners"
                  },
                  "applyToAdHocUsers": {
                    "type": "boolean",
                    "description": "Makes the tariff valid for non-registered users(ad-hoc charging). Mutually exclusive with applyToAdHocOperatorIds."
                  },
                  "adHocPreAuthorizeAmount": {
                    "type": "number",
                    "description": "Sets the amount that would be blocked on the user's card at the start of the session. Required if applyToAdHocUsers is true or applyToAdHocOperatorIds is non-empty, and one of the following billing strategies is chosen: `Require payment method and authorize certain amount before starting session` or `Require payment method OR minimum amount in balance`.",
                    "multipleOf": 0.01,
                    "nullable": true,
                    "minimum": 0
                  },
                  "adHocIncrementalPreAuthorizationAmount": {
                    "type": "number",
                    "description": "The resolved incremental pre-authorization amount for ad-hoc users, in the tariff's currency. Follows the cascade ad-hoc tariff override → tariff override → global default from user billing settings. Omitted from the response when incremental pre-authorizations are disabled, no amount is configured at any cascade level, or the tariff does not have ad-hoc users enabled. On create/update, accept `null` to clear the ad-hoc tariff-level override; accepted only when the tariff has ad-hoc users enabled, regardless of the global \"Enable incremental pre-authorizations\" setting.\n",
                    "multipleOf": 0.01,
                    "minimum": 0
                  },
                  "adHocStopWhenPreAuthorizedAmountFallsBelow": {
                    "type": "number",
                    "description": "Set the minimum pre-authorized amount threshold. When the remaining ad hoc pre-authorized amount falls below this value, the charging session will automatically stop to prevent revenue loss.\n",
                    "multipleOf": 0.01
                  },
                  "applyToAdHocOperatorIds": {
                    "type": "array",
                    "description": "An array of operator IDs. Makes the tariff apply to registered users from specific operators when charging ad-hoc (cross-operator charging without internal roaming). Mutually exclusive with applyToAdHocUsers.",
                    "items": {
                      "type": "integer",
                      "minimum": 1
                    }
                  },
                  "applyToUsersOfPartners": {
                    "type": "array",
                    "description": "Users of specific Partners. Provide a list of partner IDs. Matches if the user is a invited to at least one of the partners.",
                    "items": {
                      "type": "number"
                    }
                  },
                  "applyToUsersWithGroups": {
                    "deprecated": true,
                    "type": "array",
                    "description": "Users with a specific group. Provide a list of user groups. Matches if the user is a member of at least one of the groups. Note: Due to improvements in the user groups, this property could be used with some limitations: \n 1) The value(s) should exactly match the name(s) of the user groups. \n 2) It would not be possible to create a user group from here anymore. \n 3) If there are duplicates, the value would not be accepted.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "applyToHomeChargingOwner": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to the driver who owns the home charge point (the driver, not the partner that manages it)"
                  },
                  "applyToHomeChargingSharedUsers": {
                    "type": "boolean",
                    "description": "Makes the tariff apply to the drivers the owner has shared the home charge point with (accepted shares only)"
                  },
                  "applyToUserGroupIds": {
                    "type": "array",
                    "description": "An array of user group IDs. Users with a specific group. Provide a list of user group IDs. This restriction applies if the user is a member of at least one of the groups.",
                    "items": {
                      "type": "number"
                    }
                  },
                  "applyToUsersWithSubscriptions": {
                    "type": "array",
                    "description": "Users with a specific subscription plan. Provide a list of subscription plan IDs. Matches if the user has active one of the subscription plans.",
                    "items": {
                      "type": "number"
                    }
                  },
                  "applyToAuthorizationMethods": {
                    "type": "array",
                    "description": "The tariff applies to local users (non-roaming) who authorize using any of the selected methods. When omitted or empty, the tariff applies regardless of authorization method.\nValues align with the `Authorization.method` property:\n- `id_tag` - Authorization via physical RFID card\n- `mac_address` - Authorization via vehicle MAC address (AutoCharge)\n- `user_device` - Authorization via mobile app or web portal\n- `plug_and_charge` - Authorization via Plug & Charge protocol\n- `plug_and_charge_iso15118` - Authorization via ISO15118 Plug & Charge protocol\n",
                    "items": {
                      "type": "string",
                      "enum": [
                        "id_tag",
                        "mac_address",
                        "user_device",
                        "plug_and_charge",
                        "plug_and_charge_iso15118"
                      ]
                    }
                  },
                  "startDate": {
                    "type": "string",
                    "format": "date",
                    "description": "The date from which the tariff becomes valid.",
                    "nullable": true
                  },
                  "endDate": {
                    "type": "string",
                    "format": "date",
                    "description": "The expiry date of the tariff. The tariff is valid until this date inclusive.",
                    "nullable": true
                  }
                }
              },
              "partner": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "nullable": true,
                    "description": "The assigned Partner will have access to make changes to the tariff."
                  }
                }
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "display": {
                "type": "object",
                "properties": {
                  "defaultPriceInformation": {
                    "type": "string",
                    "maxLength": 150,
                    "nullable": true,
                    "deprecated": true,
                    "description": "Deprecated: use the tariff group resource to manage this field."
                  },
                  "defaultPriceInformationOffline": {
                    "type": "string",
                    "maxLength": 150,
                    "nullable": true,
                    "deprecated": true,
                    "description": "Deprecated: use the tariff group resource to manage this field."
                  },
                  "priceInformation": {
                    "type": "string",
                    "nullable": true,
                    "deprecated": true,
                    "description": "**This property is deprecated. Use `priceInformationLocalized` instead.** The scalar field only carries the default-locale value and cannot round-trip multi-locale content.\n\nThe information that would be shown on the display of the charge point for users that are eligible for this tariff.\n"
                  },
                  "priceInformationLocalized": {
                    "type": "object",
                    "nullable": true,
                    "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                    "additionalProperties": {
                      "type": "string",
                      "nullable": true
                    },
                    "example": {
                      "en": "example",
                      "fr": "affaire"
                    }
                  },
                  "totalCostInformation": {
                    "type": "string",
                    "nullable": true,
                    "deprecated": true,
                    "description": "**This property is deprecated. Use `totalCostInformationLocalized` instead.** The scalar field only carries the default-locale value and cannot round-trip multi-locale content.\n\nAdditional information that would be displayed on the charge point when the session ends, along with the total fees for energy, duration and idle.\n"
                  },
                  "totalCostInformationLocalized": {
                    "type": "object",
                    "nullable": true,
                    "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                    "additionalProperties": {
                      "type": "string",
                      "nullable": true
                    },
                    "example": {
                      "en": "example",
                      "fr": "affaire"
                    }
                  },
                  "plainTextModeEnabled": {
                    "type": "boolean",
                    "default": false,
                    "description": "When `true`, the display text is delivered to the charge point without rich text formatting."
                  }
                }
              },
              "integrationId": {
                "type": "integer",
                "nullable": true,
                "description": "References the internal integration configuration that enables this tariff type"
              },
              "externalId": {
                "type": "string",
                "nullable": true,
                "description": "Used to store custom information, usually used for external references or metadata to the resource."
              },
              "incrementalPreAuthorizationSupported": {
                "type": "boolean",
                "readOnly": true,
                "description": "Whether incremental pre-authorizations may apply for sessions using this tariff.\n`true` when all configuration-level preconditions are met: the feature flag is enabled, incremental pre-authorizations are enabled in user billing settings, and the billing strategy supports pre-authorization.\n`false` in all other cases.\nThis is a configuration-level indicator — the actual session-level status may differ depending on the PSP and card capability.\nNot included on the tariff snapshot endpoint, since the value depends on the current feature flag and billing settings, which are not captured at snapshot time.\n"
              }
            },
            "required": [
              "id",
              "operatorId",
              "name",
              "type",
              "incrementalPreAuthorizationSupported"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "tariffScheduledChangesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "tariffId": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "The ID of the parent tariff",
                  "example": 1
                },
                "status": {
                  "readOnly": true,
                  "type": "string",
                  "enum": [
                    "pending",
                    "failed"
                  ],
                  "description": "Scheduled tariff pricing change status:\n- **pending**: Awaiting scheduled time. Can be edited or deleted.\n- **failed**: Automatic apply errored. Can be viewed or deleted, but not edited.\n",
                  "example": "pending"
                },
                "scheduledAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The UTC date/time when the pricing change takes effect. Stored at minute precision."
                },
                "createdByAdminId": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "The ID of the admin who created this scheduled change"
                },
                "name": {
                  "type": "string"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "free",
                    "flat rate",
                    "duration+energy",
                    "duration+energy time of day",
                    "energy tou",
                    "standard",
                    "charging not allowed",
                    "average power levels",
                    "peak power levels",
                    "standard_tod",
                    "optimised dynamic pricing"
                  ],
                  "description": "Tariff type. Can be changed on pending scheduled changes."
                },
                "description": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string",
                    "nullable": true
                  },
                  "example": {
                    "en": "example",
                    "fr": "affaire"
                  },
                  "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
                },
                "additionalInformation": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string",
                    "nullable": true
                  },
                  "example": {
                    "en": "example",
                    "fr": "affaire"
                  },
                  "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
                },
                "learnMoreUrl": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string",
                    "nullable": true
                  },
                  "example": {
                    "en": "example",
                    "fr": "affaire"
                  },
                  "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
                },
                "dayTariffStart": {
                  "type": "string",
                  "format": "time",
                  "description": "A time when the day begins"
                },
                "nightTariffStart": {
                  "type": "string",
                  "format": "time",
                  "description": "A time when the night begins"
                },
                "pricing": {
                  "type": "object",
                  "properties": {
                    "pricePerSession": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Price per session. Only applicable with flat rate tariffs. Up to 5 digits after the decimal point depending on the currency precision.",
                      "nullable": true
                    },
                    "connectionFee": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Connection fee. A fixed fee that is applied at the start of the charging session. Up to 5 digits after the decimal point depending on the currency precision.",
                      "nullable": true
                    },
                    "pricePerKwh": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Price per kWh. Up to 5 digits after the decimal point depending on the currency precision.",
                      "nullable": true
                    },
                    "dayPricePerKwh": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Price per kWh during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.",
                      "nullable": true
                    },
                    "nightPricePerKwh": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Price per kWh during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.",
                      "nullable": true
                    },
                    "pricePeriodInMinutes": {
                      "type": "integer",
                      "enum": [
                        1,
                        15,
                        30,
                        60,
                        240,
                        360
                      ],
                      "description": "Charging period. In minutes. It defines the time-period for charging a fee. Example: If you select 15min then the EV-driver will be charged at the start of every 15min of EV-charging. Applicable for duration+energy and duration+energy time of day",
                      "nullable": true
                    },
                    "pricePerPeriod": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Charging fee per period. Applicable for duration+energy. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`idleFeePerMinute`), the regular duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                      "nullable": true
                    },
                    "durationFeeLimit": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Duration fee limit for the whole session if fee is applied.",
                      "nullable": true
                    },
                    "durationFeeCapMinutes": {
                      "type": "integer",
                      "description": "Maximum billable charging duration in minutes. A value of zero means no duration fee is charged. Mutually exclusive with durationFeeLimit.",
                      "nullable": true
                    },
                    "dayPricePerPeriod": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Charging fee per period during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`dayIdleFeePerMinute`), the regular day duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                      "nullable": true
                    },
                    "nightPricePerPeriod": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Charging fee per period during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`nightIdleFeePerMinute`), the regular night duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                      "nullable": true
                    },
                    "dayIdleFeePerMinute": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Idle fee per minute during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\nWhen configured, this fee applies during idle periods (when no charging is occurring) and replaces the regular day duration fee (`dayPricePerPeriod`). If not configured, the regular day duration fee continues to apply during idle periods.\n",
                      "nullable": true
                    },
                    "nightIdleFeePerMinute": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Idle fee per minute during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\nWhen configured, this fee applies during idle periods (when no charging is occurring) and replaces the regular night duration fee (`nightPricePerPeriod`). If not configured, the regular night duration fee continues to apply during idle periods.\n",
                      "nullable": true
                    },
                    "idleFeePerMinute": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging). Up to 5 digits after the decimal point depending on the currency precision.\n\n**For duration+energy tariffs:** When configured, this fee applies during idle periods and replaces the regular duration fee (`pricePerPeriod`). If not configured, the regular duration fee continues to apply during idle periods.\n",
                      "nullable": true
                    },
                    "idleFeeGracePeriodMinutes": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Idle fee grace period (min). Optional. The interpretation of this field depends on `idleFeeGracePeriodMode`:\n\n- When mode is `idle_detection` (default): The user is given this grace period after idle state is detected (no charging) to remove the vehicle, before idle fee starts applying.\n- When mode is `session_start`: This represents the minimum session duration before idle fee applies. Idle fee will not be charged until the session has been active for at least this many minutes.\n",
                      "nullable": true
                    },
                    "idleFeeGracePeriodMode": {
                      "type": "string",
                      "enum": [
                        "idle_detection",
                        "session_start"
                      ],
                      "description": "Determines when the idle fee grace period timer starts counting.\n\n- `idle_detection` (default): Grace period begins when idle state is detected (vehicle stops charging but remains connected).\n- `session_start`: Grace period begins from session start time. Idle fee will not apply until the session has been active for at least the grace period duration.\n\nApplicable tariff types: `duration+energy`, `duration+energy time of day`, `energy tou`, `standard_tod`.\n"
                    },
                    "idlePricingPeriodInMinutes": {
                      "type": "number",
                      "enum": [
                        1,
                        15,
                        30,
                        60,
                        240,
                        360
                      ],
                      "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging).",
                      "nullable": true
                    },
                    "idleFeePeriodStart": {
                      "type": "string",
                      "format": "time",
                      "description": "Defined start time for the application of idle fee.",
                      "nullable": true
                    },
                    "idleFeePeriodEnd": {
                      "type": "string",
                      "format": "time",
                      "description": "Defined end time for the application of idle fee.",
                      "nullable": true
                    },
                    "idleFeeLimit": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Idle fee limit for the whole session if fee is applied.",
                      "nullable": true
                    },
                    "idleFeeCapMinutes": {
                      "type": "integer",
                      "description": "Maximum billable idle time in minutes. A value of zero means no idle fee is charged. Mutually exclusive with idleFeeLimit.",
                      "nullable": true
                    },
                    "connectionFeeMinimumSessionDuration": {
                      "type": "integer",
                      "description": "Connection Fee Minimum Session Duration (min). Optional.",
                      "nullable": true
                    },
                    "connectionFeeMinimumSessionEnergy": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Connection Fee Minimum Session Energy (kWh). Optional. Up to 5 digits after the decimal point depending on the currency precision.",
                      "nullable": true
                    },
                    "durationFeeGracePeriod": {
                      "type": "integer",
                      "description": "Duration Fee Grace Period (min). Optional.",
                      "nullable": true
                    },
                    "minPrice": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Min. price. Sets a minimum total amount per session. This is helpful in the case your payment service provider has a minimum transaction size or high transaction fees and you want to make sure to have a positive ROI per transaction. Up to 5 digits after the decimal point depending on the currency precision.",
                      "nullable": true
                    },
                    "preAuthorizeAmount": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Pre-authorize amount. The amount to pre-authorize before starting a session. Up to 5 digits after the decimal point depending on the currency precision.",
                      "nullable": true
                    },
                    "incrementalPreAuthorizationAmount": {
                      "type": "number",
                      "format": "decimal",
                      "description": "The resolved incremental pre-authorization amount for the requesting user context, in the tariff's currency. When the request targets an ad-hoc user (`filter[userId]=null` and the tariff has ad-hoc users enabled), returns the ad-hoc cascade (ad-hoc tariff override → tariff override → global default); otherwise returns the regular cascade (tariff override → global default). Omitted from the response when incremental pre-authorizations are disabled or no amount is configured. On create/update, accept `null` to clear the regular tariff-level override (mirrors `preAuthorizeAmount`); accepted regardless of the global \"Enable incremental pre-authorizations\" setting.\n"
                    },
                    "taxID": {
                      "type": "integer",
                      "deprecated": true,
                      "description": "If Multi-tax Support has been enabled in the platform settings, you can provide the taxId for the tariff here. If you do not provide a value or provide `null`, the Default tax will be used.\n\nIf Multi-tax Support has not been enabled, any provided value will be ignored.\n",
                      "nullable": true
                    },
                    "chargePointElectricityRate": {
                      "type": "boolean",
                      "description": "Use the Electricity Rate of the Charge Point that is already attached and aims to track the electricity costs."
                    },
                    "fallbackElectricityRateId": {
                      "type": "integer",
                      "description": "When ChargePointElectricityRate is set to *false*, the Electricity Rate ID MUST be supplied in order the electricity rates for the tariff to be known.",
                      "nullable": true
                    },
                    "markupPercentagePerKwh": {
                      "type": "number",
                      "nullable": true
                    },
                    "markupFixedFeePerKwh": {
                      "type": "number",
                      "nullable": true
                    },
                    "flexibleMarkUpAsFixedPerKwh": {
                      "nullable": true,
                      "description": "Set a different fixed markup for different time slots along the day. Applicable for `energy tou` only.",
                      "type": "object",
                      "properties": {
                        "defaultPrice": {
                          "type": "number",
                          "default": 0,
                          "writeOnly": true,
                          "description": "Set price for the intervals not specified in `intervalPricing` field."
                        },
                        "intervalPricing": {
                          "type": "array",
                          "description": "Variable-length time periods for markup pricing. Periods can have any duration and do not need to be uniform. Only explicitly configured periods are returned. Time slots not covered by any interval use the `markupFixedFeePerKwh` value. Overlapping intervals are not allowed.",
                          "items": {
                            "type": "object",
                            "description": "A specific price period. The `startsAt` and `endsAt` times should be provided in the local time zone and not in UTC.\nDepending on the tenant multi timezone configuration either the tenant timezone will be used, or the timezone specific to the corresponding resource.\n",
                            "properties": {
                              "startsAt": {
                                "type": "string",
                                "pattern": "^\\d{2}:\\d{2}$",
                                "description": "The start time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                                "example": "23:45"
                              },
                              "endsAt": {
                                "type": "string",
                                "pattern": "^\\d{2}:\\d{2}$",
                                "description": "The end time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                                "example": "23:45"
                              },
                              "price": {
                                "type": "number",
                                "format": "decimal",
                                "example": 1.23,
                                "description": "The price that will apply for the given price period. Must include tax."
                              }
                            },
                            "required": [
                              "startsAt",
                              "endsAt",
                              "price"
                            ]
                          }
                        }
                      }
                    },
                    "multiPricePerKwh": {
                      "description": "\nCreate the price levels according to the kWh. <br />\nThe first level must have zero value for **firstKwh**. <br />\nThe last level must have an infinity value for **lastKwh**. <br />\nThe **fisrtKwh** value on the current level must be equal to the **lastKwh** value on the previous one. <br />\nInstead of using a price per kWh there is the option for a flat fee per level.\n\nAn example of price levels for kWh is given in the table below.\n\n| First kWh  | Last kWh   | Fee per kWh | Flat Fee    |\n| --------- | ------------| ------------|------------ |\n| 0         | 5.00        | 0.00        | 2.00        |\n| 5.00      | 10.00       | 0.35        | 0.00        |\n| 10.00     | null        | 0.40        | 0.00        |\n\nApplicable for standard tariff.\n",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "firstKwh": {
                            "type": "number",
                            "multipleOf": 0.01,
                            "example": 0.05
                          },
                          "lastKwh": {
                            "type": "number",
                            "multipleOf": 0.01,
                            "nullable": true,
                            "example": 0.06
                          },
                          "feePerKwh": {
                            "type": "number",
                            "format": "decimal",
                            "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                            "nullable": true,
                            "example": 0.07
                          },
                          "flatFee": {
                            "type": "number",
                            "format": "decimal",
                            "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                            "nullable": true,
                            "example": 0.08
                          }
                        },
                        "required": [
                          "firstKwh"
                        ]
                      }
                    },
                    "multiPricePerDuration": {
                      "description": "\nCreate the price levels according to the duration of the session from the time the charging started.  <br />\nThe first level must have zero value for **firstUnit**. <br />\nThe last level must have an infinity value for **lastUnit**.  <br />\nThe **firstUnit** value on the current level must be greater with one unit from the **lastUnit** value on the previous level. <br />\nThe Unit is created in the **pricePeriodInMinutes** property, the default one is 15 min.  <br />\nThere is the option of applying a flat fee per each level separately.  <br />\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `multiIdleFee`) will apply during idle periods.\n\nAn example of price levels for duration is given in the table below.\n\n| First Unit  | Last Unit   | Fee per Unit | Flat Fee    |\n| ----------- | ------------| -------------|------------ |\n| 0           | 8           | 0.50         | 0.00        |\n| 9           | 24          | 0.55         | 0.00        |\n| 25          | null        | 0.00         | 10.00       |\n\nApplicable for standard tariff.\n",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "firstUnit": {
                            "type": "integer"
                          },
                          "lastUnit": {
                            "type": "integer",
                            "nullable": true,
                            "example": 1
                          },
                          "feePerUnit": {
                            "type": "number",
                            "format": "decimal",
                            "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                            "nullable": true,
                            "example": 0.05
                          },
                          "flatFee": {
                            "type": "number",
                            "format": "decimal",
                            "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                            "nullable": true,
                            "example": 0
                          }
                        },
                        "required": [
                          "firstUnit"
                        ]
                      }
                    },
                    "multiIdleFee": {
                      "description": "\nDifferent price levels could be created depending on the duration of the idle period. <br />\nThe first level must have zero value for **firstUnit**. <br />\nThe last level must have an infinity value for **lastUnit**.  <br />\nThe **firstUnit** value on the current level must be greater with one unit from the **lastUnit** value on the previous level. <br />\nThe Unit is created in the **pricePeriodInMinutes** property, the default one is 15 min. <br />\nThere is the option of applying a flat fee per each level separately. <br />\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `multiPricePerDuration`) will be paused.\n\nAn example of price levels for idle periods is given in the table below.\n\n| First Unit  | Last Unit   | Fee per Unit | Flat Fee    |\n| ----------- | ------------| -------------|------------ |\n| 0           | 2           | 0.30         | 0.00        |\n| 3           | 6           | 0.40         | 0.00        |\n| 7           | null        | 0.00         | 0.00        |\n\nApplicable for standard tariff.\n",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "firstUnit": {
                            "type": "integer"
                          },
                          "lastUnit": {
                            "type": "integer",
                            "nullable": true,
                            "example": 1
                          },
                          "feePerUnit": {
                            "type": "number",
                            "format": "decimal",
                            "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                            "nullable": true,
                            "example": 0.05
                          },
                          "flatFee": {
                            "type": "number",
                            "format": "decimal",
                            "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                            "nullable": true,
                            "example": 0.06
                          }
                        },
                        "required": [
                          "firstUnit"
                        ]
                      }
                    },
                    "regularUsePeriod": {
                      "type": "number",
                      "description": "In minutes. Only for the Peak power level tariff.",
                      "nullable": true
                    },
                    "averagePowerLevels": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "minItems": 2,
                        "properties": {
                          "averagePowerUpToKw": {
                            "type": "number"
                          },
                          "pricePerMinute": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "averagePowerUpToKw",
                          "pricePerMinute"
                        ]
                      }
                    },
                    "peakPowerLevels": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "minItems": 2,
                        "properties": {
                          "peakPowerUpToKw": {
                            "type": "number"
                          },
                          "regularPricePerMinute": {
                            "type": "number"
                          },
                          "excessUsePricePerMin": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "peakPowerUpToKw",
                          "regularPricePerMinute",
                          "excessUsePricePerMin"
                        ]
                      }
                    },
                    "timePeriods": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "minItems": 1,
                        "properties": {
                          "startTime": {
                            "type": "string",
                            "pattern": "^\\d{2}:\\d{2}$",
                            "example": "00:00",
                            "description": "The 24-hour format should be used."
                          },
                          "endTime": {
                            "type": "string",
                            "pattern": "^\\d{2}:\\d{2}$",
                            "example": "00:00",
                            "description": "The 24-hour format should be used."
                          }
                        },
                        "required": [
                          "startTime",
                          "endTime"
                        ]
                      }
                    },
                    "pricePeriods": {
                      "type": "object",
                      "properties": {
                        "connectionFeePeriods": {
                          "type": "object",
                          "properties": {
                            "fee": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              }
                            }
                          }
                        },
                        "energyFeePeriods": {
                          "type": "object",
                          "properties": {
                            "fee": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              }
                            }
                          }
                        },
                        "durationFeePeriods": {
                          "type": "object",
                          "description": "Duration fees for each time period. Applicable for standard_tod tariff.\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `idleFeePeriods`) will apply during idle periods.\n",
                          "properties": {
                            "fee": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              }
                            }
                          }
                        },
                        "idleFeePeriods": {
                          "type": "object",
                          "description": "Idle fees for each time period. Applicable for standard_tod tariff.\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `durationFeePeriods`) will be paused.\n",
                          "properties": {
                            "fee": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              }
                            }
                          }
                        }
                      }
                    },
                    "daysWhenApplied": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "specialDates": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "format": "date"
                            },
                            "example": "2022-01-30"
                          },
                          "idleFeeGracePeriodMinutes": {
                            "type": "number",
                            "format": "decimal",
                            "description": "Idle fee grace period (min). Optional. The interpretation of this field depends on `idleFeeGracePeriodMode`:\n\n- When mode is `idle_detection` (default): The user is given this grace period after idle state is detected (no charging) to remove the vehicle, before idle fee starts applying.\n- When mode is `session_start`: This represents the minimum session duration before idle fee applies. Idle fee will not be charged until the session has been active for at least this many minutes.\n",
                            "nullable": true
                          },
                          "idlePricingPeriodInMinutes": {
                            "type": "number",
                            "enum": [
                              1,
                              15,
                              30,
                              60,
                              240,
                              360
                            ],
                            "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging).",
                            "nullable": true
                          },
                          "connectionFeeMinimumSessionDuration": {
                            "type": "integer",
                            "description": "Connection Fee Minimum Session Duration (min). Optional.",
                            "nullable": true
                          },
                          "connectionFeeMinimumSessionEnergy": {
                            "type": "number",
                            "format": "decimal",
                            "description": "Connection Fee Minimum Session Energy (kWh). Optional. Up to 5 digits after the decimal point depending on the currency precision.",
                            "nullable": true
                          },
                          "durationFeeGracePeriod": {
                            "type": "integer",
                            "description": "Duration Fee Grace Period (min). Optional.",
                            "nullable": true
                          },
                          "pricePeriodInMinutes": {
                            "type": "integer",
                            "enum": [
                              1,
                              15,
                              30,
                              60,
                              240,
                              360
                            ],
                            "description": "Charging period. In minutes. It defines the time-period for charging a fee. Example: If you select 15min then the EV-driver will be charged at the start of every 15min of EV-charging. Applicable for duration+energy and duration+energy time of day",
                            "nullable": true
                          },
                          "pricePeriods": {
                            "type": "object",
                            "minItems": 1,
                            "properties": {
                              "connectionFeePeriods": {
                                "type": "object",
                                "properties": {
                                  "fee": {
                                    "type": "array",
                                    "items": {
                                      "type": "number"
                                    }
                                  }
                                }
                              },
                              "energyFeePeriods": {
                                "type": "object",
                                "properties": {
                                  "fee": {
                                    "type": "array",
                                    "items": {
                                      "type": "number"
                                    }
                                  }
                                }
                              },
                              "durationFeePeriods": {
                                "type": "object",
                                "description": "Duration fees for each time period. Applicable for standard_tod tariff.\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `idleFeePeriods`) will apply during idle periods.\n",
                                "properties": {
                                  "fee": {
                                    "type": "array",
                                    "items": {
                                      "type": "number"
                                    }
                                  }
                                }
                              },
                              "idleFeePeriods": {
                                "type": "object",
                                "description": "Idle fees for each time period. Applicable for standard_tod tariff.\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `durationFeePeriods`) will be paused.\n",
                                "properties": {
                                  "fee": {
                                    "type": "array",
                                    "items": {
                                      "type": "number"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      "description": "When left empty, this means that this is the standard pricing that would be applied in general without taking into consideration the day."
                    },
                    "thresholdPriceForEnergy": {
                      "type": "number",
                      "format": "decimal",
                      "description": "Price for kWh to be considered by Optimised charging for setting the charging periods.",
                      "nullable": true
                    },
                    "priceForEnergyWhenOptimized": {
                      "type": "number",
                      "format": "decimal",
                      "nullable": true
                    },
                    "optimisedLabel": {
                      "type": "string",
                      "nullable": true
                    },
                    "durationFeeFrom": {
                      "type": "string",
                      "format": "time",
                      "nullable": true,
                      "description": "Defined start time for the application of duration fees."
                    },
                    "durationFeeTo": {
                      "type": "string",
                      "format": "time",
                      "nullable": true,
                      "description": "Defined end time for the application of duration fees."
                    },
                    "subsidyIntegrationId": {
                      "type": "integer",
                      "description": "**This property is deprecated**\n\nUse `subsidy.integrationId` instead.\n\nThe subsidy integration id that should be applied for this tariff. Only valid for Energy ToU tariffs. Please use the admin panel for the specific integration id. Optional.\n",
                      "nullable": true,
                      "deprecated": true
                    },
                    "subsidy": {
                      "type": "object",
                      "description": "Subsidy parameters for this tariff. Only applicable for Energy ToU tariffs. Omitted when no subsidy is configured.",
                      "properties": {
                        "integrationId": {
                          "type": "integer",
                          "description": "The ID of the subsidy integration that is active on the tariff (or was active when the snapshot was taken)."
                        },
                        "threshold": {
                          "type": "number",
                          "description": "The energy price threshold (in the operator's currency per kWh) above which the subsidy applies."
                        },
                        "compensationRate": {
                          "type": "number",
                          "description": "The compensation rate as a percentage (e.g., 90 for 90%)."
                        }
                      },
                      "required": [
                        "integrationId",
                        "threshold",
                        "compensationRate"
                      ]
                    },
                    "lockPriceOnSessionStart": {
                      "type": "boolean",
                      "default": false,
                      "description": "When enabled the tariff of the charger will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for:\n  - `duration+energy time of day` - it locks duration and energy price components\n  - `energy tou` - it locks energy component only\n"
                    },
                    "lockEnergyPriceOnSessionStart": {
                      "type": "boolean",
                      "default": false,
                      "description": "When enabled the tariff of the charger will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for `standard_tod tariff`.\n"
                    },
                    "lockDurationPriceOnSessionStart": {
                      "type": "boolean",
                      "default": false,
                      "description": "When enabled, the energy fee component of the tariff will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for `standard_tod tariff`.\n"
                    },
                    "lockIdlePriceOnSessionStart": {
                      "type": "boolean",
                      "default": false,
                      "description": "When enabled, the duration fee component of the tariff will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the whole duration of their session.\nApplicable only for `standard_tod tariff`\n"
                    },
                    "stateOfChargeIdleThreshold": {
                      "nullable": true,
                      "type": "integer",
                      "enum": [
                        75,
                        80,
                        85,
                        90,
                        95,
                        100
                      ],
                      "description": "Switches the session to idle when the SoC (%) exceeds the selected value. Leave empty to use the system wide setting.\nThis option will take effect only if `Allow custom SoC (%) threshold per Tariff` is set in `Idle period detection` setting.\nThis only applies to local charge points, it does not affect sessions on roaming charge points. Leave empty to use the system wide setting.\n"
                    },
                    "averagePowerIdleThreshold": {
                      "nullable": true,
                      "type": "number",
                      "format": "decimal",
                      "minimum": 0,
                      "maximum": 999999.99,
                      "description": "Sets the session to idle state when the average kW for the past 5 minutes is below the set threshold.\nThis option will take effect only if `Allow custom power threshold per Tariff` is set in `Idle period detection` setting.\n"
                    }
                  }
                },
                "stopSession": {
                  "type": "object",
                  "properties": {
                    "timeLimitMinutes": {
                      "type": "number",
                      "description": "Session max time. The maximum minutes a session is allowed to run. Skip for no time limit.",
                      "nullable": true
                    },
                    "stopWhenEnergyExceedsKwh": {
                      "type": "number",
                      "description": "The maximum energy (kWh) allowed per session. Skip for no limit.",
                      "nullable": true
                    },
                    "stopWhenSocExceedsPercent": {
                      "type": "integer",
                      "minimum": 70,
                      "maximum": 99,
                      "description": "Stop the session when the vehicle's reported State of Charge reaches or exceeds this value. If the charge point does not report SoC, this criterion is ignored. Accepts values between 70 and 99.",
                      "nullable": true
                    }
                  }
                },
                "display": {
                  "type": "object",
                  "properties": {
                    "defaultPriceInformation": {
                      "type": "string",
                      "maxLength": 150,
                      "nullable": true,
                      "deprecated": true,
                      "description": "Deprecated: use the tariff group resource to manage this field."
                    },
                    "defaultPriceInformationOffline": {
                      "type": "string",
                      "maxLength": 150,
                      "nullable": true,
                      "deprecated": true,
                      "description": "Deprecated: use the tariff group resource to manage this field."
                    },
                    "priceInformation": {
                      "type": "string",
                      "nullable": true,
                      "deprecated": true,
                      "description": "**This property is deprecated. Use `priceInformationLocalized` instead.** The scalar field only carries the default-locale value and cannot round-trip multi-locale content.\n\nThe information that would be shown on the display of the charge point for users that are eligible for this tariff.\n"
                    },
                    "priceInformationLocalized": {
                      "type": "object",
                      "nullable": true,
                      "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                      "additionalProperties": {
                        "type": "string",
                        "nullable": true
                      },
                      "example": {
                        "en": "example",
                        "fr": "affaire"
                      }
                    },
                    "totalCostInformation": {
                      "type": "string",
                      "nullable": true,
                      "deprecated": true,
                      "description": "**This property is deprecated. Use `totalCostInformationLocalized` instead.** The scalar field only carries the default-locale value and cannot round-trip multi-locale content.\n\nAdditional information that would be displayed on the charge point when the session ends, along with the total fees for energy, duration and idle.\n"
                    },
                    "totalCostInformationLocalized": {
                      "type": "object",
                      "nullable": true,
                      "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                      "additionalProperties": {
                        "type": "string",
                        "nullable": true
                      },
                      "example": {
                        "en": "example",
                        "fr": "affaire"
                      }
                    },
                    "plainTextModeEnabled": {
                      "type": "boolean",
                      "default": false,
                      "description": "When `true`, the display text is delivered to the charge point without rich text formatting."
                    }
                  }
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "tariffId",
                "status",
                "scheduledAt",
                "createdByAdminId",
                "createdAt",
                "updatedAt",
                "name",
                "type"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "tariffScheduledChangeCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "tariffId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the parent tariff",
                "example": 1
              },
              "status": {
                "readOnly": true,
                "type": "string",
                "enum": [
                  "pending",
                  "failed"
                ],
                "description": "Scheduled tariff pricing change status:\n- **pending**: Awaiting scheduled time. Can be edited or deleted.\n- **failed**: Automatic apply errored. Can be viewed or deleted, but not edited.\n",
                "example": "pending"
              },
              "scheduledAt": {
                "type": "string",
                "format": "date-time",
                "description": "The UTC date/time when the pricing change takes effect. Stored at minute precision."
              },
              "createdByAdminId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the admin who created this scheduled change"
              },
              "name": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "free",
                  "flat rate",
                  "duration+energy",
                  "duration+energy time of day",
                  "energy tou",
                  "standard",
                  "charging not allowed",
                  "average power levels",
                  "peak power levels",
                  "standard_tod",
                  "optimised dynamic pricing"
                ],
                "description": "Tariff type. Can be changed on pending scheduled changes."
              },
              "description": {
                "type": "object",
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "additionalInformation": {
                "type": "object",
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "learnMoreUrl": {
                "type": "object",
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "dayTariffStart": {
                "type": "string",
                "format": "time",
                "description": "A time when the day begins"
              },
              "nightTariffStart": {
                "type": "string",
                "format": "time",
                "description": "A time when the night begins"
              },
              "pricing": {
                "type": "object",
                "properties": {
                  "pricePerSession": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per session. Only applicable with flat rate tariffs. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "connectionFee": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Connection fee. A fixed fee that is applied at the start of the charging session. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "pricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "dayPricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "nightPricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "pricePeriodInMinutes": {
                    "type": "integer",
                    "enum": [
                      1,
                      15,
                      30,
                      60,
                      240,
                      360
                    ],
                    "description": "Charging period. In minutes. It defines the time-period for charging a fee. Example: If you select 15min then the EV-driver will be charged at the start of every 15min of EV-charging. Applicable for duration+energy and duration+energy time of day",
                    "nullable": true
                  },
                  "pricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period. Applicable for duration+energy. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`idleFeePerMinute`), the regular duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "durationFeeLimit": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Duration fee limit for the whole session if fee is applied.",
                    "nullable": true
                  },
                  "durationFeeCapMinutes": {
                    "type": "integer",
                    "description": "Maximum billable charging duration in minutes. A value of zero means no duration fee is charged. Mutually exclusive with durationFeeLimit.",
                    "nullable": true
                  },
                  "dayPricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`dayIdleFeePerMinute`), the regular day duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "nightPricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`nightIdleFeePerMinute`), the regular night duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "dayIdleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\nWhen configured, this fee applies during idle periods (when no charging is occurring) and replaces the regular day duration fee (`dayPricePerPeriod`). If not configured, the regular day duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "nightIdleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\nWhen configured, this fee applies during idle periods (when no charging is occurring) and replaces the regular night duration fee (`nightPricePerPeriod`). If not configured, the regular night duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "idleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging). Up to 5 digits after the decimal point depending on the currency precision.\n\n**For duration+energy tariffs:** When configured, this fee applies during idle periods and replaces the regular duration fee (`pricePerPeriod`). If not configured, the regular duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "idleFeeGracePeriodMinutes": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee grace period (min). Optional. The interpretation of this field depends on `idleFeeGracePeriodMode`:\n\n- When mode is `idle_detection` (default): The user is given this grace period after idle state is detected (no charging) to remove the vehicle, before idle fee starts applying.\n- When mode is `session_start`: This represents the minimum session duration before idle fee applies. Idle fee will not be charged until the session has been active for at least this many minutes.\n",
                    "nullable": true
                  },
                  "idleFeeGracePeriodMode": {
                    "type": "string",
                    "enum": [
                      "idle_detection",
                      "session_start"
                    ],
                    "description": "Determines when the idle fee grace period timer starts counting.\n\n- `idle_detection` (default): Grace period begins when idle state is detected (vehicle stops charging but remains connected).\n- `session_start`: Grace period begins from session start time. Idle fee will not apply until the session has been active for at least the grace period duration.\n\nApplicable tariff types: `duration+energy`, `duration+energy time of day`, `energy tou`, `standard_tod`.\n"
                  },
                  "idlePricingPeriodInMinutes": {
                    "type": "number",
                    "enum": [
                      1,
                      15,
                      30,
                      60,
                      240,
                      360
                    ],
                    "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging).",
                    "nullable": true
                  },
                  "idleFeePeriodStart": {
                    "type": "string",
                    "format": "time",
                    "description": "Defined start time for the application of idle fee.",
                    "nullable": true
                  },
                  "idleFeePeriodEnd": {
                    "type": "string",
                    "format": "time",
                    "description": "Defined end time for the application of idle fee.",
                    "nullable": true
                  },
                  "idleFeeLimit": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee limit for the whole session if fee is applied.",
                    "nullable": true
                  },
                  "idleFeeCapMinutes": {
                    "type": "integer",
                    "description": "Maximum billable idle time in minutes. A value of zero means no idle fee is charged. Mutually exclusive with idleFeeLimit.",
                    "nullable": true
                  },
                  "connectionFeeMinimumSessionDuration": {
                    "type": "integer",
                    "description": "Connection Fee Minimum Session Duration (min). Optional.",
                    "nullable": true
                  },
                  "connectionFeeMinimumSessionEnergy": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Connection Fee Minimum Session Energy (kWh). Optional. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "durationFeeGracePeriod": {
                    "type": "integer",
                    "description": "Duration Fee Grace Period (min). Optional.",
                    "nullable": true
                  },
                  "minPrice": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Min. price. Sets a minimum total amount per session. This is helpful in the case your payment service provider has a minimum transaction size or high transaction fees and you want to make sure to have a positive ROI per transaction. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "preAuthorizeAmount": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Pre-authorize amount. The amount to pre-authorize before starting a session. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "incrementalPreAuthorizationAmount": {
                    "type": "number",
                    "format": "decimal",
                    "description": "The resolved incremental pre-authorization amount for the requesting user context, in the tariff's currency. When the request targets an ad-hoc user (`filter[userId]=null` and the tariff has ad-hoc users enabled), returns the ad-hoc cascade (ad-hoc tariff override → tariff override → global default); otherwise returns the regular cascade (tariff override → global default). Omitted from the response when incremental pre-authorizations are disabled or no amount is configured. On create/update, accept `null` to clear the regular tariff-level override (mirrors `preAuthorizeAmount`); accepted regardless of the global \"Enable incremental pre-authorizations\" setting.\n"
                  },
                  "taxID": {
                    "type": "integer",
                    "deprecated": true,
                    "description": "If Multi-tax Support has been enabled in the platform settings, you can provide the taxId for the tariff here. If you do not provide a value or provide `null`, the Default tax will be used.\n\nIf Multi-tax Support has not been enabled, any provided value will be ignored.\n",
                    "nullable": true
                  },
                  "chargePointElectricityRate": {
                    "type": "boolean",
                    "description": "Use the Electricity Rate of the Charge Point that is already attached and aims to track the electricity costs."
                  },
                  "fallbackElectricityRateId": {
                    "type": "integer",
                    "description": "When ChargePointElectricityRate is set to *false*, the Electricity Rate ID MUST be supplied in order the electricity rates for the tariff to be known.",
                    "nullable": true
                  },
                  "markupPercentagePerKwh": {
                    "type": "number",
                    "nullable": true
                  },
                  "markupFixedFeePerKwh": {
                    "type": "number",
                    "nullable": true
                  },
                  "flexibleMarkUpAsFixedPerKwh": {
                    "nullable": true,
                    "description": "Set a different fixed markup for different time slots along the day. Applicable for `energy tou` only.",
                    "type": "object",
                    "properties": {
                      "defaultPrice": {
                        "type": "number",
                        "default": 0,
                        "writeOnly": true,
                        "description": "Set price for the intervals not specified in `intervalPricing` field."
                      },
                      "intervalPricing": {
                        "type": "array",
                        "description": "Variable-length time periods for markup pricing. Periods can have any duration and do not need to be uniform. Only explicitly configured periods are returned. Time slots not covered by any interval use the `markupFixedFeePerKwh` value. Overlapping intervals are not allowed.",
                        "items": {
                          "type": "object",
                          "description": "A specific price period. The `startsAt` and `endsAt` times should be provided in the local time zone and not in UTC.\nDepending on the tenant multi timezone configuration either the tenant timezone will be used, or the timezone specific to the corresponding resource.\n",
                          "properties": {
                            "startsAt": {
                              "type": "string",
                              "pattern": "^\\d{2}:\\d{2}$",
                              "description": "The start time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                              "example": "23:45"
                            },
                            "endsAt": {
                              "type": "string",
                              "pattern": "^\\d{2}:\\d{2}$",
                              "description": "The end time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                              "example": "23:45"
                            },
                            "price": {
                              "type": "number",
                              "format": "decimal",
                              "example": 1.23,
                              "description": "The price that will apply for the given price period. Must include tax."
                            }
                          },
                          "required": [
                            "startsAt",
                            "endsAt",
                            "price"
                          ]
                        }
                      }
                    }
                  },
                  "multiPricePerKwh": {
                    "description": "\nCreate the price levels according to the kWh. <br />\nThe first level must have zero value for **firstKwh**. <br />\nThe last level must have an infinity value for **lastKwh**. <br />\nThe **fisrtKwh** value on the current level must be equal to the **lastKwh** value on the previous one. <br />\nInstead of using a price per kWh there is the option for a flat fee per level.\n\nAn example of price levels for kWh is given in the table below.\n\n| First kWh  | Last kWh   | Fee per kWh | Flat Fee    |\n| --------- | ------------| ------------|------------ |\n| 0         | 5.00        | 0.00        | 2.00        |\n| 5.00      | 10.00       | 0.35        | 0.00        |\n| 10.00     | null        | 0.40        | 0.00        |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstKwh": {
                          "type": "number",
                          "multipleOf": 0.01,
                          "example": 0.05
                        },
                        "lastKwh": {
                          "type": "number",
                          "multipleOf": 0.01,
                          "nullable": true,
                          "example": 0.06
                        },
                        "feePerKwh": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.07
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.08
                        }
                      },
                      "required": [
                        "firstKwh"
                      ]
                    }
                  },
                  "multiPricePerDuration": {
                    "description": "\nCreate the price levels according to the duration of the session from the time the charging started.  <br />\nThe first level must have zero value for **firstUnit**. <br />\nThe last level must have an infinity value for **lastUnit**.  <br />\nThe **firstUnit** value on the current level must be greater with one unit from the **lastUnit** value on the previous level. <br />\nThe Unit is created in the **pricePeriodInMinutes** property, the default one is 15 min.  <br />\nThere is the option of applying a flat fee per each level separately.  <br />\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `multiIdleFee`) will apply during idle periods.\n\nAn example of price levels for duration is given in the table below.\n\n| First Unit  | Last Unit   | Fee per Unit | Flat Fee    |\n| ----------- | ------------| -------------|------------ |\n| 0           | 8           | 0.50         | 0.00        |\n| 9           | 24          | 0.55         | 0.00        |\n| 25          | null        | 0.00         | 10.00       |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstUnit": {
                          "type": "integer"
                        },
                        "lastUnit": {
                          "type": "integer",
                          "nullable": true,
                          "example": 1
                        },
                        "feePerUnit": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.05
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0
                        }
                      },
                      "required": [
                        "firstUnit"
                      ]
                    }
                  },
                  "multiIdleFee": {
                    "description": "\nDifferent price levels could be created depending on the duration of the idle period. <br />\nThe first level must have zero value for **firstUnit**. <br />\nThe last level must have an infinity value for **lastUnit**.  <br />\nThe **firstUnit** value on the current level must be greater with one unit from the **lastUnit** value on the previous level. <br />\nThe Unit is created in the **pricePeriodInMinutes** property, the default one is 15 min. <br />\nThere is the option of applying a flat fee per each level separately. <br />\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `multiPricePerDuration`) will be paused.\n\nAn example of price levels for idle periods is given in the table below.\n\n| First Unit  | Last Unit   | Fee per Unit | Flat Fee    |\n| ----------- | ------------| -------------|------------ |\n| 0           | 2           | 0.30         | 0.00        |\n| 3           | 6           | 0.40         | 0.00        |\n| 7           | null        | 0.00         | 0.00        |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstUnit": {
                          "type": "integer"
                        },
                        "lastUnit": {
                          "type": "integer",
                          "nullable": true,
                          "example": 1
                        },
                        "feePerUnit": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.05
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.06
                        }
                      },
                      "required": [
                        "firstUnit"
                      ]
                    }
                  },
                  "regularUsePeriod": {
                    "type": "number",
                    "description": "In minutes. Only for the Peak power level tariff.",
                    "nullable": true
                  },
                  "averagePowerLevels": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 2,
                      "properties": {
                        "averagePowerUpToKw": {
                          "type": "number"
                        },
                        "pricePerMinute": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "averagePowerUpToKw",
                        "pricePerMinute"
                      ]
                    }
                  },
                  "peakPowerLevels": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 2,
                      "properties": {
                        "peakPowerUpToKw": {
                          "type": "number"
                        },
                        "regularPricePerMinute": {
                          "type": "number"
                        },
                        "excessUsePricePerMin": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "peakPowerUpToKw",
                        "regularPricePerMinute",
                        "excessUsePricePerMin"
                      ]
                    }
                  },
                  "timePeriods": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 1,
                      "properties": {
                        "startTime": {
                          "type": "string",
                          "pattern": "^\\d{2}:\\d{2}$",
                          "example": "00:00",
                          "description": "The 24-hour format should be used."
                        },
                        "endTime": {
                          "type": "string",
                          "pattern": "^\\d{2}:\\d{2}$",
                          "example": "00:00",
                          "description": "The 24-hour format should be used."
                        }
                      },
                      "required": [
                        "startTime",
                        "endTime"
                      ]
                    }
                  },
                  "pricePeriods": {
                    "type": "object",
                    "properties": {
                      "connectionFeePeriods": {
                        "type": "object",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "energyFeePeriods": {
                        "type": "object",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "durationFeePeriods": {
                        "type": "object",
                        "description": "Duration fees for each time period. Applicable for standard_tod tariff.\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `idleFeePeriods`) will apply during idle periods.\n",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "idleFeePeriods": {
                        "type": "object",
                        "description": "Idle fees for each time period. Applicable for standard_tod tariff.\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `durationFeePeriods`) will be paused.\n",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      }
                    }
                  },
                  "daysWhenApplied": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "specialDates": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "format": "date"
                          },
                          "example": "2022-01-30"
                        },
                        "idleFeeGracePeriodMinutes": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Idle fee grace period (min). Optional. The interpretation of this field depends on `idleFeeGracePeriodMode`:\n\n- When mode is `idle_detection` (default): The user is given this grace period after idle state is detected (no charging) to remove the vehicle, before idle fee starts applying.\n- When mode is `session_start`: This represents the minimum session duration before idle fee applies. Idle fee will not be charged until the session has been active for at least this many minutes.\n",
                          "nullable": true
                        },
                        "idlePricingPeriodInMinutes": {
                          "type": "number",
                          "enum": [
                            1,
                            15,
                            30,
                            60,
                            240,
                            360
                          ],
                          "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging).",
                          "nullable": true
                        },
                        "connectionFeeMinimumSessionDuration": {
                          "type": "integer",
                          "description": "Connection Fee Minimum Session Duration (min). Optional.",
                          "nullable": true
                        },
                        "connectionFeeMinimumSessionEnergy": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Connection Fee Minimum Session Energy (kWh). Optional. Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true
                        },
                        "durationFeeGracePeriod": {
                          "type": "integer",
                          "description": "Duration Fee Grace Period (min). Optional.",
                          "nullable": true
                        },
                        "pricePeriodInMinutes": {
                          "type": "integer",
                          "enum": [
                            1,
                            15,
                            30,
                            60,
                            240,
                            360
                          ],
                          "description": "Charging period. In minutes. It defines the time-period for charging a fee. Example: If you select 15min then the EV-driver will be charged at the start of every 15min of EV-charging. Applicable for duration+energy and duration+energy time of day",
                          "nullable": true
                        },
                        "pricePeriods": {
                          "type": "object",
                          "minItems": 1,
                          "properties": {
                            "connectionFeePeriods": {
                              "type": "object",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "energyFeePeriods": {
                              "type": "object",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "durationFeePeriods": {
                              "type": "object",
                              "description": "Duration fees for each time period. Applicable for standard_tod tariff.\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `idleFeePeriods`) will apply during idle periods.\n",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "idleFeePeriods": {
                              "type": "object",
                              "description": "Idle fees for each time period. Applicable for standard_tod tariff.\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `durationFeePeriods`) will be paused.\n",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "description": "When left empty, this means that this is the standard pricing that would be applied in general without taking into consideration the day."
                  },
                  "thresholdPriceForEnergy": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price for kWh to be considered by Optimised charging for setting the charging periods.",
                    "nullable": true
                  },
                  "priceForEnergyWhenOptimized": {
                    "type": "number",
                    "format": "decimal",
                    "nullable": true
                  },
                  "optimisedLabel": {
                    "type": "string",
                    "nullable": true
                  },
                  "durationFeeFrom": {
                    "type": "string",
                    "format": "time",
                    "nullable": true,
                    "description": "Defined start time for the application of duration fees."
                  },
                  "durationFeeTo": {
                    "type": "string",
                    "format": "time",
                    "nullable": true,
                    "description": "Defined end time for the application of duration fees."
                  },
                  "subsidyIntegrationId": {
                    "type": "integer",
                    "description": "**This property is deprecated**\n\nUse `subsidy.integrationId` instead.\n\nThe subsidy integration id that should be applied for this tariff. Only valid for Energy ToU tariffs. Please use the admin panel for the specific integration id. Optional.\n",
                    "nullable": true,
                    "deprecated": true
                  },
                  "subsidy": {
                    "type": "object",
                    "description": "Subsidy parameters for this tariff. Only applicable for Energy ToU tariffs. Omitted when no subsidy is configured.",
                    "properties": {
                      "integrationId": {
                        "type": "integer",
                        "description": "The ID of the subsidy integration that is active on the tariff (or was active when the snapshot was taken)."
                      },
                      "threshold": {
                        "type": "number",
                        "description": "The energy price threshold (in the operator's currency per kWh) above which the subsidy applies."
                      },
                      "compensationRate": {
                        "type": "number",
                        "description": "The compensation rate as a percentage (e.g., 90 for 90%)."
                      }
                    },
                    "required": [
                      "integrationId",
                      "threshold",
                      "compensationRate"
                    ]
                  },
                  "lockPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled the tariff of the charger will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for:\n  - `duration+energy time of day` - it locks duration and energy price components\n  - `energy tou` - it locks energy component only\n"
                  },
                  "lockEnergyPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled the tariff of the charger will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for `standard_tod tariff`.\n"
                  },
                  "lockDurationPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled, the energy fee component of the tariff will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for `standard_tod tariff`.\n"
                  },
                  "lockIdlePriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled, the duration fee component of the tariff will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the whole duration of their session.\nApplicable only for `standard_tod tariff`\n"
                  },
                  "stateOfChargeIdleThreshold": {
                    "nullable": true,
                    "type": "integer",
                    "enum": [
                      75,
                      80,
                      85,
                      90,
                      95,
                      100
                    ],
                    "description": "Switches the session to idle when the SoC (%) exceeds the selected value. Leave empty to use the system wide setting.\nThis option will take effect only if `Allow custom SoC (%) threshold per Tariff` is set in `Idle period detection` setting.\nThis only applies to local charge points, it does not affect sessions on roaming charge points. Leave empty to use the system wide setting.\n"
                  },
                  "averagePowerIdleThreshold": {
                    "nullable": true,
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "maximum": 999999.99,
                    "description": "Sets the session to idle state when the average kW for the past 5 minutes is below the set threshold.\nThis option will take effect only if `Allow custom power threshold per Tariff` is set in `Idle period detection` setting.\n"
                  }
                }
              },
              "stopSession": {
                "type": "object",
                "properties": {
                  "timeLimitMinutes": {
                    "type": "number",
                    "description": "Session max time. The maximum minutes a session is allowed to run. Skip for no time limit.",
                    "nullable": true
                  },
                  "stopWhenEnergyExceedsKwh": {
                    "type": "number",
                    "description": "The maximum energy (kWh) allowed per session. Skip for no limit.",
                    "nullable": true
                  },
                  "stopWhenSocExceedsPercent": {
                    "type": "integer",
                    "minimum": 70,
                    "maximum": 99,
                    "description": "Stop the session when the vehicle's reported State of Charge reaches or exceeds this value. If the charge point does not report SoC, this criterion is ignored. Accepts values between 70 and 99.",
                    "nullable": true
                  }
                }
              },
              "display": {
                "type": "object",
                "properties": {
                  "defaultPriceInformation": {
                    "type": "string",
                    "maxLength": 150,
                    "nullable": true,
                    "deprecated": true,
                    "description": "Deprecated: use the tariff group resource to manage this field."
                  },
                  "defaultPriceInformationOffline": {
                    "type": "string",
                    "maxLength": 150,
                    "nullable": true,
                    "deprecated": true,
                    "description": "Deprecated: use the tariff group resource to manage this field."
                  },
                  "priceInformation": {
                    "type": "string",
                    "nullable": true,
                    "deprecated": true,
                    "description": "**This property is deprecated. Use `priceInformationLocalized` instead.** The scalar field only carries the default-locale value and cannot round-trip multi-locale content.\n\nThe information that would be shown on the display of the charge point for users that are eligible for this tariff.\n"
                  },
                  "priceInformationLocalized": {
                    "type": "object",
                    "nullable": true,
                    "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                    "additionalProperties": {
                      "type": "string",
                      "nullable": true
                    },
                    "example": {
                      "en": "example",
                      "fr": "affaire"
                    }
                  },
                  "totalCostInformation": {
                    "type": "string",
                    "nullable": true,
                    "deprecated": true,
                    "description": "**This property is deprecated. Use `totalCostInformationLocalized` instead.** The scalar field only carries the default-locale value and cannot round-trip multi-locale content.\n\nAdditional information that would be displayed on the charge point when the session ends, along with the total fees for energy, duration and idle.\n"
                  },
                  "totalCostInformationLocalized": {
                    "type": "object",
                    "nullable": true,
                    "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                    "additionalProperties": {
                      "type": "string",
                      "nullable": true
                    },
                    "example": {
                      "en": "example",
                      "fr": "affaire"
                    }
                  },
                  "plainTextModeEnabled": {
                    "type": "boolean",
                    "default": false,
                    "description": "When `true`, the display text is delivered to the charge point without rich text formatting."
                  }
                }
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "tariffId",
              "status",
              "scheduledAt",
              "createdByAdminId",
              "createdAt",
              "updatedAt",
              "name",
              "type"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "tariffScheduledChangeRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "tariffId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the parent tariff",
                "example": 1
              },
              "status": {
                "readOnly": true,
                "type": "string",
                "enum": [
                  "pending",
                  "failed"
                ],
                "description": "Scheduled tariff pricing change status:\n- **pending**: Awaiting scheduled time. Can be edited or deleted.\n- **failed**: Automatic apply errored. Can be viewed or deleted, but not edited.\n",
                "example": "pending"
              },
              "scheduledAt": {
                "type": "string",
                "format": "date-time",
                "description": "The UTC date/time when the pricing change takes effect. Stored at minute precision."
              },
              "createdByAdminId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the admin who created this scheduled change"
              },
              "name": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "free",
                  "flat rate",
                  "duration+energy",
                  "duration+energy time of day",
                  "energy tou",
                  "standard",
                  "charging not allowed",
                  "average power levels",
                  "peak power levels",
                  "standard_tod",
                  "optimised dynamic pricing"
                ],
                "description": "Tariff type. Can be changed on pending scheduled changes."
              },
              "description": {
                "type": "object",
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "additionalInformation": {
                "type": "object",
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "learnMoreUrl": {
                "type": "object",
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "dayTariffStart": {
                "type": "string",
                "format": "time",
                "description": "A time when the day begins"
              },
              "nightTariffStart": {
                "type": "string",
                "format": "time",
                "description": "A time when the night begins"
              },
              "pricing": {
                "type": "object",
                "properties": {
                  "pricePerSession": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per session. Only applicable with flat rate tariffs. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "connectionFee": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Connection fee. A fixed fee that is applied at the start of the charging session. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "pricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "dayPricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "nightPricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "pricePeriodInMinutes": {
                    "type": "integer",
                    "enum": [
                      1,
                      15,
                      30,
                      60,
                      240,
                      360
                    ],
                    "description": "Charging period. In minutes. It defines the time-period for charging a fee. Example: If you select 15min then the EV-driver will be charged at the start of every 15min of EV-charging. Applicable for duration+energy and duration+energy time of day",
                    "nullable": true
                  },
                  "pricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period. Applicable for duration+energy. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`idleFeePerMinute`), the regular duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "durationFeeLimit": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Duration fee limit for the whole session if fee is applied.",
                    "nullable": true
                  },
                  "durationFeeCapMinutes": {
                    "type": "integer",
                    "description": "Maximum billable charging duration in minutes. A value of zero means no duration fee is charged. Mutually exclusive with durationFeeLimit.",
                    "nullable": true
                  },
                  "dayPricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`dayIdleFeePerMinute`), the regular day duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "nightPricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`nightIdleFeePerMinute`), the regular night duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "dayIdleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\nWhen configured, this fee applies during idle periods (when no charging is occurring) and replaces the regular day duration fee (`dayPricePerPeriod`). If not configured, the regular day duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "nightIdleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\nWhen configured, this fee applies during idle periods (when no charging is occurring) and replaces the regular night duration fee (`nightPricePerPeriod`). If not configured, the regular night duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "idleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging). Up to 5 digits after the decimal point depending on the currency precision.\n\n**For duration+energy tariffs:** When configured, this fee applies during idle periods and replaces the regular duration fee (`pricePerPeriod`). If not configured, the regular duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "idleFeeGracePeriodMinutes": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee grace period (min). Optional. The interpretation of this field depends on `idleFeeGracePeriodMode`:\n\n- When mode is `idle_detection` (default): The user is given this grace period after idle state is detected (no charging) to remove the vehicle, before idle fee starts applying.\n- When mode is `session_start`: This represents the minimum session duration before idle fee applies. Idle fee will not be charged until the session has been active for at least this many minutes.\n",
                    "nullable": true
                  },
                  "idleFeeGracePeriodMode": {
                    "type": "string",
                    "enum": [
                      "idle_detection",
                      "session_start"
                    ],
                    "description": "Determines when the idle fee grace period timer starts counting.\n\n- `idle_detection` (default): Grace period begins when idle state is detected (vehicle stops charging but remains connected).\n- `session_start`: Grace period begins from session start time. Idle fee will not apply until the session has been active for at least the grace period duration.\n\nApplicable tariff types: `duration+energy`, `duration+energy time of day`, `energy tou`, `standard_tod`.\n"
                  },
                  "idlePricingPeriodInMinutes": {
                    "type": "number",
                    "enum": [
                      1,
                      15,
                      30,
                      60,
                      240,
                      360
                    ],
                    "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging).",
                    "nullable": true
                  },
                  "idleFeePeriodStart": {
                    "type": "string",
                    "format": "time",
                    "description": "Defined start time for the application of idle fee.",
                    "nullable": true
                  },
                  "idleFeePeriodEnd": {
                    "type": "string",
                    "format": "time",
                    "description": "Defined end time for the application of idle fee.",
                    "nullable": true
                  },
                  "idleFeeLimit": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee limit for the whole session if fee is applied.",
                    "nullable": true
                  },
                  "idleFeeCapMinutes": {
                    "type": "integer",
                    "description": "Maximum billable idle time in minutes. A value of zero means no idle fee is charged. Mutually exclusive with idleFeeLimit.",
                    "nullable": true
                  },
                  "connectionFeeMinimumSessionDuration": {
                    "type": "integer",
                    "description": "Connection Fee Minimum Session Duration (min). Optional.",
                    "nullable": true
                  },
                  "connectionFeeMinimumSessionEnergy": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Connection Fee Minimum Session Energy (kWh). Optional. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "durationFeeGracePeriod": {
                    "type": "integer",
                    "description": "Duration Fee Grace Period (min). Optional.",
                    "nullable": true
                  },
                  "minPrice": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Min. price. Sets a minimum total amount per session. This is helpful in the case your payment service provider has a minimum transaction size or high transaction fees and you want to make sure to have a positive ROI per transaction. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "preAuthorizeAmount": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Pre-authorize amount. The amount to pre-authorize before starting a session. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "incrementalPreAuthorizationAmount": {
                    "type": "number",
                    "format": "decimal",
                    "description": "The resolved incremental pre-authorization amount for the requesting user context, in the tariff's currency. When the request targets an ad-hoc user (`filter[userId]=null` and the tariff has ad-hoc users enabled), returns the ad-hoc cascade (ad-hoc tariff override → tariff override → global default); otherwise returns the regular cascade (tariff override → global default). Omitted from the response when incremental pre-authorizations are disabled or no amount is configured. On create/update, accept `null` to clear the regular tariff-level override (mirrors `preAuthorizeAmount`); accepted regardless of the global \"Enable incremental pre-authorizations\" setting.\n"
                  },
                  "taxID": {
                    "type": "integer",
                    "deprecated": true,
                    "description": "If Multi-tax Support has been enabled in the platform settings, you can provide the taxId for the tariff here. If you do not provide a value or provide `null`, the Default tax will be used.\n\nIf Multi-tax Support has not been enabled, any provided value will be ignored.\n",
                    "nullable": true
                  },
                  "chargePointElectricityRate": {
                    "type": "boolean",
                    "description": "Use the Electricity Rate of the Charge Point that is already attached and aims to track the electricity costs."
                  },
                  "fallbackElectricityRateId": {
                    "type": "integer",
                    "description": "When ChargePointElectricityRate is set to *false*, the Electricity Rate ID MUST be supplied in order the electricity rates for the tariff to be known.",
                    "nullable": true
                  },
                  "markupPercentagePerKwh": {
                    "type": "number",
                    "nullable": true
                  },
                  "markupFixedFeePerKwh": {
                    "type": "number",
                    "nullable": true
                  },
                  "flexibleMarkUpAsFixedPerKwh": {
                    "nullable": true,
                    "description": "Set a different fixed markup for different time slots along the day. Applicable for `energy tou` only.",
                    "type": "object",
                    "properties": {
                      "defaultPrice": {
                        "type": "number",
                        "default": 0,
                        "writeOnly": true,
                        "description": "Set price for the intervals not specified in `intervalPricing` field."
                      },
                      "intervalPricing": {
                        "type": "array",
                        "description": "Variable-length time periods for markup pricing. Periods can have any duration and do not need to be uniform. Only explicitly configured periods are returned. Time slots not covered by any interval use the `markupFixedFeePerKwh` value. Overlapping intervals are not allowed.",
                        "items": {
                          "type": "object",
                          "description": "A specific price period. The `startsAt` and `endsAt` times should be provided in the local time zone and not in UTC.\nDepending on the tenant multi timezone configuration either the tenant timezone will be used, or the timezone specific to the corresponding resource.\n",
                          "properties": {
                            "startsAt": {
                              "type": "string",
                              "pattern": "^\\d{2}:\\d{2}$",
                              "description": "The start time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                              "example": "23:45"
                            },
                            "endsAt": {
                              "type": "string",
                              "pattern": "^\\d{2}:\\d{2}$",
                              "description": "The end time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                              "example": "23:45"
                            },
                            "price": {
                              "type": "number",
                              "format": "decimal",
                              "example": 1.23,
                              "description": "The price that will apply for the given price period. Must include tax."
                            }
                          },
                          "required": [
                            "startsAt",
                            "endsAt",
                            "price"
                          ]
                        }
                      }
                    }
                  },
                  "multiPricePerKwh": {
                    "description": "\nCreate the price levels according to the kWh. <br />\nThe first level must have zero value for **firstKwh**. <br />\nThe last level must have an infinity value for **lastKwh**. <br />\nThe **fisrtKwh** value on the current level must be equal to the **lastKwh** value on the previous one. <br />\nInstead of using a price per kWh there is the option for a flat fee per level.\n\nAn example of price levels for kWh is given in the table below.\n\n| First kWh  | Last kWh   | Fee per kWh | Flat Fee    |\n| --------- | ------------| ------------|------------ |\n| 0         | 5.00        | 0.00        | 2.00        |\n| 5.00      | 10.00       | 0.35        | 0.00        |\n| 10.00     | null        | 0.40        | 0.00        |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstKwh": {
                          "type": "number",
                          "multipleOf": 0.01,
                          "example": 0.05
                        },
                        "lastKwh": {
                          "type": "number",
                          "multipleOf": 0.01,
                          "nullable": true,
                          "example": 0.06
                        },
                        "feePerKwh": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.07
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.08
                        }
                      },
                      "required": [
                        "firstKwh"
                      ]
                    }
                  },
                  "multiPricePerDuration": {
                    "description": "\nCreate the price levels according to the duration of the session from the time the charging started.  <br />\nThe first level must have zero value for **firstUnit**. <br />\nThe last level must have an infinity value for **lastUnit**.  <br />\nThe **firstUnit** value on the current level must be greater with one unit from the **lastUnit** value on the previous level. <br />\nThe Unit is created in the **pricePeriodInMinutes** property, the default one is 15 min.  <br />\nThere is the option of applying a flat fee per each level separately.  <br />\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `multiIdleFee`) will apply during idle periods.\n\nAn example of price levels for duration is given in the table below.\n\n| First Unit  | Last Unit   | Fee per Unit | Flat Fee    |\n| ----------- | ------------| -------------|------------ |\n| 0           | 8           | 0.50         | 0.00        |\n| 9           | 24          | 0.55         | 0.00        |\n| 25          | null        | 0.00         | 10.00       |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstUnit": {
                          "type": "integer"
                        },
                        "lastUnit": {
                          "type": "integer",
                          "nullable": true,
                          "example": 1
                        },
                        "feePerUnit": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.05
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0
                        }
                      },
                      "required": [
                        "firstUnit"
                      ]
                    }
                  },
                  "multiIdleFee": {
                    "description": "\nDifferent price levels could be created depending on the duration of the idle period. <br />\nThe first level must have zero value for **firstUnit**. <br />\nThe last level must have an infinity value for **lastUnit**.  <br />\nThe **firstUnit** value on the current level must be greater with one unit from the **lastUnit** value on the previous level. <br />\nThe Unit is created in the **pricePeriodInMinutes** property, the default one is 15 min. <br />\nThere is the option of applying a flat fee per each level separately. <br />\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `multiPricePerDuration`) will be paused.\n\nAn example of price levels for idle periods is given in the table below.\n\n| First Unit  | Last Unit   | Fee per Unit | Flat Fee    |\n| ----------- | ------------| -------------|------------ |\n| 0           | 2           | 0.30         | 0.00        |\n| 3           | 6           | 0.40         | 0.00        |\n| 7           | null        | 0.00         | 0.00        |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstUnit": {
                          "type": "integer"
                        },
                        "lastUnit": {
                          "type": "integer",
                          "nullable": true,
                          "example": 1
                        },
                        "feePerUnit": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.05
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.06
                        }
                      },
                      "required": [
                        "firstUnit"
                      ]
                    }
                  },
                  "regularUsePeriod": {
                    "type": "number",
                    "description": "In minutes. Only for the Peak power level tariff.",
                    "nullable": true
                  },
                  "averagePowerLevels": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 2,
                      "properties": {
                        "averagePowerUpToKw": {
                          "type": "number"
                        },
                        "pricePerMinute": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "averagePowerUpToKw",
                        "pricePerMinute"
                      ]
                    }
                  },
                  "peakPowerLevels": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 2,
                      "properties": {
                        "peakPowerUpToKw": {
                          "type": "number"
                        },
                        "regularPricePerMinute": {
                          "type": "number"
                        },
                        "excessUsePricePerMin": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "peakPowerUpToKw",
                        "regularPricePerMinute",
                        "excessUsePricePerMin"
                      ]
                    }
                  },
                  "timePeriods": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 1,
                      "properties": {
                        "startTime": {
                          "type": "string",
                          "pattern": "^\\d{2}:\\d{2}$",
                          "example": "00:00",
                          "description": "The 24-hour format should be used."
                        },
                        "endTime": {
                          "type": "string",
                          "pattern": "^\\d{2}:\\d{2}$",
                          "example": "00:00",
                          "description": "The 24-hour format should be used."
                        }
                      },
                      "required": [
                        "startTime",
                        "endTime"
                      ]
                    }
                  },
                  "pricePeriods": {
                    "type": "object",
                    "properties": {
                      "connectionFeePeriods": {
                        "type": "object",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "energyFeePeriods": {
                        "type": "object",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "durationFeePeriods": {
                        "type": "object",
                        "description": "Duration fees for each time period. Applicable for standard_tod tariff.\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `idleFeePeriods`) will apply during idle periods.\n",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "idleFeePeriods": {
                        "type": "object",
                        "description": "Idle fees for each time period. Applicable for standard_tod tariff.\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `durationFeePeriods`) will be paused.\n",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      }
                    }
                  },
                  "daysWhenApplied": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "specialDates": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "format": "date"
                          },
                          "example": "2022-01-30"
                        },
                        "idleFeeGracePeriodMinutes": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Idle fee grace period (min). Optional. The interpretation of this field depends on `idleFeeGracePeriodMode`:\n\n- When mode is `idle_detection` (default): The user is given this grace period after idle state is detected (no charging) to remove the vehicle, before idle fee starts applying.\n- When mode is `session_start`: This represents the minimum session duration before idle fee applies. Idle fee will not be charged until the session has been active for at least this many minutes.\n",
                          "nullable": true
                        },
                        "idlePricingPeriodInMinutes": {
                          "type": "number",
                          "enum": [
                            1,
                            15,
                            30,
                            60,
                            240,
                            360
                          ],
                          "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging).",
                          "nullable": true
                        },
                        "connectionFeeMinimumSessionDuration": {
                          "type": "integer",
                          "description": "Connection Fee Minimum Session Duration (min). Optional.",
                          "nullable": true
                        },
                        "connectionFeeMinimumSessionEnergy": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Connection Fee Minimum Session Energy (kWh). Optional. Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true
                        },
                        "durationFeeGracePeriod": {
                          "type": "integer",
                          "description": "Duration Fee Grace Period (min). Optional.",
                          "nullable": true
                        },
                        "pricePeriodInMinutes": {
                          "type": "integer",
                          "enum": [
                            1,
                            15,
                            30,
                            60,
                            240,
                            360
                          ],
                          "description": "Charging period. In minutes. It defines the time-period for charging a fee. Example: If you select 15min then the EV-driver will be charged at the start of every 15min of EV-charging. Applicable for duration+energy and duration+energy time of day",
                          "nullable": true
                        },
                        "pricePeriods": {
                          "type": "object",
                          "minItems": 1,
                          "properties": {
                            "connectionFeePeriods": {
                              "type": "object",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "energyFeePeriods": {
                              "type": "object",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "durationFeePeriods": {
                              "type": "object",
                              "description": "Duration fees for each time period. Applicable for standard_tod tariff.\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `idleFeePeriods`) will apply during idle periods.\n",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "idleFeePeriods": {
                              "type": "object",
                              "description": "Idle fees for each time period. Applicable for standard_tod tariff.\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `durationFeePeriods`) will be paused.\n",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "description": "When left empty, this means that this is the standard pricing that would be applied in general without taking into consideration the day."
                  },
                  "thresholdPriceForEnergy": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price for kWh to be considered by Optimised charging for setting the charging periods.",
                    "nullable": true
                  },
                  "priceForEnergyWhenOptimized": {
                    "type": "number",
                    "format": "decimal",
                    "nullable": true
                  },
                  "optimisedLabel": {
                    "type": "string",
                    "nullable": true
                  },
                  "durationFeeFrom": {
                    "type": "string",
                    "format": "time",
                    "nullable": true,
                    "description": "Defined start time for the application of duration fees."
                  },
                  "durationFeeTo": {
                    "type": "string",
                    "format": "time",
                    "nullable": true,
                    "description": "Defined end time for the application of duration fees."
                  },
                  "subsidyIntegrationId": {
                    "type": "integer",
                    "description": "**This property is deprecated**\n\nUse `subsidy.integrationId` instead.\n\nThe subsidy integration id that should be applied for this tariff. Only valid for Energy ToU tariffs. Please use the admin panel for the specific integration id. Optional.\n",
                    "nullable": true,
                    "deprecated": true
                  },
                  "subsidy": {
                    "type": "object",
                    "description": "Subsidy parameters for this tariff. Only applicable for Energy ToU tariffs. Omitted when no subsidy is configured.",
                    "properties": {
                      "integrationId": {
                        "type": "integer",
                        "description": "The ID of the subsidy integration that is active on the tariff (or was active when the snapshot was taken)."
                      },
                      "threshold": {
                        "type": "number",
                        "description": "The energy price threshold (in the operator's currency per kWh) above which the subsidy applies."
                      },
                      "compensationRate": {
                        "type": "number",
                        "description": "The compensation rate as a percentage (e.g., 90 for 90%)."
                      }
                    },
                    "required": [
                      "integrationId",
                      "threshold",
                      "compensationRate"
                    ]
                  },
                  "lockPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled the tariff of the charger will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for:\n  - `duration+energy time of day` - it locks duration and energy price components\n  - `energy tou` - it locks energy component only\n"
                  },
                  "lockEnergyPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled the tariff of the charger will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for `standard_tod tariff`.\n"
                  },
                  "lockDurationPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled, the energy fee component of the tariff will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for `standard_tod tariff`.\n"
                  },
                  "lockIdlePriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled, the duration fee component of the tariff will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the whole duration of their session.\nApplicable only for `standard_tod tariff`\n"
                  },
                  "stateOfChargeIdleThreshold": {
                    "nullable": true,
                    "type": "integer",
                    "enum": [
                      75,
                      80,
                      85,
                      90,
                      95,
                      100
                    ],
                    "description": "Switches the session to idle when the SoC (%) exceeds the selected value. Leave empty to use the system wide setting.\nThis option will take effect only if `Allow custom SoC (%) threshold per Tariff` is set in `Idle period detection` setting.\nThis only applies to local charge points, it does not affect sessions on roaming charge points. Leave empty to use the system wide setting.\n"
                  },
                  "averagePowerIdleThreshold": {
                    "nullable": true,
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "maximum": 999999.99,
                    "description": "Sets the session to idle state when the average kW for the past 5 minutes is below the set threshold.\nThis option will take effect only if `Allow custom power threshold per Tariff` is set in `Idle period detection` setting.\n"
                  }
                }
              },
              "stopSession": {
                "type": "object",
                "properties": {
                  "timeLimitMinutes": {
                    "type": "number",
                    "description": "Session max time. The maximum minutes a session is allowed to run. Skip for no time limit.",
                    "nullable": true
                  },
                  "stopWhenEnergyExceedsKwh": {
                    "type": "number",
                    "description": "The maximum energy (kWh) allowed per session. Skip for no limit.",
                    "nullable": true
                  },
                  "stopWhenSocExceedsPercent": {
                    "type": "integer",
                    "minimum": 70,
                    "maximum": 99,
                    "description": "Stop the session when the vehicle's reported State of Charge reaches or exceeds this value. If the charge point does not report SoC, this criterion is ignored. Accepts values between 70 and 99.",
                    "nullable": true
                  }
                }
              },
              "display": {
                "type": "object",
                "properties": {
                  "defaultPriceInformation": {
                    "type": "string",
                    "maxLength": 150,
                    "nullable": true,
                    "deprecated": true,
                    "description": "Deprecated: use the tariff group resource to manage this field."
                  },
                  "defaultPriceInformationOffline": {
                    "type": "string",
                    "maxLength": 150,
                    "nullable": true,
                    "deprecated": true,
                    "description": "Deprecated: use the tariff group resource to manage this field."
                  },
                  "priceInformation": {
                    "type": "string",
                    "nullable": true,
                    "deprecated": true,
                    "description": "**This property is deprecated. Use `priceInformationLocalized` instead.** The scalar field only carries the default-locale value and cannot round-trip multi-locale content.\n\nThe information that would be shown on the display of the charge point for users that are eligible for this tariff.\n"
                  },
                  "priceInformationLocalized": {
                    "type": "object",
                    "nullable": true,
                    "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                    "additionalProperties": {
                      "type": "string",
                      "nullable": true
                    },
                    "example": {
                      "en": "example",
                      "fr": "affaire"
                    }
                  },
                  "totalCostInformation": {
                    "type": "string",
                    "nullable": true,
                    "deprecated": true,
                    "description": "**This property is deprecated. Use `totalCostInformationLocalized` instead.** The scalar field only carries the default-locale value and cannot round-trip multi-locale content.\n\nAdditional information that would be displayed on the charge point when the session ends, along with the total fees for energy, duration and idle.\n"
                  },
                  "totalCostInformationLocalized": {
                    "type": "object",
                    "nullable": true,
                    "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                    "additionalProperties": {
                      "type": "string",
                      "nullable": true
                    },
                    "example": {
                      "en": "example",
                      "fr": "affaire"
                    }
                  },
                  "plainTextModeEnabled": {
                    "type": "boolean",
                    "default": false,
                    "description": "When `true`, the display text is delivered to the charge point without rich text formatting."
                  }
                }
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "tariffId",
              "status",
              "scheduledAt",
              "createdByAdminId",
              "createdAt",
              "updatedAt",
              "name",
              "type"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "tariffScheduledChangeDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "tariffScheduledChangeUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "tariffId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the parent tariff",
                "example": 1
              },
              "status": {
                "readOnly": true,
                "type": "string",
                "enum": [
                  "pending",
                  "failed"
                ],
                "description": "Scheduled tariff pricing change status:\n- **pending**: Awaiting scheduled time. Can be edited or deleted.\n- **failed**: Automatic apply errored. Can be viewed or deleted, but not edited.\n",
                "example": "pending"
              },
              "scheduledAt": {
                "type": "string",
                "format": "date-time",
                "description": "The UTC date/time when the pricing change takes effect. Stored at minute precision."
              },
              "createdByAdminId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the admin who created this scheduled change"
              },
              "name": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "free",
                  "flat rate",
                  "duration+energy",
                  "duration+energy time of day",
                  "energy tou",
                  "standard",
                  "charging not allowed",
                  "average power levels",
                  "peak power levels",
                  "standard_tod",
                  "optimised dynamic pricing"
                ],
                "description": "Tariff type. Can be changed on pending scheduled changes."
              },
              "description": {
                "type": "object",
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "additionalInformation": {
                "type": "object",
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "learnMoreUrl": {
                "type": "object",
                "additionalProperties": {
                  "type": "string",
                  "nullable": true
                },
                "example": {
                  "en": "example",
                  "fr": "affaire"
                },
                "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep."
              },
              "dayTariffStart": {
                "type": "string",
                "format": "time",
                "description": "A time when the day begins"
              },
              "nightTariffStart": {
                "type": "string",
                "format": "time",
                "description": "A time when the night begins"
              },
              "pricing": {
                "type": "object",
                "properties": {
                  "pricePerSession": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per session. Only applicable with flat rate tariffs. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "connectionFee": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Connection fee. A fixed fee that is applied at the start of the charging session. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "pricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "dayPricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "nightPricePerKwh": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price per kWh during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "pricePeriodInMinutes": {
                    "type": "integer",
                    "enum": [
                      1,
                      15,
                      30,
                      60,
                      240,
                      360
                    ],
                    "description": "Charging period. In minutes. It defines the time-period for charging a fee. Example: If you select 15min then the EV-driver will be charged at the start of every 15min of EV-charging. Applicable for duration+energy and duration+energy time of day",
                    "nullable": true
                  },
                  "pricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period. Applicable for duration+energy. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`idleFeePerMinute`), the regular duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "durationFeeLimit": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Duration fee limit for the whole session if fee is applied.",
                    "nullable": true
                  },
                  "durationFeeCapMinutes": {
                    "type": "integer",
                    "description": "Maximum billable charging duration in minutes. A value of zero means no duration fee is charged. Mutually exclusive with durationFeeLimit.",
                    "nullable": true
                  },
                  "dayPricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`dayIdleFeePerMinute`), the regular day duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "nightPricePerPeriod": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Charging fee per period during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\n**Idle period behavior:** If no idle fee is configured (`nightIdleFeePerMinute`), the regular night duration fee continues to apply during idle periods. When an idle fee is configured, it replaces the duration fee during idle periods.\n",
                    "nullable": true
                  },
                  "dayIdleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute during the day. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\nWhen configured, this fee applies during idle periods (when no charging is occurring) and replaces the regular day duration fee (`dayPricePerPeriod`). If not configured, the regular day duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "nightIdleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute during the night. Applicable for duration+energy time of day. Up to 5 digits after the decimal point depending on the currency precision.\n\nWhen configured, this fee applies during idle periods (when no charging is occurring) and replaces the regular night duration fee (`nightPricePerPeriod`). If not configured, the regular night duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "idleFeePerMinute": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging). Up to 5 digits after the decimal point depending on the currency precision.\n\n**For duration+energy tariffs:** When configured, this fee applies during idle periods and replaces the regular duration fee (`pricePerPeriod`). If not configured, the regular duration fee continues to apply during idle periods.\n",
                    "nullable": true
                  },
                  "idleFeeGracePeriodMinutes": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee grace period (min). Optional. The interpretation of this field depends on `idleFeeGracePeriodMode`:\n\n- When mode is `idle_detection` (default): The user is given this grace period after idle state is detected (no charging) to remove the vehicle, before idle fee starts applying.\n- When mode is `session_start`: This represents the minimum session duration before idle fee applies. Idle fee will not be charged until the session has been active for at least this many minutes.\n",
                    "nullable": true
                  },
                  "idleFeeGracePeriodMode": {
                    "type": "string",
                    "enum": [
                      "idle_detection",
                      "session_start"
                    ],
                    "description": "Determines when the idle fee grace period timer starts counting.\n\n- `idle_detection` (default): Grace period begins when idle state is detected (vehicle stops charging but remains connected).\n- `session_start`: Grace period begins from session start time. Idle fee will not apply until the session has been active for at least the grace period duration.\n\nApplicable tariff types: `duration+energy`, `duration+energy time of day`, `energy tou`, `standard_tod`.\n"
                  },
                  "idlePricingPeriodInMinutes": {
                    "type": "number",
                    "enum": [
                      1,
                      15,
                      30,
                      60,
                      240,
                      360
                    ],
                    "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging).",
                    "nullable": true
                  },
                  "idleFeePeriodStart": {
                    "type": "string",
                    "format": "time",
                    "description": "Defined start time for the application of idle fee.",
                    "nullable": true
                  },
                  "idleFeePeriodEnd": {
                    "type": "string",
                    "format": "time",
                    "description": "Defined end time for the application of idle fee.",
                    "nullable": true
                  },
                  "idleFeeLimit": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Idle fee limit for the whole session if fee is applied.",
                    "nullable": true
                  },
                  "idleFeeCapMinutes": {
                    "type": "integer",
                    "description": "Maximum billable idle time in minutes. A value of zero means no idle fee is charged. Mutually exclusive with idleFeeLimit.",
                    "nullable": true
                  },
                  "connectionFeeMinimumSessionDuration": {
                    "type": "integer",
                    "description": "Connection Fee Minimum Session Duration (min). Optional.",
                    "nullable": true
                  },
                  "connectionFeeMinimumSessionEnergy": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Connection Fee Minimum Session Energy (kWh). Optional. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "durationFeeGracePeriod": {
                    "type": "integer",
                    "description": "Duration Fee Grace Period (min). Optional.",
                    "nullable": true
                  },
                  "minPrice": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Min. price. Sets a minimum total amount per session. This is helpful in the case your payment service provider has a minimum transaction size or high transaction fees and you want to make sure to have a positive ROI per transaction. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "preAuthorizeAmount": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Pre-authorize amount. The amount to pre-authorize before starting a session. Up to 5 digits after the decimal point depending on the currency precision.",
                    "nullable": true
                  },
                  "incrementalPreAuthorizationAmount": {
                    "type": "number",
                    "format": "decimal",
                    "description": "The resolved incremental pre-authorization amount for the requesting user context, in the tariff's currency. When the request targets an ad-hoc user (`filter[userId]=null` and the tariff has ad-hoc users enabled), returns the ad-hoc cascade (ad-hoc tariff override → tariff override → global default); otherwise returns the regular cascade (tariff override → global default). Omitted from the response when incremental pre-authorizations are disabled or no amount is configured. On create/update, accept `null` to clear the regular tariff-level override (mirrors `preAuthorizeAmount`); accepted regardless of the global \"Enable incremental pre-authorizations\" setting.\n"
                  },
                  "taxID": {
                    "type": "integer",
                    "deprecated": true,
                    "description": "If Multi-tax Support has been enabled in the platform settings, you can provide the taxId for the tariff here. If you do not provide a value or provide `null`, the Default tax will be used.\n\nIf Multi-tax Support has not been enabled, any provided value will be ignored.\n",
                    "nullable": true
                  },
                  "chargePointElectricityRate": {
                    "type": "boolean",
                    "description": "Use the Electricity Rate of the Charge Point that is already attached and aims to track the electricity costs."
                  },
                  "fallbackElectricityRateId": {
                    "type": "integer",
                    "description": "When ChargePointElectricityRate is set to *false*, the Electricity Rate ID MUST be supplied in order the electricity rates for the tariff to be known.",
                    "nullable": true
                  },
                  "markupPercentagePerKwh": {
                    "type": "number",
                    "nullable": true
                  },
                  "markupFixedFeePerKwh": {
                    "type": "number",
                    "nullable": true
                  },
                  "flexibleMarkUpAsFixedPerKwh": {
                    "nullable": true,
                    "description": "Set a different fixed markup for different time slots along the day. Applicable for `energy tou` only.",
                    "type": "object",
                    "properties": {
                      "defaultPrice": {
                        "type": "number",
                        "default": 0,
                        "writeOnly": true,
                        "description": "Set price for the intervals not specified in `intervalPricing` field."
                      },
                      "intervalPricing": {
                        "type": "array",
                        "description": "Variable-length time periods for markup pricing. Periods can have any duration and do not need to be uniform. Only explicitly configured periods are returned. Time slots not covered by any interval use the `markupFixedFeePerKwh` value. Overlapping intervals are not allowed.",
                        "items": {
                          "type": "object",
                          "description": "A specific price period. The `startsAt` and `endsAt` times should be provided in the local time zone and not in UTC.\nDepending on the tenant multi timezone configuration either the tenant timezone will be used, or the timezone specific to the corresponding resource.\n",
                          "properties": {
                            "startsAt": {
                              "type": "string",
                              "pattern": "^\\d{2}:\\d{2}$",
                              "description": "The start time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                              "example": "23:45"
                            },
                            "endsAt": {
                              "type": "string",
                              "pattern": "^\\d{2}:\\d{2}$",
                              "description": "The end time of the period. Formatted as hours:minutes. Should be provided in the local time zone and not in UTC. Uses 24-hour notation.",
                              "example": "23:45"
                            },
                            "price": {
                              "type": "number",
                              "format": "decimal",
                              "example": 1.23,
                              "description": "The price that will apply for the given price period. Must include tax."
                            }
                          },
                          "required": [
                            "startsAt",
                            "endsAt",
                            "price"
                          ]
                        }
                      }
                    }
                  },
                  "multiPricePerKwh": {
                    "description": "\nCreate the price levels according to the kWh. <br />\nThe first level must have zero value for **firstKwh**. <br />\nThe last level must have an infinity value for **lastKwh**. <br />\nThe **fisrtKwh** value on the current level must be equal to the **lastKwh** value on the previous one. <br />\nInstead of using a price per kWh there is the option for a flat fee per level.\n\nAn example of price levels for kWh is given in the table below.\n\n| First kWh  | Last kWh   | Fee per kWh | Flat Fee    |\n| --------- | ------------| ------------|------------ |\n| 0         | 5.00        | 0.00        | 2.00        |\n| 5.00      | 10.00       | 0.35        | 0.00        |\n| 10.00     | null        | 0.40        | 0.00        |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstKwh": {
                          "type": "number",
                          "multipleOf": 0.01,
                          "example": 0.05
                        },
                        "lastKwh": {
                          "type": "number",
                          "multipleOf": 0.01,
                          "nullable": true,
                          "example": 0.06
                        },
                        "feePerKwh": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.07
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.08
                        }
                      },
                      "required": [
                        "firstKwh"
                      ]
                    }
                  },
                  "multiPricePerDuration": {
                    "description": "\nCreate the price levels according to the duration of the session from the time the charging started.  <br />\nThe first level must have zero value for **firstUnit**. <br />\nThe last level must have an infinity value for **lastUnit**.  <br />\nThe **firstUnit** value on the current level must be greater with one unit from the **lastUnit** value on the previous level. <br />\nThe Unit is created in the **pricePeriodInMinutes** property, the default one is 15 min.  <br />\nThere is the option of applying a flat fee per each level separately.  <br />\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `multiIdleFee`) will apply during idle periods.\n\nAn example of price levels for duration is given in the table below.\n\n| First Unit  | Last Unit   | Fee per Unit | Flat Fee    |\n| ----------- | ------------| -------------|------------ |\n| 0           | 8           | 0.50         | 0.00        |\n| 9           | 24          | 0.55         | 0.00        |\n| 25          | null        | 0.00         | 10.00       |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstUnit": {
                          "type": "integer"
                        },
                        "lastUnit": {
                          "type": "integer",
                          "nullable": true,
                          "example": 1
                        },
                        "feePerUnit": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.05
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0
                        }
                      },
                      "required": [
                        "firstUnit"
                      ]
                    }
                  },
                  "multiIdleFee": {
                    "description": "\nDifferent price levels could be created depending on the duration of the idle period. <br />\nThe first level must have zero value for **firstUnit**. <br />\nThe last level must have an infinity value for **lastUnit**.  <br />\nThe **firstUnit** value on the current level must be greater with one unit from the **lastUnit** value on the previous level. <br />\nThe Unit is created in the **pricePeriodInMinutes** property, the default one is 15 min. <br />\nThere is the option of applying a flat fee per each level separately. <br />\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `multiPricePerDuration`) will be paused.\n\nAn example of price levels for idle periods is given in the table below.\n\n| First Unit  | Last Unit   | Fee per Unit | Flat Fee    |\n| ----------- | ------------| -------------|------------ |\n| 0           | 2           | 0.30         | 0.00        |\n| 3           | 6           | 0.40         | 0.00        |\n| 7           | null        | 0.00         | 0.00        |\n\nApplicable for standard tariff.\n",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "firstUnit": {
                          "type": "integer"
                        },
                        "lastUnit": {
                          "type": "integer",
                          "nullable": true,
                          "example": 1
                        },
                        "feePerUnit": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.05
                        },
                        "flatFee": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true,
                          "example": 0.06
                        }
                      },
                      "required": [
                        "firstUnit"
                      ]
                    }
                  },
                  "regularUsePeriod": {
                    "type": "number",
                    "description": "In minutes. Only for the Peak power level tariff.",
                    "nullable": true
                  },
                  "averagePowerLevels": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 2,
                      "properties": {
                        "averagePowerUpToKw": {
                          "type": "number"
                        },
                        "pricePerMinute": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "averagePowerUpToKw",
                        "pricePerMinute"
                      ]
                    }
                  },
                  "peakPowerLevels": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 2,
                      "properties": {
                        "peakPowerUpToKw": {
                          "type": "number"
                        },
                        "regularPricePerMinute": {
                          "type": "number"
                        },
                        "excessUsePricePerMin": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "peakPowerUpToKw",
                        "regularPricePerMinute",
                        "excessUsePricePerMin"
                      ]
                    }
                  },
                  "timePeriods": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "minItems": 1,
                      "properties": {
                        "startTime": {
                          "type": "string",
                          "pattern": "^\\d{2}:\\d{2}$",
                          "example": "00:00",
                          "description": "The 24-hour format should be used."
                        },
                        "endTime": {
                          "type": "string",
                          "pattern": "^\\d{2}:\\d{2}$",
                          "example": "00:00",
                          "description": "The 24-hour format should be used."
                        }
                      },
                      "required": [
                        "startTime",
                        "endTime"
                      ]
                    }
                  },
                  "pricePeriods": {
                    "type": "object",
                    "properties": {
                      "connectionFeePeriods": {
                        "type": "object",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "energyFeePeriods": {
                        "type": "object",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "durationFeePeriods": {
                        "type": "object",
                        "description": "Duration fees for each time period. Applicable for standard_tod tariff.\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `idleFeePeriods`) will apply during idle periods.\n",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      },
                      "idleFeePeriods": {
                        "type": "object",
                        "description": "Idle fees for each time period. Applicable for standard_tod tariff.\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `durationFeePeriods`) will be paused.\n",
                        "properties": {
                          "fee": {
                            "type": "array",
                            "items": {
                              "type": "number"
                            }
                          }
                        }
                      }
                    }
                  },
                  "daysWhenApplied": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "specialDates": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "format": "date"
                          },
                          "example": "2022-01-30"
                        },
                        "idleFeeGracePeriodMinutes": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Idle fee grace period (min). Optional. The interpretation of this field depends on `idleFeeGracePeriodMode`:\n\n- When mode is `idle_detection` (default): The user is given this grace period after idle state is detected (no charging) to remove the vehicle, before idle fee starts applying.\n- When mode is `session_start`: This represents the minimum session duration before idle fee applies. Idle fee will not be charged until the session has been active for at least this many minutes.\n",
                          "nullable": true
                        },
                        "idlePricingPeriodInMinutes": {
                          "type": "number",
                          "enum": [
                            1,
                            15,
                            30,
                            60,
                            240,
                            360
                          ],
                          "description": "Idle fee per minute. A fee per minute that is applied during idle period (no charging).",
                          "nullable": true
                        },
                        "connectionFeeMinimumSessionDuration": {
                          "type": "integer",
                          "description": "Connection Fee Minimum Session Duration (min). Optional.",
                          "nullable": true
                        },
                        "connectionFeeMinimumSessionEnergy": {
                          "type": "number",
                          "format": "decimal",
                          "description": "Connection Fee Minimum Session Energy (kWh). Optional. Up to 5 digits after the decimal point depending on the currency precision.",
                          "nullable": true
                        },
                        "durationFeeGracePeriod": {
                          "type": "integer",
                          "description": "Duration Fee Grace Period (min). Optional.",
                          "nullable": true
                        },
                        "pricePeriodInMinutes": {
                          "type": "integer",
                          "enum": [
                            1,
                            15,
                            30,
                            60,
                            240,
                            360
                          ],
                          "description": "Charging period. In minutes. It defines the time-period for charging a fee. Example: If you select 15min then the EV-driver will be charged at the start of every 15min of EV-charging. Applicable for duration+energy and duration+energy time of day",
                          "nullable": true
                        },
                        "pricePeriods": {
                          "type": "object",
                          "minItems": 1,
                          "properties": {
                            "connectionFeePeriods": {
                              "type": "object",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "energyFeePeriods": {
                              "type": "object",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "durationFeePeriods": {
                              "type": "object",
                              "description": "Duration fees for each time period. Applicable for standard_tod tariff.\n\n**Idle period behavior:** Duration fees may be paused during idle periods depending on a system-wide setting (\"Do not apply regular duration fee during idle periods\"). When this setting is enabled (the default), only idle fees (if configured via `idleFeePeriods`) will apply during idle periods.\n",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "idleFeePeriods": {
                              "type": "object",
                              "description": "Idle fees for each time period. Applicable for standard_tod tariff.\n\nIdle fees apply when the system detects that a vehicle is no longer actively charging. When the system-wide \"Do not apply regular duration fee during idle periods\" setting is enabled (the default), only this idle fee will accumulate during idle periods -- the regular duration fee (from `durationFeePeriods`) will be paused.\n",
                              "properties": {
                                "fee": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "description": "When left empty, this means that this is the standard pricing that would be applied in general without taking into consideration the day."
                  },
                  "thresholdPriceForEnergy": {
                    "type": "number",
                    "format": "decimal",
                    "description": "Price for kWh to be considered by Optimised charging for setting the charging periods.",
                    "nullable": true
                  },
                  "priceForEnergyWhenOptimized": {
                    "type": "number",
                    "format": "decimal",
                    "nullable": true
                  },
                  "optimisedLabel": {
                    "type": "string",
                    "nullable": true
                  },
                  "durationFeeFrom": {
                    "type": "string",
                    "format": "time",
                    "nullable": true,
                    "description": "Defined start time for the application of duration fees."
                  },
                  "durationFeeTo": {
                    "type": "string",
                    "format": "time",
                    "nullable": true,
                    "description": "Defined end time for the application of duration fees."
                  },
                  "subsidyIntegrationId": {
                    "type": "integer",
                    "description": "**This property is deprecated**\n\nUse `subsidy.integrationId` instead.\n\nThe subsidy integration id that should be applied for this tariff. Only valid for Energy ToU tariffs. Please use the admin panel for the specific integration id. Optional.\n",
                    "nullable": true,
                    "deprecated": true
                  },
                  "subsidy": {
                    "type": "object",
                    "description": "Subsidy parameters for this tariff. Only applicable for Energy ToU tariffs. Omitted when no subsidy is configured.",
                    "properties": {
                      "integrationId": {
                        "type": "integer",
                        "description": "The ID of the subsidy integration that is active on the tariff (or was active when the snapshot was taken)."
                      },
                      "threshold": {
                        "type": "number",
                        "description": "The energy price threshold (in the operator's currency per kWh) above which the subsidy applies."
                      },
                      "compensationRate": {
                        "type": "number",
                        "description": "The compensation rate as a percentage (e.g., 90 for 90%)."
                      }
                    },
                    "required": [
                      "integrationId",
                      "threshold",
                      "compensationRate"
                    ]
                  },
                  "lockPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled the tariff of the charger will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for:\n  - `duration+energy time of day` - it locks duration and energy price components\n  - `energy tou` - it locks energy component only\n"
                  },
                  "lockEnergyPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled the tariff of the charger will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for `standard_tod tariff`.\n"
                  },
                  "lockDurationPriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled, the energy fee component of the tariff will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the duration of their session.\nApplicable only for `standard_tod tariff`.\n"
                  },
                  "lockIdlePriceOnSessionStart": {
                    "type": "boolean",
                    "default": false,
                    "description": "When enabled, the duration fee component of the tariff will be saved using the pricing interval when the user starts the charging session. This ensures that the price for the user will remain constant for the whole duration of their session.\nApplicable only for `standard_tod tariff`\n"
                  },
                  "stateOfChargeIdleThreshold": {
                    "nullable": true,
                    "type": "integer",
                    "enum": [
                      75,
                      80,
                      85,
                      90,
                      95,
                      100
                    ],
                    "description": "Switches the session to idle when the SoC (%) exceeds the selected value. Leave empty to use the system wide setting.\nThis option will take effect only if `Allow custom SoC (%) threshold per Tariff` is set in `Idle period detection` setting.\nThis only applies to local charge points, it does not affect sessions on roaming charge points. Leave empty to use the system wide setting.\n"
                  },
                  "averagePowerIdleThreshold": {
                    "nullable": true,
                    "type": "number",
                    "format": "decimal",
                    "minimum": 0,
                    "maximum": 999999.99,
                    "description": "Sets the session to idle state when the average kW for the past 5 minutes is below the set threshold.\nThis option will take effect only if `Allow custom power threshold per Tariff` is set in `Idle period detection` setting.\n"
                  }
                }
              },
              "stopSession": {
                "type": "object",
                "properties": {
                  "timeLimitMinutes": {
                    "type": "number",
                    "description": "Session max time. The maximum minutes a session is allowed to run. Skip for no time limit.",
                    "nullable": true
                  },
                  "stopWhenEnergyExceedsKwh": {
                    "type": "number",
                    "description": "The maximum energy (kWh) allowed per session. Skip for no limit.",
                    "nullable": true
                  },
                  "stopWhenSocExceedsPercent": {
                    "type": "integer",
                    "minimum": 70,
                    "maximum": 99,
                    "description": "Stop the session when the vehicle's reported State of Charge reaches or exceeds this value. If the charge point does not report SoC, this criterion is ignored. Accepts values between 70 and 99.",
                    "nullable": true
                  }
                }
              },
              "display": {
                "type": "object",
                "properties": {
                  "defaultPriceInformation": {
                    "type": "string",
                    "maxLength": 150,
                    "nullable": true,
                    "deprecated": true,
                    "description": "Deprecated: use the tariff group resource to manage this field."
                  },
                  "defaultPriceInformationOffline": {
                    "type": "string",
                    "maxLength": 150,
                    "nullable": true,
                    "deprecated": true,
                    "description": "Deprecated: use the tariff group resource to manage this field."
                  },
                  "priceInformation": {
                    "type": "string",
                    "nullable": true,
                    "deprecated": true,
                    "description": "**This property is deprecated. Use `priceInformationLocalized` instead.** The scalar field only carries the default-locale value and cannot round-trip multi-locale content.\n\nThe information that would be shown on the display of the charge point for users that are eligible for this tariff.\n"
                  },
                  "priceInformationLocalized": {
                    "type": "object",
                    "nullable": true,
                    "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                    "additionalProperties": {
                      "type": "string",
                      "nullable": true
                    },
                    "example": {
                      "en": "example",
                      "fr": "affaire"
                    }
                  },
                  "totalCostInformation": {
                    "type": "string",
                    "nullable": true,
                    "deprecated": true,
                    "description": "**This property is deprecated. Use `totalCostInformationLocalized` instead.** The scalar field only carries the default-locale value and cannot round-trip multi-locale content.\n\nAdditional information that would be displayed on the charge point when the session ends, along with the total fees for energy, duration and idle.\n"
                  },
                  "totalCostInformationLocalized": {
                    "type": "object",
                    "nullable": true,
                    "description": "Locales that have been created and are not provided on an update will be deleted. Please provide values in all locales that you wish to keep.",
                    "additionalProperties": {
                      "type": "string",
                      "nullable": true
                    },
                    "example": {
                      "en": "example",
                      "fr": "affaire"
                    }
                  },
                  "plainTextModeEnabled": {
                    "type": "boolean",
                    "default": false,
                    "description": "When `true`, the display text is delivered to the charge point without rich text formatting."
                  }
                }
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "tariffId",
              "status",
              "scheduledAt",
              "createdByAdminId",
              "createdAt",
              "updatedAt",
              "name",
              "type"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "taxIdentificationNumbersListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "name": {
                  "type": "string"
                },
                "lastUpdatedAt": {
                  "description": "ISO-8601 formatted date",
                  "type": "string"
                }
              },
              "required": [
                "id",
                "name"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "taxIdentificationNumberCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string"
              },
              "lastUpdatedAt": {
                "description": "ISO-8601 formatted date",
                "type": "string"
              }
            },
            "required": [
              "id",
              "name"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "taxIdentificationNumberRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string"
              },
              "lastUpdatedAt": {
                "description": "ISO-8601 formatted date",
                "type": "string"
              }
            },
            "required": [
              "id",
              "name"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "taxIdentificationNumberDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "taxIdentificationNumberUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string"
              },
              "lastUpdatedAt": {
                "description": "ISO-8601 formatted date",
                "type": "string"
              }
            },
            "required": [
              "id",
              "name"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "taxesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "name": {
                  "type": "string"
                },
                "displayName": {
                  "type": "array",
                  "nullable": true,
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "percentage": {
                  "type": "number",
                  "format": "decimal"
                },
                "taxIdentificationNumberId": {
                  "type": "integer",
                  "nullable": true
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "name",
                "percentage",
                "lastUpdatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "taxCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string"
              },
              "displayName": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "percentage": {
                "type": "number",
                "format": "decimal"
              },
              "taxIdentificationNumberId": {
                "type": "integer",
                "nullable": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "name",
              "percentage",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "taxRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string"
              },
              "displayName": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "percentage": {
                "type": "number",
                "format": "decimal"
              },
              "taxIdentificationNumberId": {
                "type": "integer",
                "nullable": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "name",
              "percentage",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "taxDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "taxUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string"
              },
              "displayName": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "percentage": {
                "type": "number",
                "format": "decimal"
              },
              "taxIdentificationNumberId": {
                "type": "integer",
                "nullable": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "name",
              "percentage",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "templatesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "name": {
                  "type": "string"
                },
                "evses": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer"
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "active",
                          "disabled",
                          "out of order"
                        ]
                      },
                      "maxPower": {
                        "type": "number",
                        "description": "Maximum power in [Wh]"
                      },
                      "dlmPhases": {
                        "nullable": true,
                        "type": "string",
                        "enum": [
                          "1",
                          "3",
                          "split"
                        ]
                      },
                      "networkId": {
                        "type": "string",
                        "description": "The OCPP evse identifier (should be consecutive numbers starting from 1)."
                      },
                      "currentType": {
                        "type": "string",
                        "enum": [
                          "ac",
                          "dc"
                        ]
                      },
                      "dlmPriority": {
                        "type": "number",
                        "description": "The priority of the EVSE in a DLM circuit. EVSEs with higher priority will receive more energy."
                      },
                      "inputVoltage": {
                        "nullable": true,
                        "type": "string",
                        "enum": [
                          "120",
                          "208",
                          "240",
                          "220-240",
                          "110-130",
                          "400",
                          "380",
                          "480",
                          "230"
                        ]
                      },
                      "tariffGroupId": {
                        "nullable": true,
                        "type": "integer"
                      },
                      "dlmMaxCurrentA": {
                        "description": "The max current (Amperes) supported by the EVSE.",
                        "nullable": true,
                        "type": "number"
                      },
                      "allowsReservation": {
                        "type": "boolean",
                        "description": "Are reservations allowed on this EVSE."
                      },
                      "dlmPhaseRotation": {
                        "description": "R stands for L1, S - for L2 and T - for L3. So for example RST = L1, L2, L3, while RTS = L1, L3, L2, etc. In the context of a Split-phase circuit, it's important to note that phase allocation will be disregarded.",
                        "nullable": true,
                        "type": "string",
                        "enum": [
                          "RST",
                          "RTS",
                          "SRT",
                          "STR",
                          "TRS",
                          "TSR"
                        ]
                      },
                      "dlmConnectedPhase": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "L1",
                          "L2",
                          "L3",
                          "L1_L2",
                          "L1_L3",
                          "L2_L3"
                        ],
                        "description": "Specifies the active line conductors used in the circuit.\n- `L1_L2` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L2_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1_L3` - Valid when `phases` = `split_phase` in electrical configuration `star` or `phases` = `single_phase` in electrical configuration `delta`\n- `L1` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L2` - Valid when `phases` = `single_phase` in electrical configuration `star`\n- `L3` - Valid when `phases` = `single_phase` in electrical configuration `star`\n"
                      },
                      "dlmEfficiencyPercent": {
                        "description": "The efficiency of the DC EVSE in %, according to the technical specifications of the charging station.",
                        "nullable": true,
                        "type": "number"
                      }
                    }
                  }
                },
                "subscriptionPlanIds": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  }
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "termsAndPoliciesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "document": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "title": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "subtitle": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "consentText": {
                      "description": "The official text displayed to the user for giving their consent.",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "locale": {
                            "type": "string",
                            "description": "valid locale"
                          },
                          "translation": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "termType": {
                      "type": "string",
                      "readOnly": true,
                      "enum": [
                        "marketing",
                        "signup",
                        "subscription",
                        "top-up"
                      ],
                      "description": "The type of term:\n- marketing: Marketing and promotional communications consent\n- signup: Initial registration terms and conditions\n- subscription: Subscription service terms\n- top-up: Top-up service terms\n"
                    },
                    "consentRequired": {
                      "type": "boolean",
                      "description": "Indicates whether explicit user consent is required for this term."
                    },
                    "consentCollection": {
                      "type": "string",
                      "enum": [
                        "explicit",
                        "automatic"
                      ],
                      "description": "Defines how consent is collected:\n- **explicit**: Requires user explicit confirmation\n- **automatic**: Assumes consent upon use\n"
                    },
                    "consentCheckboxDefaultState": {
                      "type": "boolean",
                      "description": "The default checked state for the consent checkbox in the UI."
                    },
                    "showOnSignup": {
                      "type": "boolean",
                      "description": "Indicates whether this term should be displayed during the user signup flow. Only applicable for marketing terms."
                    }
                  },
                  "required": [
                    "id",
                    "consentText",
                    "termType",
                    "consentRequired",
                    "consentCollection",
                    "consentCheckboxDefaultState"
                  ]
                },
                "validFrom": {
                  "type": "string",
                  "format": "date-time"
                },
                "summary": {
                  "type": "array",
                  "nullable": true,
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "content": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "future",
                    "active",
                    "past"
                  ]
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "operatorId",
                "document",
                "validFrom",
                "content"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "termsAndPoliciesRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "operatorId": {
            "type": "integer",
            "nullable": true,
            "description": "The ID of the operator this resource belongs to",
            "example": 1
          },
          "document": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "title": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "subtitle": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "consentText": {
                "description": "The official text displayed to the user for giving their consent.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              },
              "termType": {
                "type": "string",
                "readOnly": true,
                "enum": [
                  "marketing",
                  "signup",
                  "subscription",
                  "top-up"
                ],
                "description": "The type of term:\n- marketing: Marketing and promotional communications consent\n- signup: Initial registration terms and conditions\n- subscription: Subscription service terms\n- top-up: Top-up service terms\n"
              },
              "consentRequired": {
                "type": "boolean",
                "description": "Indicates whether explicit user consent is required for this term."
              },
              "consentCollection": {
                "type": "string",
                "enum": [
                  "explicit",
                  "automatic"
                ],
                "description": "Defines how consent is collected:\n- **explicit**: Requires user explicit confirmation\n- **automatic**: Assumes consent upon use\n"
              },
              "consentCheckboxDefaultState": {
                "type": "boolean",
                "description": "The default checked state for the consent checkbox in the UI."
              },
              "showOnSignup": {
                "type": "boolean",
                "description": "Indicates whether this term should be displayed during the user signup flow. Only applicable for marketing terms."
              }
            },
            "required": [
              "id",
              "consentText",
              "termType",
              "consentRequired",
              "consentCollection",
              "consentCheckboxDefaultState"
            ]
          },
          "validFrom": {
            "type": "string",
            "format": "date-time"
          },
          "summary": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "object",
              "properties": {
                "locale": {
                  "type": "string",
                  "description": "valid locale"
                },
                "translation": {
                  "type": "string"
                }
              }
            }
          },
          "content": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "locale": {
                  "type": "string",
                  "description": "valid locale"
                },
                "translation": {
                  "type": "string"
                }
              }
            }
          },
          "status": {
            "type": "string",
            "enum": [
              "future",
              "active",
              "past"
            ]
          },
          "lastUpdatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "ISO 8601 formatted date",
            "readOnly": true
          }
        },
        "required": [
          "id",
          "operatorId",
          "document",
          "validFrom",
          "content"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "topUpPackagesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "price": {
                  "type": "number",
                  "format": "decimal",
                  "multipleOf": 0.001
                },
                "bonus": {
                  "type": "number",
                  "format": "decimal",
                  "multipleOf": 0.001
                },
                "enabled": {
                  "type": "boolean"
                }
              },
              "required": [
                "operatorId",
                "price",
                "bonus"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "405": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "topUpPackagCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "price": {
                "type": "number",
                "format": "decimal",
                "multipleOf": 0.001
              },
              "bonus": {
                "type": "number",
                "format": "decimal",
                "multipleOf": 0.001
              },
              "enabled": {
                "type": "boolean"
              }
            },
            "required": [
              "operatorId",
              "price",
              "bonus"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "405": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "topUpPackageRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "price": {
                "type": "number",
                "format": "decimal",
                "multipleOf": 0.001
              },
              "bonus": {
                "type": "number",
                "format": "decimal",
                "multipleOf": 0.001
              },
              "enabled": {
                "type": "boolean"
              }
            },
            "required": [
              "operatorId",
              "price",
              "bonus"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "405": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "topUpPackageDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "405": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "topUpPackageUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "price": {
                "type": "number",
                "format": "decimal",
                "multipleOf": 0.001
              },
              "bonus": {
                "type": "number",
                "format": "decimal",
                "multipleOf": 0.001
              },
              "enabled": {
                "type": "boolean"
              }
            },
            "required": [
              "operatorId",
              "price",
              "bonus"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "405": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "transactionsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Transaction",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "operatorId": {
                  "type": "integer",
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "number": {
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "format": "date-time"
                },
                "userId": {
                  "type": "integer",
                  "nullable": true
                },
                "userEmail": {
                  "type": "string",
                  "format": "email"
                },
                "sessionId": {
                  "type": "integer",
                  "nullable": true
                },
                "paymentMethod": {
                  "type": "string",
                  "nullable": true,
                  "deprecated": true,
                  "description": "The description that is generated by the payment terminal. This property should be used for payment terminal integrations."
                },
                "paymentMethodId": {
                  "type": "string",
                  "description": "The ID of the payment method, as returned by the payment method listing `( Users / Payment Methods / Listing)`. For corporate billing the format is `corporate:1234` , for subscription - that is when the user has an active post-paid subscription, the format is `subscription_installment:1235`, for wallets the format is `wallet:applepay`, for bank transfers `bank_transfer:sepa` and for balance the returned value is null. When a transaction covers an ad-hoc session, no additional data can be obtained through the \"Users / Payment Methods\" endpoint.",
                  "nullable": true
                },
                "paymentProcessorId": {
                  "type": "integer",
                  "description": "Stable identifier of the payment processor integration that collected the payment. Use it for automated\nmatching and reconciliation. Present only when a payment processor integration collected the payment,\nwhich includes card payments and post-paid subscription settlements charged to a stored payment method.\nOmitted for payment terminal transactions, which identify their integration through `terminalId` and the\n`integrationId` of the payment terminal resource, and for transactions recorded before the identifier was captured.\n"
                },
                "purchaseResourceType": {
                  "type": "string",
                  "enum": [
                    "subscription_plan",
                    "topup_package",
                    "session",
                    "payment_authorisation",
                    "payment_terminal_authorisation",
                    "custom_fee",
                    "card_registration"
                  ],
                  "description": "The type of purchase the transaction is for."
                },
                "purchaseResourceId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The ID of the resource referenced by `purchaseResourceType`:\n- `session`: the ID of the charging session.\n- `topup_package`: the ID of the top-up package.\n- `subscription_plan`: the ID of the subscription plan.\n- `custom_fee`: the ID of the custom fee.\n- `card_registration`: the ID of the payment method that was tokenized by this transaction.\n- `payment_terminal_authorisation` and `payment_authorisation`: `null`.\n"
                },
                "totalAmount": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 10000000000000
                },
                "authorizedAmount": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 10000000000000,
                  "description": "The PSP-authorised ceiling for this transaction. Omitted when the transaction has no pre-authorisation amount set."
                },
                "currency": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 3,
                  "description": "The ISO 4217 3-letter code of the currency"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "pending",
                    "finalized",
                    "failed",
                    "reversed",
                    "refunded",
                    "authorized",
                    "initialized"
                  ]
                },
                "pendingReason": {
                  "type": "string",
                  "enum": [
                    "3ds_authentication",
                    "psp_processing",
                    "bank_transfer_pending",
                    "bank_transfer_processing",
                    "payment_terminal_authorization",
                    "awaiting_reconciliation",
                    "other"
                  ],
                  "description": "Reason a transaction is currently pending. Available only while `status` is `pending`; omitted once the transaction reaches a terminal status. The property may also be absent on a pending transaction when no specific reason has been recorded — for example legacy transactions created before the enum rolled out to all PSPs, or transactions handled by a payment service provider that does not yet report a pending reason.\n- **3ds_authentication**: Transaction requires 3D Secure verification from the user\n- **psp_processing**: Payment processor is processing the transaction\n- **bank_transfer_pending**: User needs to complete the bank transfer redirect\n- **bank_transfer_processing**: Bank transfer initiated, awaiting confirmation\n- **payment_terminal_authorization**: Waiting for payment terminal authorization\n- **awaiting_reconciliation**: The payment is handled by a payment terminal on the charge point, and the transaction is waiting to be reconciled with the amount that terminal settles. The amount currently on the transaction is provisional until reconciliation completes.\n- **other**: Pending but the reason does not fit any of the defined categories\n",
                  "example": "3ds_authentication"
                },
                "ref": {
                  "type": "string",
                  "description": "Reference to the payment processor or payment terminal where more information about\nthe transaction could be checked. It is the primary reference for the payment and is\nupdated as the payment progresses through authorisation and capture.\n"
                },
                "bankMessage": {
                  "type": "string"
                },
                "failureReason": {
                  "type": "string",
                  "nullable": true
                },
                "invoiceId": {
                  "type": "integer",
                  "nullable": true
                },
                "invoiceNo": {
                  "deprecated": true,
                  "type": "string",
                  "nullable": true
                },
                "receiptId": {
                  "type": "integer",
                  "nullable": true
                },
                "billingType": {
                  "type": "string",
                  "description": "The type of billing used for the transaction. Internal transactions are processed in our system, while external transactions are billed externally.\nAutomatically set to `external` for transactions created against sessions initiated over OCPP (local payment terminal, RFID, plug-and-charge).\n",
                  "enum": [
                    "internal",
                    "external"
                  ]
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "finalizedAt": {
                  "type": "string",
                  "nullable": true,
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "terminalId": {
                  "type": "integer",
                  "description": "The ID of the payment terminal when such is used",
                  "nullable": true
                },
                "voucherId": {
                  "type": "integer",
                  "description": "Returned only if the paymentMethodId property is null, this is the id of the balance voucher that paid the transaction"
                },
                "subscriptionBillingPeriodId": {
                  "type": "integer",
                  "description": "The ID of the subscription billing period this transaction belongs to. Present on both credit-sale transactions (session fees, subscription fees) and settlement payment transactions."
                },
                "settledByTransactionId": {
                  "type": "integer",
                  "description": "The ID of the settlement transaction that paid for this obligation. Present only on credit-sale transactions (session fees, base fees, charger fees) that have been settled."
                },
                "cardDetails": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "deprecated": true,
                      "description": "**This property is deprecated. Use `cardNetwork` instead.**\n\nCard brand\n",
                      "nullable": true,
                      "enum": [
                        "visa",
                        "mastercard",
                        "paypal",
                        "maestro",
                        "amex",
                        "bancontact",
                        "cartes_bancaires",
                        "diners_club",
                        "discover",
                        "interac",
                        "jcb",
                        "mada",
                        "visa_electron",
                        "unknown"
                      ],
                      "x-enumDescriptions": {
                        "bancontact": "Bancontact",
                        "cartes_bancaires": "Cartes Bancaires",
                        "diners_club": "Diners Club",
                        "discover": "Discover",
                        "interac": "Interac",
                        "jcb": "JCB",
                        "mada": "MADA",
                        "visa_electron": "Visa Electron"
                      }
                    },
                    "cardNetwork": {
                      "type": "string",
                      "description": "Card network. Replaces the deprecated `type`.",
                      "enum": [
                        "visa",
                        "mastercard",
                        "paypal",
                        "maestro",
                        "amex",
                        "bancontact",
                        "cartes_bancaires",
                        "diners_club",
                        "discover",
                        "interac",
                        "jcb",
                        "mada",
                        "visa_electron",
                        "unknown"
                      ],
                      "x-enumDescriptions": {
                        "bancontact": "Bancontact",
                        "cartes_bancaires": "Cartes Bancaires",
                        "diners_club": "Diners Club",
                        "discover": "Discover",
                        "interac": "Interac",
                        "jcb": "JCB",
                        "mada": "MADA",
                        "visa_electron": "Visa Electron"
                      }
                    },
                    "last4": {
                      "type": "string",
                      "description": "Card number last 4 digits",
                      "minLength": 4,
                      "maxLength": 4,
                      "nullable": true
                    },
                    "expMonth": {
                      "type": "string",
                      "description": "Card expiration month",
                      "nullable": true
                    },
                    "expYear": {
                      "type": "string",
                      "description": "Card expiration year",
                      "nullable": true
                    },
                    "token": {
                      "type": "string",
                      "description": "Card token",
                      "nullable": true
                    },
                    "cardType": {
                      "type": "string",
                      "description": "Card category.\n\nAllowed values:\n- `credit` - Credit card.\n- `debit` - Debit card.\n- `prepaid` - Prepaid card.\n",
                      "enum": [
                        "credit",
                        "debit",
                        "prepaid"
                      ]
                    },
                    "bin": {
                      "type": "string",
                      "description": "Bank identification number recorded for this transaction (first 6-8 digits)."
                    },
                    "fingerprint": {
                      "type": "string",
                      "description": "Unique card fingerprint recorded for this transaction for cross-channel and cross-PSP card identification. Carries the Payment Account Reference (PAR) where the PSP provides it."
                    },
                    "acquirerName": {
                      "type": "string",
                      "description": "Name of the acquiring bank recorded for this transaction."
                    },
                    "issuerName": {
                      "type": "string",
                      "description": "Name of the card issuing bank recorded for this transaction."
                    },
                    "issuerCode": {
                      "type": "string",
                      "description": "Code of the card issuing bank recorded for this transaction."
                    },
                    "tokenizationMethod": {
                      "type": "string",
                      "enum": [
                        "apple_pay",
                        "google_pay",
                        "masterpass",
                        "visa_checkout",
                        "samsung_pay",
                        "amex_express_checkout",
                        "twint"
                      ],
                      "description": "The tokenization method used to create the payment method.\nThis field indicates if the card was tokenized through a digital wallet service.\nOnly present when the payment method was created using a supported tokenization method.\n",
                      "x-enumDescriptions": {
                        "apple_pay": "Apple Pay tokenization",
                        "google_pay": "Google Pay tokenization",
                        "masterpass": "Masterpass tokenization",
                        "visa_checkout": "Visa Checkout tokenization",
                        "samsung_pay": "Samsung Pay tokenization",
                        "amex_express_checkout": "American Express Express Checkout tokenization",
                        "twint": "TWINT tokenization"
                      }
                    }
                  }
                },
                "paymentMetadata": {
                  "type": "object",
                  "description": "Regulatory payment metadata captured from the payment source (terminal or online).\nOmitted when no metadata has been recorded for this transaction.\n",
                  "properties": {
                    "applicationIdentifier": {
                      "type": "string",
                      "description": "Application Identifier (AID) from the card chip."
                    },
                    "terminalIdentifier": {
                      "type": "string",
                      "description": "Terminal ID configured on the payment device."
                    },
                    "merchantIdentifier": {
                      "type": "string",
                      "description": "Merchant ID assigned by the acquirer."
                    },
                    "authorisationCode": {
                      "type": "string",
                      "description": "Authorisation code from the issuer/acquirer."
                    },
                    "acquirerIdentifier": {
                      "type": "string",
                      "description": "Acquirer ID identifying the acquiring bank."
                    },
                    "cardholderVerificationMethod": {
                      "description": "How the cardholder was verified.",
                      "type": "string",
                      "enum": [
                        "no_cvm",
                        "signature",
                        "online_pin",
                        "offline_pin",
                        "consumer_device",
                        "online_pin_and_signature",
                        "offline_pin_and_signature"
                      ],
                      "x-enumDescriptions": {
                        "no_cvm": "No cardholder verification was performed, for example a low-value contactless tap below the verification limit.",
                        "signature": "Cardholder verified by signature on the receipt.",
                        "online_pin": "PIN entered at the terminal and verified online by the card issuer.",
                        "offline_pin": "PIN entered at the terminal and verified offline by the card chip.",
                        "consumer_device": "Cardholder verified on their own device, for example a phone biometric or passcode (CDCVM).",
                        "online_pin_and_signature": "Cardholder verified by both an online-verified PIN and a signature.",
                        "offline_pin_and_signature": "Cardholder verified by both an offline-verified PIN and a signature."
                      }
                    }
                  }
                },
                "paymentOrderReference": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "An additional reference for the same payment, written once by whichever system took the\npayment and not changed as the payment progresses — either issued by the payment provider\nor supplied to the provider by the merchant. Recorded so the transaction can be reconciled\nagainst the provider's own reports.\nOmitted when no payment order reference has been recorded for this transaction.\n"
                }
              },
              "required": [
                "id",
                "operatorId",
                "number",
                "date",
                "userId",
                "sessionId",
                "ref",
                "currency"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "400": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "transactionsCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Transaction",
            "properties": {
              "id": {
                "type": "integer"
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "number": {
                "type": "string",
                "nullable": true
              },
              "date": {
                "type": "string",
                "format": "date-time"
              },
              "userId": {
                "type": "integer",
                "nullable": true
              },
              "userEmail": {
                "type": "string",
                "format": "email"
              },
              "sessionId": {
                "type": "integer",
                "nullable": true
              },
              "paymentMethod": {
                "type": "string",
                "nullable": true,
                "deprecated": true,
                "description": "The description that is generated by the payment terminal. This property should be used for payment terminal integrations."
              },
              "paymentMethodId": {
                "type": "string",
                "description": "The ID of the payment method, as returned by the payment method listing `( Users / Payment Methods / Listing)`. For corporate billing the format is `corporate:1234` , for subscription - that is when the user has an active post-paid subscription, the format is `subscription_installment:1235`, for wallets the format is `wallet:applepay`, for bank transfers `bank_transfer:sepa` and for balance the returned value is null. When a transaction covers an ad-hoc session, no additional data can be obtained through the \"Users / Payment Methods\" endpoint.",
                "nullable": true
              },
              "paymentProcessorId": {
                "type": "integer",
                "description": "Stable identifier of the payment processor integration that collected the payment. Use it for automated\nmatching and reconciliation. Present only when a payment processor integration collected the payment,\nwhich includes card payments and post-paid subscription settlements charged to a stored payment method.\nOmitted for payment terminal transactions, which identify their integration through `terminalId` and the\n`integrationId` of the payment terminal resource, and for transactions recorded before the identifier was captured.\n"
              },
              "purchaseResourceType": {
                "type": "string",
                "enum": [
                  "subscription_plan",
                  "topup_package",
                  "session",
                  "payment_authorisation",
                  "payment_terminal_authorisation",
                  "custom_fee",
                  "card_registration"
                ],
                "description": "The type of purchase the transaction is for."
              },
              "purchaseResourceId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the resource referenced by `purchaseResourceType`:\n- `session`: the ID of the charging session.\n- `topup_package`: the ID of the top-up package.\n- `subscription_plan`: the ID of the subscription plan.\n- `custom_fee`: the ID of the custom fee.\n- `card_registration`: the ID of the payment method that was tokenized by this transaction.\n- `payment_terminal_authorisation` and `payment_authorisation`: `null`.\n"
              },
              "totalAmount": {
                "type": "number",
                "minimum": 0,
                "maximum": 10000000000000
              },
              "authorizedAmount": {
                "type": "number",
                "minimum": 0,
                "maximum": 10000000000000,
                "description": "The PSP-authorised ceiling for this transaction. Omitted when the transaction has no pre-authorisation amount set."
              },
              "currency": {
                "type": "string",
                "minLength": 3,
                "maxLength": 3,
                "description": "The ISO 4217 3-letter code of the currency"
              },
              "status": {
                "type": "string",
                "enum": [
                  "pending",
                  "finalized",
                  "failed",
                  "reversed",
                  "refunded",
                  "authorized",
                  "initialized"
                ]
              },
              "pendingReason": {
                "type": "string",
                "enum": [
                  "3ds_authentication",
                  "psp_processing",
                  "bank_transfer_pending",
                  "bank_transfer_processing",
                  "payment_terminal_authorization",
                  "awaiting_reconciliation",
                  "other"
                ],
                "description": "Reason a transaction is currently pending. Available only while `status` is `pending`; omitted once the transaction reaches a terminal status. The property may also be absent on a pending transaction when no specific reason has been recorded — for example legacy transactions created before the enum rolled out to all PSPs, or transactions handled by a payment service provider that does not yet report a pending reason.\n- **3ds_authentication**: Transaction requires 3D Secure verification from the user\n- **psp_processing**: Payment processor is processing the transaction\n- **bank_transfer_pending**: User needs to complete the bank transfer redirect\n- **bank_transfer_processing**: Bank transfer initiated, awaiting confirmation\n- **payment_terminal_authorization**: Waiting for payment terminal authorization\n- **awaiting_reconciliation**: The payment is handled by a payment terminal on the charge point, and the transaction is waiting to be reconciled with the amount that terminal settles. The amount currently on the transaction is provisional until reconciliation completes.\n- **other**: Pending but the reason does not fit any of the defined categories\n",
                "example": "3ds_authentication"
              },
              "ref": {
                "type": "string",
                "description": "Reference to the payment processor or payment terminal where more information about\nthe transaction could be checked. It is the primary reference for the payment and is\nupdated as the payment progresses through authorisation and capture.\n"
              },
              "bankMessage": {
                "type": "string"
              },
              "failureReason": {
                "type": "string",
                "nullable": true
              },
              "invoiceId": {
                "type": "integer",
                "nullable": true
              },
              "invoiceNo": {
                "deprecated": true,
                "type": "string",
                "nullable": true
              },
              "receiptId": {
                "type": "integer",
                "nullable": true
              },
              "billingType": {
                "type": "string",
                "description": "The type of billing used for the transaction. Internal transactions are processed in our system, while external transactions are billed externally.\nAutomatically set to `external` for transactions created against sessions initiated over OCPP (local payment terminal, RFID, plug-and-charge).\n",
                "enum": [
                  "internal",
                  "external"
                ]
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "finalizedAt": {
                "type": "string",
                "nullable": true,
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "terminalId": {
                "type": "integer",
                "description": "The ID of the payment terminal when such is used",
                "nullable": true
              },
              "voucherId": {
                "type": "integer",
                "description": "Returned only if the paymentMethodId property is null, this is the id of the balance voucher that paid the transaction"
              },
              "subscriptionBillingPeriodId": {
                "type": "integer",
                "description": "The ID of the subscription billing period this transaction belongs to. Present on both credit-sale transactions (session fees, subscription fees) and settlement payment transactions."
              },
              "settledByTransactionId": {
                "type": "integer",
                "description": "The ID of the settlement transaction that paid for this obligation. Present only on credit-sale transactions (session fees, base fees, charger fees) that have been settled."
              },
              "cardDetails": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "deprecated": true,
                    "description": "**This property is deprecated. Use `cardNetwork` instead.**\n\nCard brand\n",
                    "nullable": true,
                    "enum": [
                      "visa",
                      "mastercard",
                      "paypal",
                      "maestro",
                      "amex",
                      "bancontact",
                      "cartes_bancaires",
                      "diners_club",
                      "discover",
                      "interac",
                      "jcb",
                      "mada",
                      "visa_electron",
                      "unknown"
                    ],
                    "x-enumDescriptions": {
                      "bancontact": "Bancontact",
                      "cartes_bancaires": "Cartes Bancaires",
                      "diners_club": "Diners Club",
                      "discover": "Discover",
                      "interac": "Interac",
                      "jcb": "JCB",
                      "mada": "MADA",
                      "visa_electron": "Visa Electron"
                    }
                  },
                  "cardNetwork": {
                    "type": "string",
                    "description": "Card network. Replaces the deprecated `type`.",
                    "enum": [
                      "visa",
                      "mastercard",
                      "paypal",
                      "maestro",
                      "amex",
                      "bancontact",
                      "cartes_bancaires",
                      "diners_club",
                      "discover",
                      "interac",
                      "jcb",
                      "mada",
                      "visa_electron",
                      "unknown"
                    ],
                    "x-enumDescriptions": {
                      "bancontact": "Bancontact",
                      "cartes_bancaires": "Cartes Bancaires",
                      "diners_club": "Diners Club",
                      "discover": "Discover",
                      "interac": "Interac",
                      "jcb": "JCB",
                      "mada": "MADA",
                      "visa_electron": "Visa Electron"
                    }
                  },
                  "last4": {
                    "type": "string",
                    "description": "Card number last 4 digits",
                    "minLength": 4,
                    "maxLength": 4,
                    "nullable": true
                  },
                  "expMonth": {
                    "type": "string",
                    "description": "Card expiration month",
                    "nullable": true
                  },
                  "expYear": {
                    "type": "string",
                    "description": "Card expiration year",
                    "nullable": true
                  },
                  "token": {
                    "type": "string",
                    "description": "Card token",
                    "nullable": true
                  },
                  "cardType": {
                    "type": "string",
                    "description": "Card category.\n\nAllowed values:\n- `credit` - Credit card.\n- `debit` - Debit card.\n- `prepaid` - Prepaid card.\n",
                    "enum": [
                      "credit",
                      "debit",
                      "prepaid"
                    ]
                  },
                  "bin": {
                    "type": "string",
                    "description": "Bank identification number recorded for this transaction (first 6-8 digits)."
                  },
                  "fingerprint": {
                    "type": "string",
                    "description": "Unique card fingerprint recorded for this transaction for cross-channel and cross-PSP card identification. Carries the Payment Account Reference (PAR) where the PSP provides it."
                  },
                  "acquirerName": {
                    "type": "string",
                    "description": "Name of the acquiring bank recorded for this transaction."
                  },
                  "issuerName": {
                    "type": "string",
                    "description": "Name of the card issuing bank recorded for this transaction."
                  },
                  "issuerCode": {
                    "type": "string",
                    "description": "Code of the card issuing bank recorded for this transaction."
                  },
                  "tokenizationMethod": {
                    "type": "string",
                    "enum": [
                      "apple_pay",
                      "google_pay",
                      "masterpass",
                      "visa_checkout",
                      "samsung_pay",
                      "amex_express_checkout",
                      "twint"
                    ],
                    "description": "The tokenization method used to create the payment method.\nThis field indicates if the card was tokenized through a digital wallet service.\nOnly present when the payment method was created using a supported tokenization method.\n",
                    "x-enumDescriptions": {
                      "apple_pay": "Apple Pay tokenization",
                      "google_pay": "Google Pay tokenization",
                      "masterpass": "Masterpass tokenization",
                      "visa_checkout": "Visa Checkout tokenization",
                      "samsung_pay": "Samsung Pay tokenization",
                      "amex_express_checkout": "American Express Express Checkout tokenization",
                      "twint": "TWINT tokenization"
                    }
                  }
                }
              },
              "paymentMetadata": {
                "type": "object",
                "description": "Regulatory payment metadata captured from the payment source (terminal or online).\nOmitted when no metadata has been recorded for this transaction.\n",
                "properties": {
                  "applicationIdentifier": {
                    "type": "string",
                    "description": "Application Identifier (AID) from the card chip."
                  },
                  "terminalIdentifier": {
                    "type": "string",
                    "description": "Terminal ID configured on the payment device."
                  },
                  "merchantIdentifier": {
                    "type": "string",
                    "description": "Merchant ID assigned by the acquirer."
                  },
                  "authorisationCode": {
                    "type": "string",
                    "description": "Authorisation code from the issuer/acquirer."
                  },
                  "acquirerIdentifier": {
                    "type": "string",
                    "description": "Acquirer ID identifying the acquiring bank."
                  },
                  "cardholderVerificationMethod": {
                    "description": "How the cardholder was verified.",
                    "type": "string",
                    "enum": [
                      "no_cvm",
                      "signature",
                      "online_pin",
                      "offline_pin",
                      "consumer_device",
                      "online_pin_and_signature",
                      "offline_pin_and_signature"
                    ],
                    "x-enumDescriptions": {
                      "no_cvm": "No cardholder verification was performed, for example a low-value contactless tap below the verification limit.",
                      "signature": "Cardholder verified by signature on the receipt.",
                      "online_pin": "PIN entered at the terminal and verified online by the card issuer.",
                      "offline_pin": "PIN entered at the terminal and verified offline by the card chip.",
                      "consumer_device": "Cardholder verified on their own device, for example a phone biometric or passcode (CDCVM).",
                      "online_pin_and_signature": "Cardholder verified by both an online-verified PIN and a signature.",
                      "offline_pin_and_signature": "Cardholder verified by both an offline-verified PIN and a signature."
                    }
                  }
                }
              },
              "paymentOrderReference": {
                "type": "string",
                "maxLength": 255,
                "description": "An additional reference for the same payment, written once by whichever system took the\npayment and not changed as the payment progresses — either issued by the payment provider\nor supplied to the provider by the merchant. Recorded so the transaction can be reconciled\nagainst the provider's own reports.\nOmitted when no payment order reference has been recorded for this transaction.\n"
              }
            },
            "required": [
              "id",
              "operatorId",
              "number",
              "date",
              "userId",
              "sessionId",
              "ref",
              "currency"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "transactionRead": {
    "200": {
      "schema": {
        "type": "object",
        "description": "Transaction",
        "properties": {
          "id": {
            "type": "integer"
          },
          "operatorId": {
            "type": "integer",
            "description": "The ID of the operator this resource belongs to",
            "example": 1
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "userId": {
            "type": "integer",
            "nullable": true
          },
          "userEmail": {
            "type": "string",
            "format": "email"
          },
          "sessionId": {
            "type": "integer",
            "nullable": true
          },
          "paymentMethod": {
            "type": "string",
            "nullable": true,
            "deprecated": true,
            "description": "The description that is generated by the payment terminal. This property should be used for payment terminal integrations."
          },
          "paymentMethodId": {
            "type": "string",
            "description": "The ID of the payment method, as returned by the payment method listing `( Users / Payment Methods / Listing)`. For corporate billing the format is `corporate:1234` , for subscription - that is when the user has an active post-paid subscription, the format is `subscription_installment:1235`, for wallets the format is `wallet:applepay`, for bank transfers `bank_transfer:sepa` and for balance the returned value is null. When a transaction covers an ad-hoc session, no additional data can be obtained through the \"Users / Payment Methods\" endpoint.",
            "nullable": true
          },
          "paymentProcessorId": {
            "type": "integer",
            "description": "Stable identifier of the payment processor integration that collected the payment. Use it for automated\nmatching and reconciliation. Present only when a payment processor integration collected the payment,\nwhich includes card payments and post-paid subscription settlements charged to a stored payment method.\nOmitted for payment terminal transactions, which identify their integration through `terminalId` and the\n`integrationId` of the payment terminal resource, and for transactions recorded before the identifier was captured.\n"
          },
          "purchaseResourceType": {
            "type": "string",
            "enum": [
              "subscription_plan",
              "topup_package",
              "session",
              "payment_authorisation",
              "payment_terminal_authorisation",
              "custom_fee",
              "card_registration"
            ],
            "description": "The type of purchase the transaction is for."
          },
          "purchaseResourceId": {
            "type": "integer",
            "nullable": true,
            "description": "The ID of the resource referenced by `purchaseResourceType`:\n- `session`: the ID of the charging session.\n- `topup_package`: the ID of the top-up package.\n- `subscription_plan`: the ID of the subscription plan.\n- `custom_fee`: the ID of the custom fee.\n- `card_registration`: the ID of the payment method that was tokenized by this transaction.\n- `payment_terminal_authorisation` and `payment_authorisation`: `null`.\n"
          },
          "totalAmount": {
            "type": "number",
            "minimum": 0,
            "maximum": 10000000000000
          },
          "authorizedAmount": {
            "type": "number",
            "minimum": 0,
            "maximum": 10000000000000,
            "description": "The PSP-authorised ceiling for this transaction. Omitted when the transaction has no pre-authorisation amount set."
          },
          "currency": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3,
            "description": "The ISO 4217 3-letter code of the currency"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "finalized",
              "failed",
              "reversed",
              "refunded",
              "authorized",
              "initialized"
            ]
          },
          "pendingReason": {
            "type": "string",
            "enum": [
              "3ds_authentication",
              "psp_processing",
              "bank_transfer_pending",
              "bank_transfer_processing",
              "payment_terminal_authorization",
              "awaiting_reconciliation",
              "other"
            ],
            "description": "Reason a transaction is currently pending. Available only while `status` is `pending`; omitted once the transaction reaches a terminal status. The property may also be absent on a pending transaction when no specific reason has been recorded — for example legacy transactions created before the enum rolled out to all PSPs, or transactions handled by a payment service provider that does not yet report a pending reason.\n- **3ds_authentication**: Transaction requires 3D Secure verification from the user\n- **psp_processing**: Payment processor is processing the transaction\n- **bank_transfer_pending**: User needs to complete the bank transfer redirect\n- **bank_transfer_processing**: Bank transfer initiated, awaiting confirmation\n- **payment_terminal_authorization**: Waiting for payment terminal authorization\n- **awaiting_reconciliation**: The payment is handled by a payment terminal on the charge point, and the transaction is waiting to be reconciled with the amount that terminal settles. The amount currently on the transaction is provisional until reconciliation completes.\n- **other**: Pending but the reason does not fit any of the defined categories\n",
            "example": "3ds_authentication"
          },
          "ref": {
            "type": "string",
            "description": "Reference to the payment processor or payment terminal where more information about\nthe transaction could be checked. It is the primary reference for the payment and is\nupdated as the payment progresses through authorisation and capture.\n"
          },
          "bankMessage": {
            "type": "string"
          },
          "failureReason": {
            "type": "string",
            "nullable": true
          },
          "invoiceId": {
            "type": "integer",
            "nullable": true
          },
          "invoiceNo": {
            "deprecated": true,
            "type": "string",
            "nullable": true
          },
          "receiptId": {
            "type": "integer",
            "nullable": true
          },
          "billingType": {
            "type": "string",
            "description": "The type of billing used for the transaction. Internal transactions are processed in our system, while external transactions are billed externally.\nAutomatically set to `external` for transactions created against sessions initiated over OCPP (local payment terminal, RFID, plug-and-charge).\n",
            "enum": [
              "internal",
              "external"
            ]
          },
          "lastUpdatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "ISO 8601 formatted date",
            "readOnly": true
          },
          "finalizedAt": {
            "type": "string",
            "nullable": true,
            "format": "date-time",
            "description": "ISO 8601 formatted date",
            "readOnly": true
          },
          "terminalId": {
            "type": "integer",
            "description": "The ID of the payment terminal when such is used",
            "nullable": true
          },
          "voucherId": {
            "type": "integer",
            "description": "Returned only if the paymentMethodId property is null, this is the id of the balance voucher that paid the transaction"
          },
          "subscriptionBillingPeriodId": {
            "type": "integer",
            "description": "The ID of the subscription billing period this transaction belongs to. Present on both credit-sale transactions (session fees, subscription fees) and settlement payment transactions."
          },
          "settledByTransactionId": {
            "type": "integer",
            "description": "The ID of the settlement transaction that paid for this obligation. Present only on credit-sale transactions (session fees, base fees, charger fees) that have been settled."
          },
          "cardDetails": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "deprecated": true,
                "description": "**This property is deprecated. Use `cardNetwork` instead.**\n\nCard brand\n",
                "nullable": true,
                "enum": [
                  "visa",
                  "mastercard",
                  "paypal",
                  "maestro",
                  "amex",
                  "bancontact",
                  "cartes_bancaires",
                  "diners_club",
                  "discover",
                  "interac",
                  "jcb",
                  "mada",
                  "visa_electron",
                  "unknown"
                ],
                "x-enumDescriptions": {
                  "bancontact": "Bancontact",
                  "cartes_bancaires": "Cartes Bancaires",
                  "diners_club": "Diners Club",
                  "discover": "Discover",
                  "interac": "Interac",
                  "jcb": "JCB",
                  "mada": "MADA",
                  "visa_electron": "Visa Electron"
                }
              },
              "cardNetwork": {
                "type": "string",
                "description": "Card network. Replaces the deprecated `type`.",
                "enum": [
                  "visa",
                  "mastercard",
                  "paypal",
                  "maestro",
                  "amex",
                  "bancontact",
                  "cartes_bancaires",
                  "diners_club",
                  "discover",
                  "interac",
                  "jcb",
                  "mada",
                  "visa_electron",
                  "unknown"
                ],
                "x-enumDescriptions": {
                  "bancontact": "Bancontact",
                  "cartes_bancaires": "Cartes Bancaires",
                  "diners_club": "Diners Club",
                  "discover": "Discover",
                  "interac": "Interac",
                  "jcb": "JCB",
                  "mada": "MADA",
                  "visa_electron": "Visa Electron"
                }
              },
              "last4": {
                "type": "string",
                "description": "Card number last 4 digits",
                "minLength": 4,
                "maxLength": 4,
                "nullable": true
              },
              "expMonth": {
                "type": "string",
                "description": "Card expiration month",
                "nullable": true
              },
              "expYear": {
                "type": "string",
                "description": "Card expiration year",
                "nullable": true
              },
              "token": {
                "type": "string",
                "description": "Card token",
                "nullable": true
              },
              "cardType": {
                "type": "string",
                "description": "Card category.\n\nAllowed values:\n- `credit` - Credit card.\n- `debit` - Debit card.\n- `prepaid` - Prepaid card.\n",
                "enum": [
                  "credit",
                  "debit",
                  "prepaid"
                ]
              },
              "bin": {
                "type": "string",
                "description": "Bank identification number recorded for this transaction (first 6-8 digits)."
              },
              "fingerprint": {
                "type": "string",
                "description": "Unique card fingerprint recorded for this transaction for cross-channel and cross-PSP card identification. Carries the Payment Account Reference (PAR) where the PSP provides it."
              },
              "acquirerName": {
                "type": "string",
                "description": "Name of the acquiring bank recorded for this transaction."
              },
              "issuerName": {
                "type": "string",
                "description": "Name of the card issuing bank recorded for this transaction."
              },
              "issuerCode": {
                "type": "string",
                "description": "Code of the card issuing bank recorded for this transaction."
              },
              "tokenizationMethod": {
                "type": "string",
                "enum": [
                  "apple_pay",
                  "google_pay",
                  "masterpass",
                  "visa_checkout",
                  "samsung_pay",
                  "amex_express_checkout",
                  "twint"
                ],
                "description": "The tokenization method used to create the payment method.\nThis field indicates if the card was tokenized through a digital wallet service.\nOnly present when the payment method was created using a supported tokenization method.\n",
                "x-enumDescriptions": {
                  "apple_pay": "Apple Pay tokenization",
                  "google_pay": "Google Pay tokenization",
                  "masterpass": "Masterpass tokenization",
                  "visa_checkout": "Visa Checkout tokenization",
                  "samsung_pay": "Samsung Pay tokenization",
                  "amex_express_checkout": "American Express Express Checkout tokenization",
                  "twint": "TWINT tokenization"
                }
              }
            }
          },
          "paymentMetadata": {
            "type": "object",
            "description": "Regulatory payment metadata captured from the payment source (terminal or online).\nOmitted when no metadata has been recorded for this transaction.\n",
            "properties": {
              "applicationIdentifier": {
                "type": "string",
                "description": "Application Identifier (AID) from the card chip."
              },
              "terminalIdentifier": {
                "type": "string",
                "description": "Terminal ID configured on the payment device."
              },
              "merchantIdentifier": {
                "type": "string",
                "description": "Merchant ID assigned by the acquirer."
              },
              "authorisationCode": {
                "type": "string",
                "description": "Authorisation code from the issuer/acquirer."
              },
              "acquirerIdentifier": {
                "type": "string",
                "description": "Acquirer ID identifying the acquiring bank."
              },
              "cardholderVerificationMethod": {
                "description": "How the cardholder was verified.",
                "type": "string",
                "enum": [
                  "no_cvm",
                  "signature",
                  "online_pin",
                  "offline_pin",
                  "consumer_device",
                  "online_pin_and_signature",
                  "offline_pin_and_signature"
                ],
                "x-enumDescriptions": {
                  "no_cvm": "No cardholder verification was performed, for example a low-value contactless tap below the verification limit.",
                  "signature": "Cardholder verified by signature on the receipt.",
                  "online_pin": "PIN entered at the terminal and verified online by the card issuer.",
                  "offline_pin": "PIN entered at the terminal and verified offline by the card chip.",
                  "consumer_device": "Cardholder verified on their own device, for example a phone biometric or passcode (CDCVM).",
                  "online_pin_and_signature": "Cardholder verified by both an online-verified PIN and a signature.",
                  "offline_pin_and_signature": "Cardholder verified by both an offline-verified PIN and a signature."
                }
              }
            }
          },
          "paymentOrderReference": {
            "type": "string",
            "maxLength": 255,
            "description": "An additional reference for the same payment, written once by whichever system took the\npayment and not changed as the payment progresses — either issued by the payment provider\nor supplied to the provider by the merchant. Recorded so the transaction can be reconciled\nagainst the provider's own reports.\nOmitted when no payment order reference has been recorded for this transaction.\n"
          }
        },
        "required": [
          "id",
          "operatorId",
          "number",
          "date",
          "userId",
          "sessionId",
          "ref",
          "currency"
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "transactionUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Transaction",
            "properties": {
              "id": {
                "type": "integer"
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "number": {
                "type": "string",
                "nullable": true
              },
              "date": {
                "type": "string",
                "format": "date-time"
              },
              "userId": {
                "type": "integer",
                "nullable": true
              },
              "userEmail": {
                "type": "string",
                "format": "email"
              },
              "sessionId": {
                "type": "integer",
                "nullable": true
              },
              "paymentMethod": {
                "type": "string",
                "nullable": true,
                "deprecated": true,
                "description": "The description that is generated by the payment terminal. This property should be used for payment terminal integrations."
              },
              "paymentMethodId": {
                "type": "string",
                "description": "The ID of the payment method, as returned by the payment method listing `( Users / Payment Methods / Listing)`. For corporate billing the format is `corporate:1234` , for subscription - that is when the user has an active post-paid subscription, the format is `subscription_installment:1235`, for wallets the format is `wallet:applepay`, for bank transfers `bank_transfer:sepa` and for balance the returned value is null. When a transaction covers an ad-hoc session, no additional data can be obtained through the \"Users / Payment Methods\" endpoint.",
                "nullable": true
              },
              "paymentProcessorId": {
                "type": "integer",
                "description": "Stable identifier of the payment processor integration that collected the payment. Use it for automated\nmatching and reconciliation. Present only when a payment processor integration collected the payment,\nwhich includes card payments and post-paid subscription settlements charged to a stored payment method.\nOmitted for payment terminal transactions, which identify their integration through `terminalId` and the\n`integrationId` of the payment terminal resource, and for transactions recorded before the identifier was captured.\n"
              },
              "purchaseResourceType": {
                "type": "string",
                "enum": [
                  "subscription_plan",
                  "topup_package",
                  "session",
                  "payment_authorisation",
                  "payment_terminal_authorisation",
                  "custom_fee",
                  "card_registration"
                ],
                "description": "The type of purchase the transaction is for."
              },
              "purchaseResourceId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the resource referenced by `purchaseResourceType`:\n- `session`: the ID of the charging session.\n- `topup_package`: the ID of the top-up package.\n- `subscription_plan`: the ID of the subscription plan.\n- `custom_fee`: the ID of the custom fee.\n- `card_registration`: the ID of the payment method that was tokenized by this transaction.\n- `payment_terminal_authorisation` and `payment_authorisation`: `null`.\n"
              },
              "totalAmount": {
                "type": "number",
                "minimum": 0,
                "maximum": 10000000000000
              },
              "authorizedAmount": {
                "type": "number",
                "minimum": 0,
                "maximum": 10000000000000,
                "description": "The PSP-authorised ceiling for this transaction. Omitted when the transaction has no pre-authorisation amount set."
              },
              "currency": {
                "type": "string",
                "minLength": 3,
                "maxLength": 3,
                "description": "The ISO 4217 3-letter code of the currency"
              },
              "status": {
                "type": "string",
                "enum": [
                  "pending",
                  "finalized",
                  "failed",
                  "reversed",
                  "refunded",
                  "authorized",
                  "initialized"
                ]
              },
              "pendingReason": {
                "type": "string",
                "enum": [
                  "3ds_authentication",
                  "psp_processing",
                  "bank_transfer_pending",
                  "bank_transfer_processing",
                  "payment_terminal_authorization",
                  "awaiting_reconciliation",
                  "other"
                ],
                "description": "Reason a transaction is currently pending. Available only while `status` is `pending`; omitted once the transaction reaches a terminal status. The property may also be absent on a pending transaction when no specific reason has been recorded — for example legacy transactions created before the enum rolled out to all PSPs, or transactions handled by a payment service provider that does not yet report a pending reason.\n- **3ds_authentication**: Transaction requires 3D Secure verification from the user\n- **psp_processing**: Payment processor is processing the transaction\n- **bank_transfer_pending**: User needs to complete the bank transfer redirect\n- **bank_transfer_processing**: Bank transfer initiated, awaiting confirmation\n- **payment_terminal_authorization**: Waiting for payment terminal authorization\n- **awaiting_reconciliation**: The payment is handled by a payment terminal on the charge point, and the transaction is waiting to be reconciled with the amount that terminal settles. The amount currently on the transaction is provisional until reconciliation completes.\n- **other**: Pending but the reason does not fit any of the defined categories\n",
                "example": "3ds_authentication"
              },
              "ref": {
                "type": "string",
                "description": "Reference to the payment processor or payment terminal where more information about\nthe transaction could be checked. It is the primary reference for the payment and is\nupdated as the payment progresses through authorisation and capture.\n"
              },
              "bankMessage": {
                "type": "string"
              },
              "failureReason": {
                "type": "string",
                "nullable": true
              },
              "invoiceId": {
                "type": "integer",
                "nullable": true
              },
              "invoiceNo": {
                "deprecated": true,
                "type": "string",
                "nullable": true
              },
              "receiptId": {
                "type": "integer",
                "nullable": true
              },
              "billingType": {
                "type": "string",
                "description": "The type of billing used for the transaction. Internal transactions are processed in our system, while external transactions are billed externally.\nAutomatically set to `external` for transactions created against sessions initiated over OCPP (local payment terminal, RFID, plug-and-charge).\n",
                "enum": [
                  "internal",
                  "external"
                ]
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "finalizedAt": {
                "type": "string",
                "nullable": true,
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "terminalId": {
                "type": "integer",
                "description": "The ID of the payment terminal when such is used",
                "nullable": true
              },
              "voucherId": {
                "type": "integer",
                "description": "Returned only if the paymentMethodId property is null, this is the id of the balance voucher that paid the transaction"
              },
              "subscriptionBillingPeriodId": {
                "type": "integer",
                "description": "The ID of the subscription billing period this transaction belongs to. Present on both credit-sale transactions (session fees, subscription fees) and settlement payment transactions."
              },
              "settledByTransactionId": {
                "type": "integer",
                "description": "The ID of the settlement transaction that paid for this obligation. Present only on credit-sale transactions (session fees, base fees, charger fees) that have been settled."
              },
              "cardDetails": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "deprecated": true,
                    "description": "**This property is deprecated. Use `cardNetwork` instead.**\n\nCard brand\n",
                    "nullable": true,
                    "enum": [
                      "visa",
                      "mastercard",
                      "paypal",
                      "maestro",
                      "amex",
                      "bancontact",
                      "cartes_bancaires",
                      "diners_club",
                      "discover",
                      "interac",
                      "jcb",
                      "mada",
                      "visa_electron",
                      "unknown"
                    ],
                    "x-enumDescriptions": {
                      "bancontact": "Bancontact",
                      "cartes_bancaires": "Cartes Bancaires",
                      "diners_club": "Diners Club",
                      "discover": "Discover",
                      "interac": "Interac",
                      "jcb": "JCB",
                      "mada": "MADA",
                      "visa_electron": "Visa Electron"
                    }
                  },
                  "cardNetwork": {
                    "type": "string",
                    "description": "Card network. Replaces the deprecated `type`.",
                    "enum": [
                      "visa",
                      "mastercard",
                      "paypal",
                      "maestro",
                      "amex",
                      "bancontact",
                      "cartes_bancaires",
                      "diners_club",
                      "discover",
                      "interac",
                      "jcb",
                      "mada",
                      "visa_electron",
                      "unknown"
                    ],
                    "x-enumDescriptions": {
                      "bancontact": "Bancontact",
                      "cartes_bancaires": "Cartes Bancaires",
                      "diners_club": "Diners Club",
                      "discover": "Discover",
                      "interac": "Interac",
                      "jcb": "JCB",
                      "mada": "MADA",
                      "visa_electron": "Visa Electron"
                    }
                  },
                  "last4": {
                    "type": "string",
                    "description": "Card number last 4 digits",
                    "minLength": 4,
                    "maxLength": 4,
                    "nullable": true
                  },
                  "expMonth": {
                    "type": "string",
                    "description": "Card expiration month",
                    "nullable": true
                  },
                  "expYear": {
                    "type": "string",
                    "description": "Card expiration year",
                    "nullable": true
                  },
                  "token": {
                    "type": "string",
                    "description": "Card token",
                    "nullable": true
                  },
                  "cardType": {
                    "type": "string",
                    "description": "Card category.\n\nAllowed values:\n- `credit` - Credit card.\n- `debit` - Debit card.\n- `prepaid` - Prepaid card.\n",
                    "enum": [
                      "credit",
                      "debit",
                      "prepaid"
                    ]
                  },
                  "bin": {
                    "type": "string",
                    "description": "Bank identification number recorded for this transaction (first 6-8 digits)."
                  },
                  "fingerprint": {
                    "type": "string",
                    "description": "Unique card fingerprint recorded for this transaction for cross-channel and cross-PSP card identification. Carries the Payment Account Reference (PAR) where the PSP provides it."
                  },
                  "acquirerName": {
                    "type": "string",
                    "description": "Name of the acquiring bank recorded for this transaction."
                  },
                  "issuerName": {
                    "type": "string",
                    "description": "Name of the card issuing bank recorded for this transaction."
                  },
                  "issuerCode": {
                    "type": "string",
                    "description": "Code of the card issuing bank recorded for this transaction."
                  },
                  "tokenizationMethod": {
                    "type": "string",
                    "enum": [
                      "apple_pay",
                      "google_pay",
                      "masterpass",
                      "visa_checkout",
                      "samsung_pay",
                      "amex_express_checkout",
                      "twint"
                    ],
                    "description": "The tokenization method used to create the payment method.\nThis field indicates if the card was tokenized through a digital wallet service.\nOnly present when the payment method was created using a supported tokenization method.\n",
                    "x-enumDescriptions": {
                      "apple_pay": "Apple Pay tokenization",
                      "google_pay": "Google Pay tokenization",
                      "masterpass": "Masterpass tokenization",
                      "visa_checkout": "Visa Checkout tokenization",
                      "samsung_pay": "Samsung Pay tokenization",
                      "amex_express_checkout": "American Express Express Checkout tokenization",
                      "twint": "TWINT tokenization"
                    }
                  }
                }
              },
              "paymentMetadata": {
                "type": "object",
                "description": "Regulatory payment metadata captured from the payment source (terminal or online).\nOmitted when no metadata has been recorded for this transaction.\n",
                "properties": {
                  "applicationIdentifier": {
                    "type": "string",
                    "description": "Application Identifier (AID) from the card chip."
                  },
                  "terminalIdentifier": {
                    "type": "string",
                    "description": "Terminal ID configured on the payment device."
                  },
                  "merchantIdentifier": {
                    "type": "string",
                    "description": "Merchant ID assigned by the acquirer."
                  },
                  "authorisationCode": {
                    "type": "string",
                    "description": "Authorisation code from the issuer/acquirer."
                  },
                  "acquirerIdentifier": {
                    "type": "string",
                    "description": "Acquirer ID identifying the acquiring bank."
                  },
                  "cardholderVerificationMethod": {
                    "description": "How the cardholder was verified.",
                    "type": "string",
                    "enum": [
                      "no_cvm",
                      "signature",
                      "online_pin",
                      "offline_pin",
                      "consumer_device",
                      "online_pin_and_signature",
                      "offline_pin_and_signature"
                    ],
                    "x-enumDescriptions": {
                      "no_cvm": "No cardholder verification was performed, for example a low-value contactless tap below the verification limit.",
                      "signature": "Cardholder verified by signature on the receipt.",
                      "online_pin": "PIN entered at the terminal and verified online by the card issuer.",
                      "offline_pin": "PIN entered at the terminal and verified offline by the card chip.",
                      "consumer_device": "Cardholder verified on their own device, for example a phone biometric or passcode (CDCVM).",
                      "online_pin_and_signature": "Cardholder verified by both an online-verified PIN and a signature.",
                      "offline_pin_and_signature": "Cardholder verified by both an offline-verified PIN and a signature."
                    }
                  }
                }
              },
              "paymentOrderReference": {
                "type": "string",
                "maxLength": 255,
                "description": "An additional reference for the same payment, written once by whichever system took the\npayment and not changed as the payment progresses — either issued by the payment provider\nor supplied to the provider by the merchant. Recorded so the transaction can be reconciled\nagainst the provider's own reports.\nOmitted when no payment order reference has been recorded for this transaction.\n"
              }
            },
            "required": [
              "id",
              "operatorId",
              "number",
              "date",
              "userId",
              "sessionId",
              "ref",
              "currency"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userDevicesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Mobile device registered by the mobile app.\n\nDevices are created when the mobile app first communicates with the platform. A user\ncan have multiple devices (one per device where they are logged in). The association\nbetween a user and a device is removed on logout — the device record persists with\n`userId` and `operatorId` omitted (an \"orphaned\" device).\n\nFor operator-scoped tokens, only devices currently associated with a user belonging\nto the token's operator are returned. Orphaned devices are excluded for operator-scoped\ntokens because the operator that registered the device is no longer resolvable after\nlogout.\n\nDevices whose associated user has been soft-deleted are still returned with both\n`userId` and `operatorId` populated — distinct from the orphan case where both\nfields are omitted. Treat the presence of these fields as \"a user was associated\"\nrather than \"a user is currently active\"; the referenced user may no longer be\nretrievable via `/resources/users` if it has been soft-deleted.\n",
              "required": [
                "id",
                "deviceIdentifier",
                "platform",
                "pushEnabled",
                "createdAt",
                "updatedAt"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "Unique identifier of the device record",
                  "example": 1
                },
                "deviceIdentifier": {
                  "type": "string",
                  "description": "Unique identifier of the physical device. Persists across app reinstalls in most\nscenarios. May reset on iOS if all apps from the same vendor are removed, or on\nAndroid after a factory reset.\n\nIdentifiers are unique up to case — two devices cannot coexist with identifiers\nthat differ only in case. Lookups via `filter[deviceIdentifier]` are\ncase-insensitive for the same reason.\n",
                  "example": "74a48672034bae7d"
                },
                "userId": {
                  "type": "integer",
                  "description": "ID of the user associated with this device. The user may be soft-deleted —\nconsumers should treat this field as evidence of a past association, not a\nguarantee that the user is currently active.\nOmitted when the device is orphaned (the last associated user has logged out).\n",
                  "example": 42
                },
                "operatorId": {
                  "type": "integer",
                  "description": "ID of the operator the associated user belongs to. Populated for soft-deleted\nusers as well, so the operator-scoping signal is preserved for fraud-detection\nworkflows.\nOmitted when the device is orphaned. For operator-scoped tokens, always matches\nthe token's operator.\n",
                  "example": 1
                },
                "platform": {
                  "type": "string",
                  "enum": [
                    "ios",
                    "android"
                  ],
                  "description": "Operating system of the device:\n- **ios**: Apple iOS device\n- **android**: Google Android device\n",
                  "example": "ios"
                },
                "manufacturer": {
                  "type": "string",
                  "description": "Device manufacturer.\nOmitted when the manufacturer was not reported by the device.\n",
                  "example": "Apple"
                },
                "model": {
                  "type": "string",
                  "description": "Device model.\nOmitted when the model was not reported by the device.\n",
                  "example": "iPhone 14"
                },
                "device": {
                  "type": "string",
                  "description": "Device-specific detail. Not all platforms expose this value to the app.\nOmitted when the device value was not reported.\n",
                  "example": "iPhone15,3"
                },
                "appVersion": {
                  "type": "string",
                  "description": "Native mobile app version (the version published to App Store / Play Store).\nOmitted when not reported.\n",
                  "example": "3.50.0"
                },
                "internalAppVersion": {
                  "type": "string",
                  "description": "Internal JavaScript bundle version used for over-the-air updates.\nMay be updated independently from `appVersion`. Omitted when not reported.\n",
                  "example": "3.51.0"
                },
                "appBuild": {
                  "type": "string",
                  "description": "Mobile app build number.\nOmitted when not reported.\n",
                  "example": "4321"
                },
                "pushEnabled": {
                  "type": "boolean",
                  "description": "Whether push notifications are enabled on this device.",
                  "example": true
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userDeviceRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Mobile device registered by the mobile app.\n\nDevices are created when the mobile app first communicates with the platform. A user\ncan have multiple devices (one per device where they are logged in). The association\nbetween a user and a device is removed on logout — the device record persists with\n`userId` and `operatorId` omitted (an \"orphaned\" device).\n\nFor operator-scoped tokens, only devices currently associated with a user belonging\nto the token's operator are returned. Orphaned devices are excluded for operator-scoped\ntokens because the operator that registered the device is no longer resolvable after\nlogout.\n\nDevices whose associated user has been soft-deleted are still returned with both\n`userId` and `operatorId` populated — distinct from the orphan case where both\nfields are omitted. Treat the presence of these fields as \"a user was associated\"\nrather than \"a user is currently active\"; the referenced user may no longer be\nretrievable via `/resources/users` if it has been soft-deleted.\n",
            "required": [
              "id",
              "deviceIdentifier",
              "platform",
              "pushEnabled",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "Unique identifier of the device record",
                "example": 1
              },
              "deviceIdentifier": {
                "type": "string",
                "description": "Unique identifier of the physical device. Persists across app reinstalls in most\nscenarios. May reset on iOS if all apps from the same vendor are removed, or on\nAndroid after a factory reset.\n\nIdentifiers are unique up to case — two devices cannot coexist with identifiers\nthat differ only in case. Lookups via `filter[deviceIdentifier]` are\ncase-insensitive for the same reason.\n",
                "example": "74a48672034bae7d"
              },
              "userId": {
                "type": "integer",
                "description": "ID of the user associated with this device. The user may be soft-deleted —\nconsumers should treat this field as evidence of a past association, not a\nguarantee that the user is currently active.\nOmitted when the device is orphaned (the last associated user has logged out).\n",
                "example": 42
              },
              "operatorId": {
                "type": "integer",
                "description": "ID of the operator the associated user belongs to. Populated for soft-deleted\nusers as well, so the operator-scoping signal is preserved for fraud-detection\nworkflows.\nOmitted when the device is orphaned. For operator-scoped tokens, always matches\nthe token's operator.\n",
                "example": 1
              },
              "platform": {
                "type": "string",
                "enum": [
                  "ios",
                  "android"
                ],
                "description": "Operating system of the device:\n- **ios**: Apple iOS device\n- **android**: Google Android device\n",
                "example": "ios"
              },
              "manufacturer": {
                "type": "string",
                "description": "Device manufacturer.\nOmitted when the manufacturer was not reported by the device.\n",
                "example": "Apple"
              },
              "model": {
                "type": "string",
                "description": "Device model.\nOmitted when the model was not reported by the device.\n",
                "example": "iPhone 14"
              },
              "device": {
                "type": "string",
                "description": "Device-specific detail. Not all platforms expose this value to the app.\nOmitted when the device value was not reported.\n",
                "example": "iPhone15,3"
              },
              "appVersion": {
                "type": "string",
                "description": "Native mobile app version (the version published to App Store / Play Store).\nOmitted when not reported.\n",
                "example": "3.50.0"
              },
              "internalAppVersion": {
                "type": "string",
                "description": "Internal JavaScript bundle version used for over-the-air updates.\nMay be updated independently from `appVersion`. Omitted when not reported.\n",
                "example": "3.51.0"
              },
              "appBuild": {
                "type": "string",
                "description": "Mobile app build number.\nOmitted when not reported.\n",
                "example": "4321"
              },
              "pushEnabled": {
                "type": "boolean",
                "description": "Whether push notifications are enabled on this device.",
                "example": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userGroupsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "operatorId": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "name": {
                  "type": "string"
                },
                "partnerId": {
                  "type": "integer",
                  "description": "The partnerId can be updated only if there are no users added to the user group",
                  "nullable": true
                },
                "description": {
                  "type": "string",
                  "nullable": true
                },
                "externalId": {
                  "type": "string",
                  "description": "Used to store custom information, usually used for external references or metadata to the resource."
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "operatorId",
                "name"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userGroupCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string"
              },
              "partnerId": {
                "type": "integer",
                "description": "The partnerId can be updated only if there are no users added to the user group",
                "nullable": true
              },
              "description": {
                "type": "string",
                "nullable": true
              },
              "externalId": {
                "type": "string",
                "description": "Used to store custom information, usually used for external references or metadata to the resource."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "name"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userGroupRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string"
              },
              "partnerId": {
                "type": "integer",
                "description": "The partnerId can be updated only if there are no users added to the user group",
                "nullable": true
              },
              "description": {
                "type": "string",
                "nullable": true
              },
              "externalId": {
                "type": "string",
                "description": "Used to store custom information, usually used for external references or metadata to the resource."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "name"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userGroupDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userGroupUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "operatorId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "name": {
                "type": "string"
              },
              "partnerId": {
                "type": "integer",
                "description": "The partnerId can be updated only if there are no users added to the user group",
                "nullable": true
              },
              "description": {
                "type": "string",
                "nullable": true
              },
              "externalId": {
                "type": "string",
                "description": "Used to store custom information, usually used for external references or metadata to the resource."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "operatorId",
              "name"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "usersListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "operatorId"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "operatorId": {
                  "type": "integer",
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "email": {
                  "type": "string",
                  "format": "email"
                },
                "emailVerified": {
                  "type": "string",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true,
                  "nullable": true,
                  "example": "2022-11-12 12:00:00"
                },
                "requirePasswordReset": {
                  "type": "boolean",
                  "description": "Sets a requirement for the user to set a new password when they next open the app. After a new password is set, this option resets automatically."
                },
                "firstName": {
                  "type": "string",
                  "nullable": true
                },
                "middleName": {
                  "type": "string",
                  "nullable": true
                },
                "lastName": {
                  "type": "string",
                  "nullable": true
                },
                "phone": {
                  "type": "string",
                  "nullable": true
                },
                "country": {
                  "type": "string",
                  "nullable": true
                },
                "state": {
                  "type": "string",
                  "nullable": true
                },
                "city": {
                  "type": "string",
                  "nullable": true
                },
                "postCode": {
                  "type": "string",
                  "nullable": true
                },
                "address": {
                  "type": "string",
                  "nullable": true
                },
                "vehicleNo": {
                  "type": "string",
                  "nullable": true
                },
                "personalId": {
                  "type": "string"
                },
                "companyName": {
                  "type": "string",
                  "nullable": true
                },
                "locale": {
                  "type": "string",
                  "nullable": true,
                  "example": "en-GB"
                },
                "balance": {
                  "type": "number",
                  "multipleOf": 0.001,
                  "description": "The current amount in the balance of the user (in the base currency). Would not be returned in the response if the user is related to a Partner without \"addUserBalance\" permission"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "description": "* `enabled` Enabled - the user is allowed to use the system\n* `disabled` Disabled - the user is NOT allowed to use the system\n"
                },
                "userGroupIds": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  }
                },
                "externalId": {
                  "type": "string",
                  "nullable": true,
                  "readOnly": true,
                  "description": "Third party identifier of the user"
                },
                "subscriptionId": {
                  "type": "integer",
                  "nullable": true,
                  "readOnly": true,
                  "description": "user subscription id"
                },
                "options": {
                  "type": "object",
                  "properties": {
                    "sessionsAllowed": {
                      "type": "string",
                      "description": "Determine the number of sessions a user could start - single or multiple simultaneous sessions, or whether the user could start simultaneous sessions with several Id Tags.",
                      "enum": [
                        "single_session",
                        "multiple_simultaneous_sessions_per_idtag",
                        "simultaneous_use_of_idtags",
                        "multiple_simultaneous_sessions_remotely_and_idtags"
                      ]
                    }
                  }
                },
                "password": {
                  "type": "string",
                  "readOnly": true,
                  "nullable": true,
                  "description": "Returns the hashed password. This property is optional and can be enabled by request.\n"
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                },
                "lastActivityAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true,
                  "nullable": true,
                  "description": "When the user was last active"
                },
                "lastActivitySource": {
                  "type": "string",
                  "readOnly": true,
                  "nullable": true,
                  "enum": [
                    "device_activity",
                    "device_logout",
                    "id_tag_authorization",
                    "transaction",
                    "registration"
                  ],
                  "description": "What triggered the last activity update"
                },
                "createdBy": {
                  "type": "string",
                  "readOnly": true,
                  "description": "The return values are `admin:` , `partner:` - the value after the colon is the respective ID of the admin account or the partner. `token:` - the value after the colon is the admin token. `mobile_api` - means that the User registered themselves through the mobile app."
                },
                "receiveNewsAndPromotions": {
                  "type": "boolean",
                  "description": "Shows if the user has opted into receiving news and promotions."
                },
                "skipPreAuthorization": {
                  "type": "boolean",
                  "description": "When enabled, the user can start charging sessions without a pre-authorization hold on their payment method."
                },
                "skipUnpaidSessionCheck": {
                  "type": "boolean",
                  "description": "When enabled, this user can start new sessions even if they have unpaid sessions or unpaid post-paid subscription fees."
                },
                "partnerInvites": {
                  "type": "array",
                  "description": "It's a part of the response only if request is called with `include.partnerInvites` query parameter.",
                  "readOnly": true,
                  "nullable": true,
                  "items": {
                    "type": "object",
                    "description": "Partner Invite",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "readOnly": true
                      },
                      "partnerId": {
                        "type": "integer"
                      },
                      "sendViaEmail": {
                        "type": "boolean"
                      },
                      "email": {
                        "type": "string",
                        "description": "Email used to identify and associate the invitee. May be null when the invite was created without an email.",
                        "format": "email",
                        "nullable": true
                      },
                      "language": {
                        "type": "string",
                        "description": "The language of the e-mail sent to the invitee. If none selected, the default end-users language will be used."
                      },
                      "acceptUrl": {
                        "type": "string",
                        "format": "url",
                        "readOnly": true,
                        "nullable": true
                      },
                      "options": {
                        "type": "object",
                        "properties": {
                          "allowCorporateAccountBilling": {
                            "type": "boolean",
                            "default": false
                          },
                          "limitCorporateAccountBillingToPartnerChargePoints": {
                            "type": "boolean",
                            "description": "Whether the assigned corporate billing policy restricts corporate billing to the partner's charge points.",
                            "default": false
                          },
                          "allowAccessToPrivateChargePoints": {
                            "type": "boolean",
                            "default": false
                          },
                          "corporateBillingLimit": {
                            "type": "number",
                            "format": "decimal",
                            "nullable": true,
                            "minimum": 0,
                            "description": "The individual corporate billing limit amount from the assigned corporate billing policy. Must be a positive decimal when set. When `null`, no individual limit is applied. Only applicable when `allowCorporateAccountBilling` is `true`."
                          }
                        }
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "pending",
                          "sent",
                          "accepted"
                        ],
                        "readOnly": true
                      },
                      "createdAt": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                      },
                      "acceptedAt": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                      },
                      "userId": {
                        "type": "integer",
                        "readOnly": true,
                        "nullable": true
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      }
                    },
                    "required": [
                      "id",
                      "partnerId",
                      "status",
                      "createdAt"
                    ]
                  }
                },
                "bankDetails": {
                  "type": "object",
                  "properties": {
                    "bankIban": {
                      "type": "string",
                      "nullable": true,
                      "description": "IBAN of the bank account."
                    },
                    "bankCode": {
                      "type": "string",
                      "nullable": true,
                      "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                    },
                    "bankAccountNumber": {
                      "type": "string",
                      "nullable": true,
                      "description": "Bank account number."
                    },
                    "bankAccountType": {
                      "type": "string",
                      "nullable": true,
                      "description": "Type of the bank account."
                    },
                    "bankBic": {
                      "type": "string",
                      "nullable": true,
                      "description": "BIC/SWIFT code of the bank."
                    }
                  }
                },
                "externalAppData": {
                  "example": {
                    "externalCustomerId": "uuid"
                  },
                  "description": "The externalAppData field is an object designed to hold additional data related to external integrations.\nThis object can contain the following keys, which are currently supported:\n\n- `externalCustomerId`: A string representing the customer ID of the user in an external payment provider integration. This ID is used to link the user's account within the system to their corresponding account in the external payment provider.\n\nIf no information is available, the externalAppData object will be null. It's a part of the response only if request is called with `include.externalAppData` query parameter.\n",
                  "type": "object",
                  "nullable": true,
                  "additionalProperties": true
                },
                "invoiceDetails": {
                  "description": "The user's invoice details for invoice generation. The response structure varies depending on the operator's invoice integration type.\nIt's a part of the response only if request is called with `include[]=invoiceDetails` query parameter.\nReturns `null` if the user has no invoice details or the operator has no invoice integration configured.\n",
                  "readOnly": true,
                  "type": "object",
                  "nullable": true,
                  "anyOf": [
                    {
                      "type": "object",
                      "title": "Built-in invoicing",
                      "description": "Built-in invoice processor",
                      "properties": {
                        "requireInvoice": {
                          "type": "boolean",
                          "default": false,
                          "description": "Whether invoice is required for this user. Note: If the operator has 'Always collect Invoice Details' enabled in their invoice integration settings, this field will always be true regardless of the request payload value."
                        },
                        "requireInvoiceLastUpdatedAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "ISO 8601 formatted date. The date is automatically updated when the value of the \"requireInvoice\" field changes.",
                          "readOnly": true,
                          "nullable": true
                        },
                        "lastUpdatedAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "ISO 8601 formatted date",
                          "readOnly": true
                        },
                        "requireInvoiceEnforcedBy": {
                          "type": "string",
                          "enum": [
                            "operator_setting",
                            "user_request"
                          ],
                          "description": "Indicates the source that determined the final requireInvoice value. Only present when operator setting overrides user request.",
                          "nullable": true
                        },
                        "originalRequestValue": {
                          "type": "boolean",
                          "description": "The originally requested requireInvoice value when operator override occurred. Only present when requireInvoiceEnforcedBy is 'operator_setting'.",
                          "nullable": true
                        },
                        "invoiceType": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "nullable": true
                        },
                        "individualName": {
                          "type": "string",
                          "nullable": true
                        },
                        "individualPersonalId": {
                          "type": "string",
                          "nullable": true
                        },
                        "individualTaxId": {
                          "type": "string",
                          "nullable": true
                        },
                        "companyName": {
                          "type": "string",
                          "nullable": true
                        },
                        "companyRegNo": {
                          "type": "string",
                          "nullable": true
                        },
                        "companyTaxId": {
                          "type": "string",
                          "nullable": true
                        },
                        "companyTaxAdministrationOfficeName": {
                          "type": "string",
                          "nullable": true
                        },
                        "country": {
                          "type": "string",
                          "nullable": true,
                          "enum": [
                            "AF",
                            "AX",
                            "AL",
                            "DZ",
                            "AS",
                            "AD",
                            "AO",
                            "AI",
                            "AQ",
                            "AG",
                            "AR",
                            "AM",
                            "AW",
                            "AU",
                            "AT",
                            "AZ",
                            "BS",
                            "BH",
                            "BD",
                            "BB",
                            "BY",
                            "BE",
                            "BZ",
                            "BJ",
                            "BM",
                            "BT",
                            "BO",
                            "BQ",
                            "BA",
                            "BW",
                            "BV",
                            "BR",
                            "IO",
                            "BN",
                            "BG",
                            "BF",
                            "BI",
                            "KH",
                            "CM",
                            "CA",
                            "CV",
                            "KY",
                            "CF",
                            "TD",
                            "CL",
                            "CN",
                            "CX",
                            "CC",
                            "CO",
                            "KM",
                            "CG",
                            "CD",
                            "CK",
                            "CR",
                            "CI",
                            "HR",
                            "CU",
                            "CW",
                            "CY",
                            "CZ",
                            "DK",
                            "DJ",
                            "DM",
                            "DO",
                            "EC",
                            "EG",
                            "SV",
                            "GQ",
                            "ER",
                            "EE",
                            "ET",
                            "FK",
                            "FO",
                            "FJ",
                            "FI",
                            "FR",
                            "GF",
                            "PF",
                            "TF",
                            "GA",
                            "GM",
                            "GE",
                            "DE",
                            "GH",
                            "GI",
                            "GR",
                            "GL",
                            "GD",
                            "GP",
                            "GU",
                            "GT",
                            "GG",
                            "GN",
                            "GW",
                            "GY",
                            "HT",
                            "HM",
                            "VA",
                            "HN",
                            "HK",
                            "HU",
                            "IS",
                            "IN",
                            "ID",
                            "IR",
                            "IQ",
                            "IE",
                            "IM",
                            "IL",
                            "IT",
                            "JM",
                            "JP",
                            "JE",
                            "JO",
                            "KZ",
                            "KE",
                            "KI",
                            "KP",
                            "KR",
                            "XK",
                            "KW",
                            "KG",
                            "LA",
                            "LV",
                            "LB",
                            "LS",
                            "LR",
                            "LY",
                            "LI",
                            "LT",
                            "LU",
                            "MO",
                            "MK",
                            "MG",
                            "MW",
                            "MY",
                            "MV",
                            "ML",
                            "MT",
                            "MH",
                            "MQ",
                            "MR",
                            "MU",
                            "YT",
                            "MX",
                            "FM",
                            "MD",
                            "MC",
                            "MN",
                            "ME",
                            "MS",
                            "MA",
                            "MZ",
                            "MM",
                            "NA",
                            "NR",
                            "NP",
                            "NL",
                            "NC",
                            "NZ",
                            "NI",
                            "NE",
                            "NG",
                            "NU",
                            "NF",
                            "MP",
                            "NO",
                            "OM",
                            "PK",
                            "PW",
                            "PS",
                            "PA",
                            "PG",
                            "PY",
                            "PE",
                            "PH",
                            "PN",
                            "PL",
                            "PT",
                            "PR",
                            "QA",
                            "RE",
                            "RO",
                            "RU",
                            "RW",
                            "BL",
                            "SH",
                            "KN",
                            "LC",
                            "MF",
                            "PM",
                            "VC",
                            "WS",
                            "SM",
                            "ST",
                            "SA",
                            "SN",
                            "RS",
                            "SC",
                            "SL",
                            "SG",
                            "SX",
                            "SK",
                            "SI",
                            "SB",
                            "SO",
                            "ZA",
                            "GS",
                            "SS",
                            "ES",
                            "LK",
                            "SD",
                            "SR",
                            "SJ",
                            "SZ",
                            "SE",
                            "CH",
                            "SY",
                            "TW",
                            "TJ",
                            "TZ",
                            "TH",
                            "TL",
                            "TG",
                            "TK",
                            "TO",
                            "TT",
                            "TN",
                            "TR",
                            "TM",
                            "TC",
                            "TV",
                            "UG",
                            "UA",
                            "AE",
                            "GB",
                            "US",
                            "UM",
                            "UY",
                            "UZ",
                            "VU",
                            "VE",
                            "VN",
                            "VG",
                            "VI",
                            "WF",
                            "EH",
                            "YE",
                            "ZM",
                            "ZW"
                          ]
                        },
                        "region": {
                          "type": "string",
                          "nullable": true,
                          "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
                        },
                        "state": {
                          "description": "When the selected country is one of US, AU, CA, UM or RO",
                          "anyOf": [
                            {
                              "title": "US State",
                              "description": "When the country is US.",
                              "type": "string",
                              "enum": [
                                "AL",
                                "AK",
                                "AS",
                                "AZ",
                                "AR",
                                "CA",
                                "CO",
                                "CT",
                                "DE",
                                "DC",
                                "FM",
                                "FL",
                                "GA",
                                "GU",
                                "HI",
                                "ID",
                                "IL",
                                "IN",
                                "IA",
                                "KS",
                                "KY",
                                "LA",
                                "ME",
                                "MH",
                                "MD",
                                "MA",
                                "MI",
                                "MN",
                                "MS",
                                "MO",
                                "MT",
                                "NE",
                                "NV",
                                "NH",
                                "NJ",
                                "NM",
                                "NY",
                                "NC",
                                "ND",
                                "MP",
                                "OH",
                                "OK",
                                "OR",
                                "PW",
                                "PA",
                                "PR",
                                "RI",
                                "SC",
                                "SD",
                                "TN",
                                "TX",
                                "UT",
                                "VT",
                                "VI",
                                "VA",
                                "WA",
                                "WV",
                                "WI",
                                "WY"
                              ]
                            },
                            {
                              "title": "Australian State",
                              "description": "When the country is AU.",
                              "type": "string",
                              "enum": [
                                "NSW",
                                "VIC",
                                "QLD",
                                "WA",
                                "SA",
                                "TAS",
                                "ACT",
                                "NT",
                                "JBT",
                                "CX",
                                "NF",
                                "CC",
                                "AQ",
                                "CSI",
                                "ACI",
                                "HM"
                              ]
                            },
                            {
                              "title": "Canadian Province",
                              "description": "When the country is CA.",
                              "type": "string",
                              "enum": [
                                "AB",
                                "BC",
                                "MB",
                                "NB",
                                "NL",
                                "NT",
                                "NS",
                                "NU",
                                "ON",
                                "PE",
                                "QC",
                                "SK",
                                "YT"
                              ]
                            },
                            {
                              "title": "US Minor Outlying Islands Territory",
                              "description": "When the country is UM.",
                              "type": "string",
                              "enum": [
                                "81",
                                "84",
                                "85",
                                "67",
                                "89",
                                "71",
                                "76",
                                "95",
                                "79"
                              ]
                            },
                            {
                              "title": "Romanian County",
                              "description": "When the country is RO.",
                              "type": "string",
                              "enum": [
                                "AB",
                                "AR",
                                "AG",
                                "BC",
                                "BH",
                                "BN",
                                "BT",
                                "BV",
                                "BR",
                                "B",
                                "BZ",
                                "CL",
                                "CS",
                                "CT",
                                "CV",
                                "DB",
                                "DJ",
                                "GL",
                                "GR",
                                "GJ",
                                "HR",
                                "HD",
                                "IL",
                                "IS",
                                "IF",
                                "MM",
                                "MH",
                                "MS",
                                "NT",
                                "OT",
                                "PH",
                                "SM",
                                "SJ",
                                "SB",
                                "SV",
                                "TR",
                                "TM",
                                "TL",
                                "VS",
                                "VL",
                                "VN"
                              ]
                            }
                          ]
                        },
                        "city": {
                          "type": "string",
                          "nullable": true
                        },
                        "postCode": {
                          "type": "string",
                          "nullable": true
                        },
                        "address": {
                          "type": "string",
                          "nullable": true
                        }
                      },
                      "required": [
                        "requireInvoice",
                        "invoiceType"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "title": "Cardcom Invoice Manager",
                      "description": "Invoice processor - Cardcom",
                      "properties": {
                        "invoiceRequired": {
                          "type": "boolean",
                          "default": false
                        },
                        "lastUpdatedAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "ISO 8601 formatted date",
                          "readOnly": true
                        },
                        "clientType": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "nullable": true
                        },
                        "individual": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "nullable": true
                            },
                            "email": {
                              "type": "string",
                              "nullable": true
                            },
                            "mobilePhoneNumber": {
                              "type": "string",
                              "nullable": true
                            },
                            "taxId": {
                              "type": "string",
                              "nullable": true
                            },
                            "country": {
                              "type": "string",
                              "nullable": true,
                              "enum": [
                                "AF",
                                "AX",
                                "AL",
                                "DZ",
                                "AS",
                                "AD",
                                "AO",
                                "AI",
                                "AQ",
                                "AG",
                                "AR",
                                "AM",
                                "AW",
                                "AU",
                                "AT",
                                "AZ",
                                "BS",
                                "BH",
                                "BD",
                                "BB",
                                "BY",
                                "BE",
                                "BZ",
                                "BJ",
                                "BM",
                                "BT",
                                "BO",
                                "BQ",
                                "BA",
                                "BW",
                                "BV",
                                "BR",
                                "IO",
                                "BN",
                                "BG",
                                "BF",
                                "BI",
                                "KH",
                                "CM",
                                "CA",
                                "CV",
                                "KY",
                                "CF",
                                "TD",
                                "CL",
                                "CN",
                                "CX",
                                "CC",
                                "CO",
                                "KM",
                                "CG",
                                "CD",
                                "CK",
                                "CR",
                                "CI",
                                "HR",
                                "CU",
                                "CW",
                                "CY",
                                "CZ",
                                "DK",
                                "DJ",
                                "DM",
                                "DO",
                                "EC",
                                "EG",
                                "SV",
                                "GQ",
                                "ER",
                                "EE",
                                "ET",
                                "FK",
                                "FO",
                                "FJ",
                                "FI",
                                "FR",
                                "GF",
                                "PF",
                                "TF",
                                "GA",
                                "GM",
                                "GE",
                                "DE",
                                "GH",
                                "GI",
                                "GR",
                                "GL",
                                "GD",
                                "GP",
                                "GU",
                                "GT",
                                "GG",
                                "GN",
                                "GW",
                                "GY",
                                "HT",
                                "HM",
                                "VA",
                                "HN",
                                "HK",
                                "HU",
                                "IS",
                                "IN",
                                "ID",
                                "IR",
                                "IQ",
                                "IE",
                                "IM",
                                "IL",
                                "IT",
                                "JM",
                                "JP",
                                "JE",
                                "JO",
                                "KZ",
                                "KE",
                                "KI",
                                "KP",
                                "KR",
                                "XK",
                                "KW",
                                "KG",
                                "LA",
                                "LV",
                                "LB",
                                "LS",
                                "LR",
                                "LY",
                                "LI",
                                "LT",
                                "LU",
                                "MO",
                                "MK",
                                "MG",
                                "MW",
                                "MY",
                                "MV",
                                "ML",
                                "MT",
                                "MH",
                                "MQ",
                                "MR",
                                "MU",
                                "YT",
                                "MX",
                                "FM",
                                "MD",
                                "MC",
                                "MN",
                                "ME",
                                "MS",
                                "MA",
                                "MZ",
                                "MM",
                                "NA",
                                "NR",
                                "NP",
                                "NL",
                                "NC",
                                "NZ",
                                "NI",
                                "NE",
                                "NG",
                                "NU",
                                "NF",
                                "MP",
                                "NO",
                                "OM",
                                "PK",
                                "PW",
                                "PS",
                                "PA",
                                "PG",
                                "PY",
                                "PE",
                                "PH",
                                "PN",
                                "PL",
                                "PT",
                                "PR",
                                "QA",
                                "RE",
                                "RO",
                                "RU",
                                "RW",
                                "BL",
                                "SH",
                                "KN",
                                "LC",
                                "MF",
                                "PM",
                                "VC",
                                "WS",
                                "SM",
                                "ST",
                                "SA",
                                "SN",
                                "RS",
                                "SC",
                                "SL",
                                "SG",
                                "SX",
                                "SK",
                                "SI",
                                "SB",
                                "SO",
                                "ZA",
                                "GS",
                                "SS",
                                "ES",
                                "LK",
                                "SD",
                                "SR",
                                "SJ",
                                "SZ",
                                "SE",
                                "CH",
                                "SY",
                                "TW",
                                "TJ",
                                "TZ",
                                "TH",
                                "TL",
                                "TG",
                                "TK",
                                "TO",
                                "TT",
                                "TN",
                                "TR",
                                "TM",
                                "TC",
                                "TV",
                                "UG",
                                "UA",
                                "AE",
                                "GB",
                                "US",
                                "UM",
                                "UY",
                                "UZ",
                                "VU",
                                "VE",
                                "VN",
                                "VG",
                                "VI",
                                "WF",
                                "EH",
                                "YE",
                                "ZM",
                                "ZW"
                              ]
                            },
                            "city": {
                              "type": "string",
                              "nullable": true
                            },
                            "postcode": {
                              "type": "string",
                              "nullable": true
                            },
                            "address": {
                              "type": "string",
                              "nullable": true
                            }
                          }
                        },
                        "company": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "nullable": true
                            },
                            "email": {
                              "type": "string",
                              "nullable": true
                            },
                            "mobilePhoneNumber": {
                              "type": "string",
                              "nullable": true
                            },
                            "landlinePhoneNumber": {
                              "type": "string",
                              "nullable": true
                            },
                            "taxId": {
                              "type": "string",
                              "nullable": true
                            },
                            "country": {
                              "type": "string",
                              "nullable": true,
                              "enum": [
                                "AF",
                                "AX",
                                "AL",
                                "DZ",
                                "AS",
                                "AD",
                                "AO",
                                "AI",
                                "AQ",
                                "AG",
                                "AR",
                                "AM",
                                "AW",
                                "AU",
                                "AT",
                                "AZ",
                                "BS",
                                "BH",
                                "BD",
                                "BB",
                                "BY",
                                "BE",
                                "BZ",
                                "BJ",
                                "BM",
                                "BT",
                                "BO",
                                "BQ",
                                "BA",
                                "BW",
                                "BV",
                                "BR",
                                "IO",
                                "BN",
                                "BG",
                                "BF",
                                "BI",
                                "KH",
                                "CM",
                                "CA",
                                "CV",
                                "KY",
                                "CF",
                                "TD",
                                "CL",
                                "CN",
                                "CX",
                                "CC",
                                "CO",
                                "KM",
                                "CG",
                                "CD",
                                "CK",
                                "CR",
                                "CI",
                                "HR",
                                "CU",
                                "CW",
                                "CY",
                                "CZ",
                                "DK",
                                "DJ",
                                "DM",
                                "DO",
                                "EC",
                                "EG",
                                "SV",
                                "GQ",
                                "ER",
                                "EE",
                                "ET",
                                "FK",
                                "FO",
                                "FJ",
                                "FI",
                                "FR",
                                "GF",
                                "PF",
                                "TF",
                                "GA",
                                "GM",
                                "GE",
                                "DE",
                                "GH",
                                "GI",
                                "GR",
                                "GL",
                                "GD",
                                "GP",
                                "GU",
                                "GT",
                                "GG",
                                "GN",
                                "GW",
                                "GY",
                                "HT",
                                "HM",
                                "VA",
                                "HN",
                                "HK",
                                "HU",
                                "IS",
                                "IN",
                                "ID",
                                "IR",
                                "IQ",
                                "IE",
                                "IM",
                                "IL",
                                "IT",
                                "JM",
                                "JP",
                                "JE",
                                "JO",
                                "KZ",
                                "KE",
                                "KI",
                                "KP",
                                "KR",
                                "XK",
                                "KW",
                                "KG",
                                "LA",
                                "LV",
                                "LB",
                                "LS",
                                "LR",
                                "LY",
                                "LI",
                                "LT",
                                "LU",
                                "MO",
                                "MK",
                                "MG",
                                "MW",
                                "MY",
                                "MV",
                                "ML",
                                "MT",
                                "MH",
                                "MQ",
                                "MR",
                                "MU",
                                "YT",
                                "MX",
                                "FM",
                                "MD",
                                "MC",
                                "MN",
                                "ME",
                                "MS",
                                "MA",
                                "MZ",
                                "MM",
                                "NA",
                                "NR",
                                "NP",
                                "NL",
                                "NC",
                                "NZ",
                                "NI",
                                "NE",
                                "NG",
                                "NU",
                                "NF",
                                "MP",
                                "NO",
                                "OM",
                                "PK",
                                "PW",
                                "PS",
                                "PA",
                                "PG",
                                "PY",
                                "PE",
                                "PH",
                                "PN",
                                "PL",
                                "PT",
                                "PR",
                                "QA",
                                "RE",
                                "RO",
                                "RU",
                                "RW",
                                "BL",
                                "SH",
                                "KN",
                                "LC",
                                "MF",
                                "PM",
                                "VC",
                                "WS",
                                "SM",
                                "ST",
                                "SA",
                                "SN",
                                "RS",
                                "SC",
                                "SL",
                                "SG",
                                "SX",
                                "SK",
                                "SI",
                                "SB",
                                "SO",
                                "ZA",
                                "GS",
                                "SS",
                                "ES",
                                "LK",
                                "SD",
                                "SR",
                                "SJ",
                                "SZ",
                                "SE",
                                "CH",
                                "SY",
                                "TW",
                                "TJ",
                                "TZ",
                                "TH",
                                "TL",
                                "TG",
                                "TK",
                                "TO",
                                "TT",
                                "TN",
                                "TR",
                                "TM",
                                "TC",
                                "TV",
                                "UG",
                                "UA",
                                "AE",
                                "GB",
                                "US",
                                "UM",
                                "UY",
                                "UZ",
                                "VU",
                                "VE",
                                "VN",
                                "VG",
                                "VI",
                                "WF",
                                "EH",
                                "YE",
                                "ZM",
                                "ZW"
                              ]
                            },
                            "city": {
                              "type": "string",
                              "nullable": true
                            },
                            "postcode": {
                              "type": "string",
                              "nullable": true
                            },
                            "address": {
                              "type": "string",
                              "nullable": true
                            }
                          }
                        }
                      },
                      "required": [
                        "invoiceRequired",
                        "clientType",
                        "individual",
                        "company"
                      ]
                    },
                    {
                      "type": "object",
                      "title": "SoftOne Invoice Manager",
                      "description": "Invoice processor - SoftOne",
                      "properties": {
                        "lastUpdatedAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "ISO 8601 formatted date",
                          "readOnly": true
                        },
                        "firstName": {
                          "type": "string",
                          "nullable": true
                        },
                        "lastName": {
                          "type": "string",
                          "nullable": true
                        },
                        "email": {
                          "type": "string",
                          "nullable": true
                        },
                        "phone": {
                          "type": "string",
                          "nullable": true
                        },
                        "country": {
                          "type": "string",
                          "nullable": true,
                          "enum": [
                            "AF",
                            "AX",
                            "AL",
                            "DZ",
                            "AS",
                            "AD",
                            "AO",
                            "AI",
                            "AQ",
                            "AG",
                            "AR",
                            "AM",
                            "AW",
                            "AU",
                            "AT",
                            "AZ",
                            "BS",
                            "BH",
                            "BD",
                            "BB",
                            "BY",
                            "BE",
                            "BZ",
                            "BJ",
                            "BM",
                            "BT",
                            "BO",
                            "BQ",
                            "BA",
                            "BW",
                            "BV",
                            "BR",
                            "IO",
                            "BN",
                            "BG",
                            "BF",
                            "BI",
                            "KH",
                            "CM",
                            "CA",
                            "CV",
                            "KY",
                            "CF",
                            "TD",
                            "CL",
                            "CN",
                            "CX",
                            "CC",
                            "CO",
                            "KM",
                            "CG",
                            "CD",
                            "CK",
                            "CR",
                            "CI",
                            "HR",
                            "CU",
                            "CW",
                            "CY",
                            "CZ",
                            "DK",
                            "DJ",
                            "DM",
                            "DO",
                            "EC",
                            "EG",
                            "SV",
                            "GQ",
                            "ER",
                            "EE",
                            "ET",
                            "FK",
                            "FO",
                            "FJ",
                            "FI",
                            "FR",
                            "GF",
                            "PF",
                            "TF",
                            "GA",
                            "GM",
                            "GE",
                            "DE",
                            "GH",
                            "GI",
                            "GR",
                            "GL",
                            "GD",
                            "GP",
                            "GU",
                            "GT",
                            "GG",
                            "GN",
                            "GW",
                            "GY",
                            "HT",
                            "HM",
                            "VA",
                            "HN",
                            "HK",
                            "HU",
                            "IS",
                            "IN",
                            "ID",
                            "IR",
                            "IQ",
                            "IE",
                            "IM",
                            "IL",
                            "IT",
                            "JM",
                            "JP",
                            "JE",
                            "JO",
                            "KZ",
                            "KE",
                            "KI",
                            "KP",
                            "KR",
                            "XK",
                            "KW",
                            "KG",
                            "LA",
                            "LV",
                            "LB",
                            "LS",
                            "LR",
                            "LY",
                            "LI",
                            "LT",
                            "LU",
                            "MO",
                            "MK",
                            "MG",
                            "MW",
                            "MY",
                            "MV",
                            "ML",
                            "MT",
                            "MH",
                            "MQ",
                            "MR",
                            "MU",
                            "YT",
                            "MX",
                            "FM",
                            "MD",
                            "MC",
                            "MN",
                            "ME",
                            "MS",
                            "MA",
                            "MZ",
                            "MM",
                            "NA",
                            "NR",
                            "NP",
                            "NL",
                            "NC",
                            "NZ",
                            "NI",
                            "NE",
                            "NG",
                            "NU",
                            "NF",
                            "MP",
                            "NO",
                            "OM",
                            "PK",
                            "PW",
                            "PS",
                            "PA",
                            "PG",
                            "PY",
                            "PE",
                            "PH",
                            "PN",
                            "PL",
                            "PT",
                            "PR",
                            "QA",
                            "RE",
                            "RO",
                            "RU",
                            "RW",
                            "BL",
                            "SH",
                            "KN",
                            "LC",
                            "MF",
                            "PM",
                            "VC",
                            "WS",
                            "SM",
                            "ST",
                            "SA",
                            "SN",
                            "RS",
                            "SC",
                            "SL",
                            "SG",
                            "SX",
                            "SK",
                            "SI",
                            "SB",
                            "SO",
                            "ZA",
                            "GS",
                            "SS",
                            "ES",
                            "LK",
                            "SD",
                            "SR",
                            "SJ",
                            "SZ",
                            "SE",
                            "CH",
                            "SY",
                            "TW",
                            "TJ",
                            "TZ",
                            "TH",
                            "TL",
                            "TG",
                            "TK",
                            "TO",
                            "TT",
                            "TN",
                            "TR",
                            "TM",
                            "TC",
                            "TV",
                            "UG",
                            "UA",
                            "AE",
                            "GB",
                            "US",
                            "UM",
                            "UY",
                            "UZ",
                            "VU",
                            "VE",
                            "VN",
                            "VG",
                            "VI",
                            "WF",
                            "EH",
                            "YE",
                            "ZM",
                            "ZW"
                          ]
                        },
                        "city": {
                          "type": "string",
                          "nullable": true
                        },
                        "postcode": {
                          "type": "string",
                          "nullable": true
                        },
                        "address": {
                          "type": "string",
                          "nullable": true
                        }
                      }
                    },
                    {
                      "type": "object",
                      "title": "Ecpay Invoice Manager",
                      "description": "Invoice processor - Ecpay",
                      "properties": {
                        "lastUpdatedAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "ISO 8601 formatted date",
                          "readOnly": true
                        },
                        "invoiceType": {
                          "type": "string",
                          "enum": [
                            "EInvoice",
                            "Company",
                            "Donation"
                          ]
                        },
                        "carrierType": {
                          "type": "string",
                          "enum": [
                            "Mobile",
                            "Citizen",
                            "GreenWorld"
                          ],
                          "nullable": true
                        },
                        "loveCode": {
                          "type": "string",
                          "nullable": true
                        },
                        "mobileBarCode": {
                          "type": "string",
                          "nullable": true
                        },
                        "citizenId": {
                          "type": "string",
                          "nullable": true
                        },
                        "companyId": {
                          "type": "string",
                          "nullable": true
                        },
                        "name": {
                          "type": "string",
                          "nullable": true
                        },
                        "email": {
                          "type": "string",
                          "nullable": true
                        },
                        "phone": {
                          "type": "string",
                          "nullable": true
                        },
                        "country": {
                          "type": "string",
                          "nullable": true,
                          "enum": [
                            "AF",
                            "AX",
                            "AL",
                            "DZ",
                            "AS",
                            "AD",
                            "AO",
                            "AI",
                            "AQ",
                            "AG",
                            "AR",
                            "AM",
                            "AW",
                            "AU",
                            "AT",
                            "AZ",
                            "BS",
                            "BH",
                            "BD",
                            "BB",
                            "BY",
                            "BE",
                            "BZ",
                            "BJ",
                            "BM",
                            "BT",
                            "BO",
                            "BQ",
                            "BA",
                            "BW",
                            "BV",
                            "BR",
                            "IO",
                            "BN",
                            "BG",
                            "BF",
                            "BI",
                            "KH",
                            "CM",
                            "CA",
                            "CV",
                            "KY",
                            "CF",
                            "TD",
                            "CL",
                            "CN",
                            "CX",
                            "CC",
                            "CO",
                            "KM",
                            "CG",
                            "CD",
                            "CK",
                            "CR",
                            "CI",
                            "HR",
                            "CU",
                            "CW",
                            "CY",
                            "CZ",
                            "DK",
                            "DJ",
                            "DM",
                            "DO",
                            "EC",
                            "EG",
                            "SV",
                            "GQ",
                            "ER",
                            "EE",
                            "ET",
                            "FK",
                            "FO",
                            "FJ",
                            "FI",
                            "FR",
                            "GF",
                            "PF",
                            "TF",
                            "GA",
                            "GM",
                            "GE",
                            "DE",
                            "GH",
                            "GI",
                            "GR",
                            "GL",
                            "GD",
                            "GP",
                            "GU",
                            "GT",
                            "GG",
                            "GN",
                            "GW",
                            "GY",
                            "HT",
                            "HM",
                            "VA",
                            "HN",
                            "HK",
                            "HU",
                            "IS",
                            "IN",
                            "ID",
                            "IR",
                            "IQ",
                            "IE",
                            "IM",
                            "IL",
                            "IT",
                            "JM",
                            "JP",
                            "JE",
                            "JO",
                            "KZ",
                            "KE",
                            "KI",
                            "KP",
                            "KR",
                            "XK",
                            "KW",
                            "KG",
                            "LA",
                            "LV",
                            "LB",
                            "LS",
                            "LR",
                            "LY",
                            "LI",
                            "LT",
                            "LU",
                            "MO",
                            "MK",
                            "MG",
                            "MW",
                            "MY",
                            "MV",
                            "ML",
                            "MT",
                            "MH",
                            "MQ",
                            "MR",
                            "MU",
                            "YT",
                            "MX",
                            "FM",
                            "MD",
                            "MC",
                            "MN",
                            "ME",
                            "MS",
                            "MA",
                            "MZ",
                            "MM",
                            "NA",
                            "NR",
                            "NP",
                            "NL",
                            "NC",
                            "NZ",
                            "NI",
                            "NE",
                            "NG",
                            "NU",
                            "NF",
                            "MP",
                            "NO",
                            "OM",
                            "PK",
                            "PW",
                            "PS",
                            "PA",
                            "PG",
                            "PY",
                            "PE",
                            "PH",
                            "PN",
                            "PL",
                            "PT",
                            "PR",
                            "QA",
                            "RE",
                            "RO",
                            "RU",
                            "RW",
                            "BL",
                            "SH",
                            "KN",
                            "LC",
                            "MF",
                            "PM",
                            "VC",
                            "WS",
                            "SM",
                            "ST",
                            "SA",
                            "SN",
                            "RS",
                            "SC",
                            "SL",
                            "SG",
                            "SX",
                            "SK",
                            "SI",
                            "SB",
                            "SO",
                            "ZA",
                            "GS",
                            "SS",
                            "ES",
                            "LK",
                            "SD",
                            "SR",
                            "SJ",
                            "SZ",
                            "SE",
                            "CH",
                            "SY",
                            "TW",
                            "TJ",
                            "TZ",
                            "TH",
                            "TL",
                            "TG",
                            "TK",
                            "TO",
                            "TT",
                            "TN",
                            "TR",
                            "TM",
                            "TC",
                            "TV",
                            "UG",
                            "UA",
                            "AE",
                            "GB",
                            "US",
                            "UM",
                            "UY",
                            "UZ",
                            "VU",
                            "VE",
                            "VN",
                            "VG",
                            "VI",
                            "WF",
                            "EH",
                            "YE",
                            "ZM",
                            "ZW"
                          ]
                        },
                        "city": {
                          "type": "string",
                          "nullable": true
                        },
                        "postcode": {
                          "type": "string",
                          "nullable": true
                        },
                        "address": {
                          "type": "string",
                          "nullable": true
                        }
                      }
                    },
                    {
                      "type": "object",
                      "title": "Avalara e-invoicing",
                      "description": "Avalara e-invoicing processor.\n\nCarries the same fields as the platform's native invoice integration, plus the two Italian SDI buyer\nidentifiers. Those two are only present when the operator's Avalara integration has an Italian mandate\nand the corresponding field is enabled, and they only carry a value for company customers.\n\nWhen both identifiers are collected and enabled, an Italian company (`invoiceType` is `company` and\n`country` is `IT`) must supply at least one of `recipientCode` and `recipientCertifiedEmail` on write.\nThis either-or requirement is conditional on the invoice type and the country, so it cannot be\nexpressed per field in this schema.\n",
                      "required": [
                        "requireInvoice",
                        "invoiceType"
                      ],
                      "properties": {
                        "recipientCode": {
                          "type": "string",
                          "minLength": 7,
                          "maxLength": 7,
                          "pattern": "^[A-Za-z0-9]{7}$",
                          "description": "Italian SDI recipient code of the buyer. Exactly seven alphanumeric characters, stored uppercased.\nOmitted for individual customers and for company customers that have not supplied it.\n",
                          "example": "ABC1234"
                        },
                        "recipientCertifiedEmail": {
                          "type": "string",
                          "format": "email",
                          "description": "Certified electronic mail (PEC) address of the buyer. Omitted for individual customers and for\ncompany customers that have not supplied it.\n",
                          "example": "buyer@pec.example.com"
                        },
                        "requireInvoice": {
                          "type": "boolean",
                          "default": false,
                          "description": "Whether invoice is required for this user. Note: If the operator has 'Always collect Invoice Details' enabled in their invoice integration settings, this field will always be true regardless of the request payload value."
                        },
                        "requireInvoiceLastUpdatedAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "ISO 8601 formatted date. The date is automatically updated when the value of the \"requireInvoice\" field changes.",
                          "readOnly": true,
                          "nullable": true
                        },
                        "lastUpdatedAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "ISO 8601 formatted date",
                          "readOnly": true
                        },
                        "requireInvoiceEnforcedBy": {
                          "type": "string",
                          "enum": [
                            "operator_setting",
                            "user_request"
                          ],
                          "description": "Indicates the source that determined the final requireInvoice value. Only present when operator setting overrides user request.",
                          "nullable": true
                        },
                        "originalRequestValue": {
                          "type": "boolean",
                          "description": "The originally requested requireInvoice value when operator override occurred. Only present when requireInvoiceEnforcedBy is 'operator_setting'.",
                          "nullable": true
                        },
                        "invoiceType": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "nullable": true
                        },
                        "individualName": {
                          "type": "string",
                          "nullable": true
                        },
                        "individualPersonalId": {
                          "type": "string",
                          "nullable": true
                        },
                        "individualTaxId": {
                          "type": "string",
                          "nullable": true
                        },
                        "companyName": {
                          "type": "string",
                          "nullable": true
                        },
                        "companyRegNo": {
                          "type": "string",
                          "nullable": true
                        },
                        "companyTaxId": {
                          "type": "string",
                          "nullable": true
                        },
                        "companyTaxAdministrationOfficeName": {
                          "type": "string",
                          "nullable": true
                        },
                        "country": {
                          "type": "string",
                          "nullable": true,
                          "enum": [
                            "AF",
                            "AX",
                            "AL",
                            "DZ",
                            "AS",
                            "AD",
                            "AO",
                            "AI",
                            "AQ",
                            "AG",
                            "AR",
                            "AM",
                            "AW",
                            "AU",
                            "AT",
                            "AZ",
                            "BS",
                            "BH",
                            "BD",
                            "BB",
                            "BY",
                            "BE",
                            "BZ",
                            "BJ",
                            "BM",
                            "BT",
                            "BO",
                            "BQ",
                            "BA",
                            "BW",
                            "BV",
                            "BR",
                            "IO",
                            "BN",
                            "BG",
                            "BF",
                            "BI",
                            "KH",
                            "CM",
                            "CA",
                            "CV",
                            "KY",
                            "CF",
                            "TD",
                            "CL",
                            "CN",
                            "CX",
                            "CC",
                            "CO",
                            "KM",
                            "CG",
                            "CD",
                            "CK",
                            "CR",
                            "CI",
                            "HR",
                            "CU",
                            "CW",
                            "CY",
                            "CZ",
                            "DK",
                            "DJ",
                            "DM",
                            "DO",
                            "EC",
                            "EG",
                            "SV",
                            "GQ",
                            "ER",
                            "EE",
                            "ET",
                            "FK",
                            "FO",
                            "FJ",
                            "FI",
                            "FR",
                            "GF",
                            "PF",
                            "TF",
                            "GA",
                            "GM",
                            "GE",
                            "DE",
                            "GH",
                            "GI",
                            "GR",
                            "GL",
                            "GD",
                            "GP",
                            "GU",
                            "GT",
                            "GG",
                            "GN",
                            "GW",
                            "GY",
                            "HT",
                            "HM",
                            "VA",
                            "HN",
                            "HK",
                            "HU",
                            "IS",
                            "IN",
                            "ID",
                            "IR",
                            "IQ",
                            "IE",
                            "IM",
                            "IL",
                            "IT",
                            "JM",
                            "JP",
                            "JE",
                            "JO",
                            "KZ",
                            "KE",
                            "KI",
                            "KP",
                            "KR",
                            "XK",
                            "KW",
                            "KG",
                            "LA",
                            "LV",
                            "LB",
                            "LS",
                            "LR",
                            "LY",
                            "LI",
                            "LT",
                            "LU",
                            "MO",
                            "MK",
                            "MG",
                            "MW",
                            "MY",
                            "MV",
                            "ML",
                            "MT",
                            "MH",
                            "MQ",
                            "MR",
                            "MU",
                            "YT",
                            "MX",
                            "FM",
                            "MD",
                            "MC",
                            "MN",
                            "ME",
                            "MS",
                            "MA",
                            "MZ",
                            "MM",
                            "NA",
                            "NR",
                            "NP",
                            "NL",
                            "NC",
                            "NZ",
                            "NI",
                            "NE",
                            "NG",
                            "NU",
                            "NF",
                            "MP",
                            "NO",
                            "OM",
                            "PK",
                            "PW",
                            "PS",
                            "PA",
                            "PG",
                            "PY",
                            "PE",
                            "PH",
                            "PN",
                            "PL",
                            "PT",
                            "PR",
                            "QA",
                            "RE",
                            "RO",
                            "RU",
                            "RW",
                            "BL",
                            "SH",
                            "KN",
                            "LC",
                            "MF",
                            "PM",
                            "VC",
                            "WS",
                            "SM",
                            "ST",
                            "SA",
                            "SN",
                            "RS",
                            "SC",
                            "SL",
                            "SG",
                            "SX",
                            "SK",
                            "SI",
                            "SB",
                            "SO",
                            "ZA",
                            "GS",
                            "SS",
                            "ES",
                            "LK",
                            "SD",
                            "SR",
                            "SJ",
                            "SZ",
                            "SE",
                            "CH",
                            "SY",
                            "TW",
                            "TJ",
                            "TZ",
                            "TH",
                            "TL",
                            "TG",
                            "TK",
                            "TO",
                            "TT",
                            "TN",
                            "TR",
                            "TM",
                            "TC",
                            "TV",
                            "UG",
                            "UA",
                            "AE",
                            "GB",
                            "US",
                            "UM",
                            "UY",
                            "UZ",
                            "VU",
                            "VE",
                            "VN",
                            "VG",
                            "VI",
                            "WF",
                            "EH",
                            "YE",
                            "ZM",
                            "ZW"
                          ]
                        },
                        "region": {
                          "type": "string",
                          "nullable": true,
                          "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
                        },
                        "state": {
                          "description": "When the selected country is one of US, AU, CA, UM or RO",
                          "anyOf": [
                            {
                              "title": "US State",
                              "description": "When the country is US.",
                              "type": "string",
                              "enum": [
                                "AL",
                                "AK",
                                "AS",
                                "AZ",
                                "AR",
                                "CA",
                                "CO",
                                "CT",
                                "DE",
                                "DC",
                                "FM",
                                "FL",
                                "GA",
                                "GU",
                                "HI",
                                "ID",
                                "IL",
                                "IN",
                                "IA",
                                "KS",
                                "KY",
                                "LA",
                                "ME",
                                "MH",
                                "MD",
                                "MA",
                                "MI",
                                "MN",
                                "MS",
                                "MO",
                                "MT",
                                "NE",
                                "NV",
                                "NH",
                                "NJ",
                                "NM",
                                "NY",
                                "NC",
                                "ND",
                                "MP",
                                "OH",
                                "OK",
                                "OR",
                                "PW",
                                "PA",
                                "PR",
                                "RI",
                                "SC",
                                "SD",
                                "TN",
                                "TX",
                                "UT",
                                "VT",
                                "VI",
                                "VA",
                                "WA",
                                "WV",
                                "WI",
                                "WY"
                              ]
                            },
                            {
                              "title": "Australian State",
                              "description": "When the country is AU.",
                              "type": "string",
                              "enum": [
                                "NSW",
                                "VIC",
                                "QLD",
                                "WA",
                                "SA",
                                "TAS",
                                "ACT",
                                "NT",
                                "JBT",
                                "CX",
                                "NF",
                                "CC",
                                "AQ",
                                "CSI",
                                "ACI",
                                "HM"
                              ]
                            },
                            {
                              "title": "Canadian Province",
                              "description": "When the country is CA.",
                              "type": "string",
                              "enum": [
                                "AB",
                                "BC",
                                "MB",
                                "NB",
                                "NL",
                                "NT",
                                "NS",
                                "NU",
                                "ON",
                                "PE",
                                "QC",
                                "SK",
                                "YT"
                              ]
                            },
                            {
                              "title": "US Minor Outlying Islands Territory",
                              "description": "When the country is UM.",
                              "type": "string",
                              "enum": [
                                "81",
                                "84",
                                "85",
                                "67",
                                "89",
                                "71",
                                "76",
                                "95",
                                "79"
                              ]
                            },
                            {
                              "title": "Romanian County",
                              "description": "When the country is RO.",
                              "type": "string",
                              "enum": [
                                "AB",
                                "AR",
                                "AG",
                                "BC",
                                "BH",
                                "BN",
                                "BT",
                                "BV",
                                "BR",
                                "B",
                                "BZ",
                                "CL",
                                "CS",
                                "CT",
                                "CV",
                                "DB",
                                "DJ",
                                "GL",
                                "GR",
                                "GJ",
                                "HR",
                                "HD",
                                "IL",
                                "IS",
                                "IF",
                                "MM",
                                "MH",
                                "MS",
                                "NT",
                                "OT",
                                "PH",
                                "SM",
                                "SJ",
                                "SB",
                                "SV",
                                "TR",
                                "TM",
                                "TL",
                                "VS",
                                "VL",
                                "VN"
                              ]
                            }
                          ]
                        },
                        "city": {
                          "type": "string",
                          "nullable": true
                        },
                        "postCode": {
                          "type": "string",
                          "nullable": true
                        },
                        "address": {
                          "type": "string",
                          "nullable": true
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "operatorId"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "email": {
                "type": "string",
                "format": "email"
              },
              "emailVerified": {
                "type": "string",
                "description": "ISO 8601 formatted date",
                "readOnly": true,
                "nullable": true,
                "example": "2022-11-12 12:00:00"
              },
              "requirePasswordReset": {
                "type": "boolean",
                "description": "Sets a requirement for the user to set a new password when they next open the app. After a new password is set, this option resets automatically."
              },
              "firstName": {
                "type": "string",
                "nullable": true
              },
              "middleName": {
                "type": "string",
                "nullable": true
              },
              "lastName": {
                "type": "string",
                "nullable": true
              },
              "phone": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true
              },
              "state": {
                "type": "string",
                "nullable": true
              },
              "city": {
                "type": "string",
                "nullable": true
              },
              "postCode": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true
              },
              "vehicleNo": {
                "type": "string",
                "nullable": true
              },
              "personalId": {
                "type": "string"
              },
              "companyName": {
                "type": "string",
                "nullable": true
              },
              "locale": {
                "type": "string",
                "nullable": true,
                "example": "en-GB"
              },
              "balance": {
                "type": "number",
                "multipleOf": 0.001,
                "description": "The current amount in the balance of the user (in the base currency). Would not be returned in the response if the user is related to a Partner without \"addUserBalance\" permission"
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "description": "* `enabled` Enabled - the user is allowed to use the system\n* `disabled` Disabled - the user is NOT allowed to use the system\n"
              },
              "userGroupIds": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "externalId": {
                "type": "string",
                "nullable": true,
                "readOnly": true,
                "description": "Third party identifier of the user"
              },
              "subscriptionId": {
                "type": "integer",
                "nullable": true,
                "readOnly": true,
                "description": "user subscription id"
              },
              "options": {
                "type": "object",
                "properties": {
                  "sessionsAllowed": {
                    "type": "string",
                    "description": "Determine the number of sessions a user could start - single or multiple simultaneous sessions, or whether the user could start simultaneous sessions with several Id Tags.",
                    "enum": [
                      "single_session",
                      "multiple_simultaneous_sessions_per_idtag",
                      "simultaneous_use_of_idtags",
                      "multiple_simultaneous_sessions_remotely_and_idtags"
                    ]
                  }
                }
              },
              "password": {
                "type": "string",
                "readOnly": true,
                "nullable": true,
                "description": "Returns the hashed password. This property is optional and can be enabled by request.\n"
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "lastActivityAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "nullable": true,
                "description": "When the user was last active"
              },
              "lastActivitySource": {
                "type": "string",
                "readOnly": true,
                "nullable": true,
                "enum": [
                  "device_activity",
                  "device_logout",
                  "id_tag_authorization",
                  "transaction",
                  "registration"
                ],
                "description": "What triggered the last activity update"
              },
              "createdBy": {
                "type": "string",
                "readOnly": true,
                "description": "The return values are `admin:` , `partner:` - the value after the colon is the respective ID of the admin account or the partner. `token:` - the value after the colon is the admin token. `mobile_api` - means that the User registered themselves through the mobile app."
              },
              "receiveNewsAndPromotions": {
                "type": "boolean",
                "description": "Shows if the user has opted into receiving news and promotions."
              },
              "skipPreAuthorization": {
                "type": "boolean",
                "description": "When enabled, the user can start charging sessions without a pre-authorization hold on their payment method."
              },
              "skipUnpaidSessionCheck": {
                "type": "boolean",
                "description": "When enabled, this user can start new sessions even if they have unpaid sessions or unpaid post-paid subscription fees."
              },
              "partnerInvites": {
                "type": "array",
                "description": "It's a part of the response only if request is called with `include.partnerInvites` query parameter.",
                "readOnly": true,
                "nullable": true,
                "items": {
                  "type": "object",
                  "description": "Partner Invite",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "partnerId": {
                      "type": "integer"
                    },
                    "sendViaEmail": {
                      "type": "boolean"
                    },
                    "email": {
                      "type": "string",
                      "description": "Email used to identify and associate the invitee. May be null when the invite was created without an email.",
                      "format": "email",
                      "nullable": true
                    },
                    "language": {
                      "type": "string",
                      "description": "The language of the e-mail sent to the invitee. If none selected, the default end-users language will be used."
                    },
                    "acceptUrl": {
                      "type": "string",
                      "format": "url",
                      "readOnly": true,
                      "nullable": true
                    },
                    "options": {
                      "type": "object",
                      "properties": {
                        "allowCorporateAccountBilling": {
                          "type": "boolean",
                          "default": false
                        },
                        "limitCorporateAccountBillingToPartnerChargePoints": {
                          "type": "boolean",
                          "description": "Whether the assigned corporate billing policy restricts corporate billing to the partner's charge points.",
                          "default": false
                        },
                        "allowAccessToPrivateChargePoints": {
                          "type": "boolean",
                          "default": false
                        },
                        "corporateBillingLimit": {
                          "type": "number",
                          "format": "decimal",
                          "nullable": true,
                          "minimum": 0,
                          "description": "The individual corporate billing limit amount from the assigned corporate billing policy. Must be a positive decimal when set. When `null`, no individual limit is applied. Only applicable when `allowCorporateAccountBilling` is `true`."
                        }
                      }
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "pending",
                        "sent",
                        "accepted"
                      ],
                      "readOnly": true
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time",
                      "readOnly": true
                    },
                    "acceptedAt": {
                      "type": "string",
                      "format": "date-time",
                      "readOnly": true,
                      "nullable": true
                    },
                    "userId": {
                      "type": "integer",
                      "readOnly": true,
                      "nullable": true
                    },
                    "lastUpdatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO 8601 formatted date",
                      "readOnly": true
                    }
                  },
                  "required": [
                    "id",
                    "partnerId",
                    "status",
                    "createdAt"
                  ]
                }
              },
              "bankDetails": {
                "type": "object",
                "properties": {
                  "bankIban": {
                    "type": "string",
                    "nullable": true,
                    "description": "IBAN of the bank account."
                  },
                  "bankCode": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                  },
                  "bankAccountNumber": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank account number."
                  },
                  "bankAccountType": {
                    "type": "string",
                    "nullable": true,
                    "description": "Type of the bank account."
                  },
                  "bankBic": {
                    "type": "string",
                    "nullable": true,
                    "description": "BIC/SWIFT code of the bank."
                  }
                }
              },
              "externalAppData": {
                "example": {
                  "externalCustomerId": "uuid"
                },
                "description": "The externalAppData field is an object designed to hold additional data related to external integrations.\nThis object can contain the following keys, which are currently supported:\n\n- `externalCustomerId`: A string representing the customer ID of the user in an external payment provider integration. This ID is used to link the user's account within the system to their corresponding account in the external payment provider.\n\nIf no information is available, the externalAppData object will be null. It's a part of the response only if request is called with `include.externalAppData` query parameter.\n",
                "type": "object",
                "nullable": true,
                "additionalProperties": true
              },
              "invoiceDetails": {
                "description": "The user's invoice details for invoice generation. The response structure varies depending on the operator's invoice integration type.\nIt's a part of the response only if request is called with `include[]=invoiceDetails` query parameter.\nReturns `null` if the user has no invoice details or the operator has no invoice integration configured.\n",
                "readOnly": true,
                "type": "object",
                "nullable": true,
                "anyOf": [
                  {
                    "type": "object",
                    "title": "Built-in invoicing",
                    "description": "Built-in invoice processor",
                    "properties": {
                      "requireInvoice": {
                        "type": "boolean",
                        "default": false,
                        "description": "Whether invoice is required for this user. Note: If the operator has 'Always collect Invoice Details' enabled in their invoice integration settings, this field will always be true regardless of the request payload value."
                      },
                      "requireInvoiceLastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date. The date is automatically updated when the value of the \"requireInvoice\" field changes.",
                        "readOnly": true,
                        "nullable": true
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "requireInvoiceEnforcedBy": {
                        "type": "string",
                        "enum": [
                          "operator_setting",
                          "user_request"
                        ],
                        "description": "Indicates the source that determined the final requireInvoice value. Only present when operator setting overrides user request.",
                        "nullable": true
                      },
                      "originalRequestValue": {
                        "type": "boolean",
                        "description": "The originally requested requireInvoice value when operator override occurred. Only present when requireInvoiceEnforcedBy is 'operator_setting'.",
                        "nullable": true
                      },
                      "invoiceType": {
                        "type": "string",
                        "enum": [
                          "individual",
                          "company"
                        ],
                        "nullable": true
                      },
                      "individualName": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualPersonalId": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyName": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyRegNo": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxAdministrationOfficeName": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "region": {
                        "type": "string",
                        "nullable": true,
                        "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
                      },
                      "state": {
                        "description": "When the selected country is one of US, AU, CA, UM or RO",
                        "anyOf": [
                          {
                            "title": "US State",
                            "description": "When the country is US.",
                            "type": "string",
                            "enum": [
                              "AL",
                              "AK",
                              "AS",
                              "AZ",
                              "AR",
                              "CA",
                              "CO",
                              "CT",
                              "DE",
                              "DC",
                              "FM",
                              "FL",
                              "GA",
                              "GU",
                              "HI",
                              "ID",
                              "IL",
                              "IN",
                              "IA",
                              "KS",
                              "KY",
                              "LA",
                              "ME",
                              "MH",
                              "MD",
                              "MA",
                              "MI",
                              "MN",
                              "MS",
                              "MO",
                              "MT",
                              "NE",
                              "NV",
                              "NH",
                              "NJ",
                              "NM",
                              "NY",
                              "NC",
                              "ND",
                              "MP",
                              "OH",
                              "OK",
                              "OR",
                              "PW",
                              "PA",
                              "PR",
                              "RI",
                              "SC",
                              "SD",
                              "TN",
                              "TX",
                              "UT",
                              "VT",
                              "VI",
                              "VA",
                              "WA",
                              "WV",
                              "WI",
                              "WY"
                            ]
                          },
                          {
                            "title": "Australian State",
                            "description": "When the country is AU.",
                            "type": "string",
                            "enum": [
                              "NSW",
                              "VIC",
                              "QLD",
                              "WA",
                              "SA",
                              "TAS",
                              "ACT",
                              "NT",
                              "JBT",
                              "CX",
                              "NF",
                              "CC",
                              "AQ",
                              "CSI",
                              "ACI",
                              "HM"
                            ]
                          },
                          {
                            "title": "Canadian Province",
                            "description": "When the country is CA.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "BC",
                              "MB",
                              "NB",
                              "NL",
                              "NT",
                              "NS",
                              "NU",
                              "ON",
                              "PE",
                              "QC",
                              "SK",
                              "YT"
                            ]
                          },
                          {
                            "title": "US Minor Outlying Islands Territory",
                            "description": "When the country is UM.",
                            "type": "string",
                            "enum": [
                              "81",
                              "84",
                              "85",
                              "67",
                              "89",
                              "71",
                              "76",
                              "95",
                              "79"
                            ]
                          },
                          {
                            "title": "Romanian County",
                            "description": "When the country is RO.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "AR",
                              "AG",
                              "BC",
                              "BH",
                              "BN",
                              "BT",
                              "BV",
                              "BR",
                              "B",
                              "BZ",
                              "CL",
                              "CS",
                              "CT",
                              "CV",
                              "DB",
                              "DJ",
                              "GL",
                              "GR",
                              "GJ",
                              "HR",
                              "HD",
                              "IL",
                              "IS",
                              "IF",
                              "MM",
                              "MH",
                              "MS",
                              "NT",
                              "OT",
                              "PH",
                              "SM",
                              "SJ",
                              "SB",
                              "SV",
                              "TR",
                              "TM",
                              "TL",
                              "VS",
                              "VL",
                              "VN"
                            ]
                          }
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "required": [
                      "requireInvoice",
                      "invoiceType"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "title": "Cardcom Invoice Manager",
                    "description": "Invoice processor - Cardcom",
                    "properties": {
                      "invoiceRequired": {
                        "type": "boolean",
                        "default": false
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "clientType": {
                        "type": "string",
                        "enum": [
                          "individual",
                          "company"
                        ],
                        "nullable": true
                      },
                      "individual": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "nullable": true
                          },
                          "email": {
                            "type": "string",
                            "nullable": true
                          },
                          "mobilePhoneNumber": {
                            "type": "string",
                            "nullable": true
                          },
                          "taxId": {
                            "type": "string",
                            "nullable": true
                          },
                          "country": {
                            "type": "string",
                            "nullable": true,
                            "enum": [
                              "AF",
                              "AX",
                              "AL",
                              "DZ",
                              "AS",
                              "AD",
                              "AO",
                              "AI",
                              "AQ",
                              "AG",
                              "AR",
                              "AM",
                              "AW",
                              "AU",
                              "AT",
                              "AZ",
                              "BS",
                              "BH",
                              "BD",
                              "BB",
                              "BY",
                              "BE",
                              "BZ",
                              "BJ",
                              "BM",
                              "BT",
                              "BO",
                              "BQ",
                              "BA",
                              "BW",
                              "BV",
                              "BR",
                              "IO",
                              "BN",
                              "BG",
                              "BF",
                              "BI",
                              "KH",
                              "CM",
                              "CA",
                              "CV",
                              "KY",
                              "CF",
                              "TD",
                              "CL",
                              "CN",
                              "CX",
                              "CC",
                              "CO",
                              "KM",
                              "CG",
                              "CD",
                              "CK",
                              "CR",
                              "CI",
                              "HR",
                              "CU",
                              "CW",
                              "CY",
                              "CZ",
                              "DK",
                              "DJ",
                              "DM",
                              "DO",
                              "EC",
                              "EG",
                              "SV",
                              "GQ",
                              "ER",
                              "EE",
                              "ET",
                              "FK",
                              "FO",
                              "FJ",
                              "FI",
                              "FR",
                              "GF",
                              "PF",
                              "TF",
                              "GA",
                              "GM",
                              "GE",
                              "DE",
                              "GH",
                              "GI",
                              "GR",
                              "GL",
                              "GD",
                              "GP",
                              "GU",
                              "GT",
                              "GG",
                              "GN",
                              "GW",
                              "GY",
                              "HT",
                              "HM",
                              "VA",
                              "HN",
                              "HK",
                              "HU",
                              "IS",
                              "IN",
                              "ID",
                              "IR",
                              "IQ",
                              "IE",
                              "IM",
                              "IL",
                              "IT",
                              "JM",
                              "JP",
                              "JE",
                              "JO",
                              "KZ",
                              "KE",
                              "KI",
                              "KP",
                              "KR",
                              "XK",
                              "KW",
                              "KG",
                              "LA",
                              "LV",
                              "LB",
                              "LS",
                              "LR",
                              "LY",
                              "LI",
                              "LT",
                              "LU",
                              "MO",
                              "MK",
                              "MG",
                              "MW",
                              "MY",
                              "MV",
                              "ML",
                              "MT",
                              "MH",
                              "MQ",
                              "MR",
                              "MU",
                              "YT",
                              "MX",
                              "FM",
                              "MD",
                              "MC",
                              "MN",
                              "ME",
                              "MS",
                              "MA",
                              "MZ",
                              "MM",
                              "NA",
                              "NR",
                              "NP",
                              "NL",
                              "NC",
                              "NZ",
                              "NI",
                              "NE",
                              "NG",
                              "NU",
                              "NF",
                              "MP",
                              "NO",
                              "OM",
                              "PK",
                              "PW",
                              "PS",
                              "PA",
                              "PG",
                              "PY",
                              "PE",
                              "PH",
                              "PN",
                              "PL",
                              "PT",
                              "PR",
                              "QA",
                              "RE",
                              "RO",
                              "RU",
                              "RW",
                              "BL",
                              "SH",
                              "KN",
                              "LC",
                              "MF",
                              "PM",
                              "VC",
                              "WS",
                              "SM",
                              "ST",
                              "SA",
                              "SN",
                              "RS",
                              "SC",
                              "SL",
                              "SG",
                              "SX",
                              "SK",
                              "SI",
                              "SB",
                              "SO",
                              "ZA",
                              "GS",
                              "SS",
                              "ES",
                              "LK",
                              "SD",
                              "SR",
                              "SJ",
                              "SZ",
                              "SE",
                              "CH",
                              "SY",
                              "TW",
                              "TJ",
                              "TZ",
                              "TH",
                              "TL",
                              "TG",
                              "TK",
                              "TO",
                              "TT",
                              "TN",
                              "TR",
                              "TM",
                              "TC",
                              "TV",
                              "UG",
                              "UA",
                              "AE",
                              "GB",
                              "US",
                              "UM",
                              "UY",
                              "UZ",
                              "VU",
                              "VE",
                              "VN",
                              "VG",
                              "VI",
                              "WF",
                              "EH",
                              "YE",
                              "ZM",
                              "ZW"
                            ]
                          },
                          "city": {
                            "type": "string",
                            "nullable": true
                          },
                          "postcode": {
                            "type": "string",
                            "nullable": true
                          },
                          "address": {
                            "type": "string",
                            "nullable": true
                          }
                        }
                      },
                      "company": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "nullable": true
                          },
                          "email": {
                            "type": "string",
                            "nullable": true
                          },
                          "mobilePhoneNumber": {
                            "type": "string",
                            "nullable": true
                          },
                          "landlinePhoneNumber": {
                            "type": "string",
                            "nullable": true
                          },
                          "taxId": {
                            "type": "string",
                            "nullable": true
                          },
                          "country": {
                            "type": "string",
                            "nullable": true,
                            "enum": [
                              "AF",
                              "AX",
                              "AL",
                              "DZ",
                              "AS",
                              "AD",
                              "AO",
                              "AI",
                              "AQ",
                              "AG",
                              "AR",
                              "AM",
                              "AW",
                              "AU",
                              "AT",
                              "AZ",
                              "BS",
                              "BH",
                              "BD",
                              "BB",
                              "BY",
                              "BE",
                              "BZ",
                              "BJ",
                              "BM",
                              "BT",
                              "BO",
                              "BQ",
                              "BA",
                              "BW",
                              "BV",
                              "BR",
                              "IO",
                              "BN",
                              "BG",
                              "BF",
                              "BI",
                              "KH",
                              "CM",
                              "CA",
                              "CV",
                              "KY",
                              "CF",
                              "TD",
                              "CL",
                              "CN",
                              "CX",
                              "CC",
                              "CO",
                              "KM",
                              "CG",
                              "CD",
                              "CK",
                              "CR",
                              "CI",
                              "HR",
                              "CU",
                              "CW",
                              "CY",
                              "CZ",
                              "DK",
                              "DJ",
                              "DM",
                              "DO",
                              "EC",
                              "EG",
                              "SV",
                              "GQ",
                              "ER",
                              "EE",
                              "ET",
                              "FK",
                              "FO",
                              "FJ",
                              "FI",
                              "FR",
                              "GF",
                              "PF",
                              "TF",
                              "GA",
                              "GM",
                              "GE",
                              "DE",
                              "GH",
                              "GI",
                              "GR",
                              "GL",
                              "GD",
                              "GP",
                              "GU",
                              "GT",
                              "GG",
                              "GN",
                              "GW",
                              "GY",
                              "HT",
                              "HM",
                              "VA",
                              "HN",
                              "HK",
                              "HU",
                              "IS",
                              "IN",
                              "ID",
                              "IR",
                              "IQ",
                              "IE",
                              "IM",
                              "IL",
                              "IT",
                              "JM",
                              "JP",
                              "JE",
                              "JO",
                              "KZ",
                              "KE",
                              "KI",
                              "KP",
                              "KR",
                              "XK",
                              "KW",
                              "KG",
                              "LA",
                              "LV",
                              "LB",
                              "LS",
                              "LR",
                              "LY",
                              "LI",
                              "LT",
                              "LU",
                              "MO",
                              "MK",
                              "MG",
                              "MW",
                              "MY",
                              "MV",
                              "ML",
                              "MT",
                              "MH",
                              "MQ",
                              "MR",
                              "MU",
                              "YT",
                              "MX",
                              "FM",
                              "MD",
                              "MC",
                              "MN",
                              "ME",
                              "MS",
                              "MA",
                              "MZ",
                              "MM",
                              "NA",
                              "NR",
                              "NP",
                              "NL",
                              "NC",
                              "NZ",
                              "NI",
                              "NE",
                              "NG",
                              "NU",
                              "NF",
                              "MP",
                              "NO",
                              "OM",
                              "PK",
                              "PW",
                              "PS",
                              "PA",
                              "PG",
                              "PY",
                              "PE",
                              "PH",
                              "PN",
                              "PL",
                              "PT",
                              "PR",
                              "QA",
                              "RE",
                              "RO",
                              "RU",
                              "RW",
                              "BL",
                              "SH",
                              "KN",
                              "LC",
                              "MF",
                              "PM",
                              "VC",
                              "WS",
                              "SM",
                              "ST",
                              "SA",
                              "SN",
                              "RS",
                              "SC",
                              "SL",
                              "SG",
                              "SX",
                              "SK",
                              "SI",
                              "SB",
                              "SO",
                              "ZA",
                              "GS",
                              "SS",
                              "ES",
                              "LK",
                              "SD",
                              "SR",
                              "SJ",
                              "SZ",
                              "SE",
                              "CH",
                              "SY",
                              "TW",
                              "TJ",
                              "TZ",
                              "TH",
                              "TL",
                              "TG",
                              "TK",
                              "TO",
                              "TT",
                              "TN",
                              "TR",
                              "TM",
                              "TC",
                              "TV",
                              "UG",
                              "UA",
                              "AE",
                              "GB",
                              "US",
                              "UM",
                              "UY",
                              "UZ",
                              "VU",
                              "VE",
                              "VN",
                              "VG",
                              "VI",
                              "WF",
                              "EH",
                              "YE",
                              "ZM",
                              "ZW"
                            ]
                          },
                          "city": {
                            "type": "string",
                            "nullable": true
                          },
                          "postcode": {
                            "type": "string",
                            "nullable": true
                          },
                          "address": {
                            "type": "string",
                            "nullable": true
                          }
                        }
                      }
                    },
                    "required": [
                      "invoiceRequired",
                      "clientType",
                      "individual",
                      "company"
                    ]
                  },
                  {
                    "type": "object",
                    "title": "SoftOne Invoice Manager",
                    "description": "Invoice processor - SoftOne",
                    "properties": {
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "firstName": {
                        "type": "string",
                        "nullable": true
                      },
                      "lastName": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postcode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Ecpay Invoice Manager",
                    "description": "Invoice processor - Ecpay",
                    "properties": {
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "invoiceType": {
                        "type": "string",
                        "enum": [
                          "EInvoice",
                          "Company",
                          "Donation"
                        ]
                      },
                      "carrierType": {
                        "type": "string",
                        "enum": [
                          "Mobile",
                          "Citizen",
                          "GreenWorld"
                        ],
                        "nullable": true
                      },
                      "loveCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "mobileBarCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "citizenId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyId": {
                        "type": "string",
                        "nullable": true
                      },
                      "name": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postcode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Avalara e-invoicing",
                    "description": "Avalara e-invoicing processor.\n\nCarries the same fields as the platform's native invoice integration, plus the two Italian SDI buyer\nidentifiers. Those two are only present when the operator's Avalara integration has an Italian mandate\nand the corresponding field is enabled, and they only carry a value for company customers.\n\nWhen both identifiers are collected and enabled, an Italian company (`invoiceType` is `company` and\n`country` is `IT`) must supply at least one of `recipientCode` and `recipientCertifiedEmail` on write.\nThis either-or requirement is conditional on the invoice type and the country, so it cannot be\nexpressed per field in this schema.\n",
                    "required": [
                      "requireInvoice",
                      "invoiceType"
                    ],
                    "properties": {
                      "recipientCode": {
                        "type": "string",
                        "minLength": 7,
                        "maxLength": 7,
                        "pattern": "^[A-Za-z0-9]{7}$",
                        "description": "Italian SDI recipient code of the buyer. Exactly seven alphanumeric characters, stored uppercased.\nOmitted for individual customers and for company customers that have not supplied it.\n",
                        "example": "ABC1234"
                      },
                      "recipientCertifiedEmail": {
                        "type": "string",
                        "format": "email",
                        "description": "Certified electronic mail (PEC) address of the buyer. Omitted for individual customers and for\ncompany customers that have not supplied it.\n",
                        "example": "buyer@pec.example.com"
                      },
                      "requireInvoice": {
                        "type": "boolean",
                        "default": false,
                        "description": "Whether invoice is required for this user. Note: If the operator has 'Always collect Invoice Details' enabled in their invoice integration settings, this field will always be true regardless of the request payload value."
                      },
                      "requireInvoiceLastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date. The date is automatically updated when the value of the \"requireInvoice\" field changes.",
                        "readOnly": true,
                        "nullable": true
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "requireInvoiceEnforcedBy": {
                        "type": "string",
                        "enum": [
                          "operator_setting",
                          "user_request"
                        ],
                        "description": "Indicates the source that determined the final requireInvoice value. Only present when operator setting overrides user request.",
                        "nullable": true
                      },
                      "originalRequestValue": {
                        "type": "boolean",
                        "description": "The originally requested requireInvoice value when operator override occurred. Only present when requireInvoiceEnforcedBy is 'operator_setting'.",
                        "nullable": true
                      },
                      "invoiceType": {
                        "type": "string",
                        "enum": [
                          "individual",
                          "company"
                        ],
                        "nullable": true
                      },
                      "individualName": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualPersonalId": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyName": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyRegNo": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxAdministrationOfficeName": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "region": {
                        "type": "string",
                        "nullable": true,
                        "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
                      },
                      "state": {
                        "description": "When the selected country is one of US, AU, CA, UM or RO",
                        "anyOf": [
                          {
                            "title": "US State",
                            "description": "When the country is US.",
                            "type": "string",
                            "enum": [
                              "AL",
                              "AK",
                              "AS",
                              "AZ",
                              "AR",
                              "CA",
                              "CO",
                              "CT",
                              "DE",
                              "DC",
                              "FM",
                              "FL",
                              "GA",
                              "GU",
                              "HI",
                              "ID",
                              "IL",
                              "IN",
                              "IA",
                              "KS",
                              "KY",
                              "LA",
                              "ME",
                              "MH",
                              "MD",
                              "MA",
                              "MI",
                              "MN",
                              "MS",
                              "MO",
                              "MT",
                              "NE",
                              "NV",
                              "NH",
                              "NJ",
                              "NM",
                              "NY",
                              "NC",
                              "ND",
                              "MP",
                              "OH",
                              "OK",
                              "OR",
                              "PW",
                              "PA",
                              "PR",
                              "RI",
                              "SC",
                              "SD",
                              "TN",
                              "TX",
                              "UT",
                              "VT",
                              "VI",
                              "VA",
                              "WA",
                              "WV",
                              "WI",
                              "WY"
                            ]
                          },
                          {
                            "title": "Australian State",
                            "description": "When the country is AU.",
                            "type": "string",
                            "enum": [
                              "NSW",
                              "VIC",
                              "QLD",
                              "WA",
                              "SA",
                              "TAS",
                              "ACT",
                              "NT",
                              "JBT",
                              "CX",
                              "NF",
                              "CC",
                              "AQ",
                              "CSI",
                              "ACI",
                              "HM"
                            ]
                          },
                          {
                            "title": "Canadian Province",
                            "description": "When the country is CA.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "BC",
                              "MB",
                              "NB",
                              "NL",
                              "NT",
                              "NS",
                              "NU",
                              "ON",
                              "PE",
                              "QC",
                              "SK",
                              "YT"
                            ]
                          },
                          {
                            "title": "US Minor Outlying Islands Territory",
                            "description": "When the country is UM.",
                            "type": "string",
                            "enum": [
                              "81",
                              "84",
                              "85",
                              "67",
                              "89",
                              "71",
                              "76",
                              "95",
                              "79"
                            ]
                          },
                          {
                            "title": "Romanian County",
                            "description": "When the country is RO.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "AR",
                              "AG",
                              "BC",
                              "BH",
                              "BN",
                              "BT",
                              "BV",
                              "BR",
                              "B",
                              "BZ",
                              "CL",
                              "CS",
                              "CT",
                              "CV",
                              "DB",
                              "DJ",
                              "GL",
                              "GR",
                              "GJ",
                              "HR",
                              "HD",
                              "IL",
                              "IS",
                              "IF",
                              "MM",
                              "MH",
                              "MS",
                              "NT",
                              "OT",
                              "PH",
                              "SM",
                              "SJ",
                              "SB",
                              "SV",
                              "TR",
                              "TM",
                              "TL",
                              "VS",
                              "VL",
                              "VN"
                            ]
                          }
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  }
                ]
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "operatorId"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "email": {
                "type": "string",
                "format": "email"
              },
              "emailVerified": {
                "type": "string",
                "description": "ISO 8601 formatted date",
                "readOnly": true,
                "nullable": true,
                "example": "2022-11-12 12:00:00"
              },
              "requirePasswordReset": {
                "type": "boolean",
                "description": "Sets a requirement for the user to set a new password when they next open the app. After a new password is set, this option resets automatically."
              },
              "firstName": {
                "type": "string",
                "nullable": true
              },
              "middleName": {
                "type": "string",
                "nullable": true
              },
              "lastName": {
                "type": "string",
                "nullable": true
              },
              "phone": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true
              },
              "state": {
                "type": "string",
                "nullable": true
              },
              "city": {
                "type": "string",
                "nullable": true
              },
              "postCode": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true
              },
              "vehicleNo": {
                "type": "string",
                "nullable": true
              },
              "personalId": {
                "type": "string"
              },
              "companyName": {
                "type": "string",
                "nullable": true
              },
              "locale": {
                "type": "string",
                "nullable": true,
                "example": "en-GB"
              },
              "balance": {
                "type": "number",
                "multipleOf": 0.001,
                "description": "The current amount in the balance of the user (in the base currency). Would not be returned in the response if the user is related to a Partner without \"addUserBalance\" permission"
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "description": "* `enabled` Enabled - the user is allowed to use the system\n* `disabled` Disabled - the user is NOT allowed to use the system\n"
              },
              "userGroupIds": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "externalId": {
                "type": "string",
                "nullable": true,
                "readOnly": true,
                "description": "Third party identifier of the user"
              },
              "subscriptionId": {
                "type": "integer",
                "nullable": true,
                "readOnly": true,
                "description": "user subscription id"
              },
              "options": {
                "type": "object",
                "properties": {
                  "sessionsAllowed": {
                    "type": "string",
                    "description": "Determine the number of sessions a user could start - single or multiple simultaneous sessions, or whether the user could start simultaneous sessions with several Id Tags.",
                    "enum": [
                      "single_session",
                      "multiple_simultaneous_sessions_per_idtag",
                      "simultaneous_use_of_idtags",
                      "multiple_simultaneous_sessions_remotely_and_idtags"
                    ]
                  }
                }
              },
              "password": {
                "type": "string",
                "readOnly": true,
                "nullable": true,
                "description": "Returns the hashed password. This property is optional and can be enabled by request.\n"
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "lastActivityAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "nullable": true,
                "description": "When the user was last active"
              },
              "lastActivitySource": {
                "type": "string",
                "readOnly": true,
                "nullable": true,
                "enum": [
                  "device_activity",
                  "device_logout",
                  "id_tag_authorization",
                  "transaction",
                  "registration"
                ],
                "description": "What triggered the last activity update"
              },
              "createdBy": {
                "type": "string",
                "readOnly": true,
                "description": "The return values are `admin:` , `partner:` - the value after the colon is the respective ID of the admin account or the partner. `token:` - the value after the colon is the admin token. `mobile_api` - means that the User registered themselves through the mobile app."
              },
              "receiveNewsAndPromotions": {
                "type": "boolean",
                "description": "Shows if the user has opted into receiving news and promotions."
              },
              "skipPreAuthorization": {
                "type": "boolean",
                "description": "When enabled, the user can start charging sessions without a pre-authorization hold on their payment method."
              },
              "skipUnpaidSessionCheck": {
                "type": "boolean",
                "description": "When enabled, this user can start new sessions even if they have unpaid sessions or unpaid post-paid subscription fees."
              },
              "partnerInvites": {
                "type": "array",
                "description": "It's a part of the response only if request is called with `include.partnerInvites` query parameter.",
                "readOnly": true,
                "nullable": true,
                "items": {
                  "type": "object",
                  "description": "Partner Invite",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "partnerId": {
                      "type": "integer"
                    },
                    "sendViaEmail": {
                      "type": "boolean"
                    },
                    "email": {
                      "type": "string",
                      "description": "Email used to identify and associate the invitee. May be null when the invite was created without an email.",
                      "format": "email",
                      "nullable": true
                    },
                    "language": {
                      "type": "string",
                      "description": "The language of the e-mail sent to the invitee. If none selected, the default end-users language will be used."
                    },
                    "acceptUrl": {
                      "type": "string",
                      "format": "url",
                      "readOnly": true,
                      "nullable": true
                    },
                    "options": {
                      "type": "object",
                      "properties": {
                        "allowCorporateAccountBilling": {
                          "type": "boolean",
                          "default": false
                        },
                        "limitCorporateAccountBillingToPartnerChargePoints": {
                          "type": "boolean",
                          "description": "Whether the assigned corporate billing policy restricts corporate billing to the partner's charge points.",
                          "default": false
                        },
                        "allowAccessToPrivateChargePoints": {
                          "type": "boolean",
                          "default": false
                        },
                        "corporateBillingLimit": {
                          "type": "number",
                          "format": "decimal",
                          "nullable": true,
                          "minimum": 0,
                          "description": "The individual corporate billing limit amount from the assigned corporate billing policy. Must be a positive decimal when set. When `null`, no individual limit is applied. Only applicable when `allowCorporateAccountBilling` is `true`."
                        }
                      }
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "pending",
                        "sent",
                        "accepted"
                      ],
                      "readOnly": true
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time",
                      "readOnly": true
                    },
                    "acceptedAt": {
                      "type": "string",
                      "format": "date-time",
                      "readOnly": true,
                      "nullable": true
                    },
                    "userId": {
                      "type": "integer",
                      "readOnly": true,
                      "nullable": true
                    },
                    "lastUpdatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO 8601 formatted date",
                      "readOnly": true
                    }
                  },
                  "required": [
                    "id",
                    "partnerId",
                    "status",
                    "createdAt"
                  ]
                }
              },
              "bankDetails": {
                "type": "object",
                "properties": {
                  "bankIban": {
                    "type": "string",
                    "nullable": true,
                    "description": "IBAN of the bank account."
                  },
                  "bankCode": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                  },
                  "bankAccountNumber": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank account number."
                  },
                  "bankAccountType": {
                    "type": "string",
                    "nullable": true,
                    "description": "Type of the bank account."
                  },
                  "bankBic": {
                    "type": "string",
                    "nullable": true,
                    "description": "BIC/SWIFT code of the bank."
                  }
                }
              },
              "externalAppData": {
                "example": {
                  "externalCustomerId": "uuid"
                },
                "description": "The externalAppData field is an object designed to hold additional data related to external integrations.\nThis object can contain the following keys, which are currently supported:\n\n- `externalCustomerId`: A string representing the customer ID of the user in an external payment provider integration. This ID is used to link the user's account within the system to their corresponding account in the external payment provider.\n\nIf no information is available, the externalAppData object will be null. It's a part of the response only if request is called with `include.externalAppData` query parameter.\n",
                "type": "object",
                "nullable": true,
                "additionalProperties": true
              },
              "invoiceDetails": {
                "description": "The user's invoice details for invoice generation. The response structure varies depending on the operator's invoice integration type.\nIt's a part of the response only if request is called with `include[]=invoiceDetails` query parameter.\nReturns `null` if the user has no invoice details or the operator has no invoice integration configured.\n",
                "readOnly": true,
                "type": "object",
                "nullable": true,
                "anyOf": [
                  {
                    "type": "object",
                    "title": "Built-in invoicing",
                    "description": "Built-in invoice processor",
                    "properties": {
                      "requireInvoice": {
                        "type": "boolean",
                        "default": false,
                        "description": "Whether invoice is required for this user. Note: If the operator has 'Always collect Invoice Details' enabled in their invoice integration settings, this field will always be true regardless of the request payload value."
                      },
                      "requireInvoiceLastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date. The date is automatically updated when the value of the \"requireInvoice\" field changes.",
                        "readOnly": true,
                        "nullable": true
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "requireInvoiceEnforcedBy": {
                        "type": "string",
                        "enum": [
                          "operator_setting",
                          "user_request"
                        ],
                        "description": "Indicates the source that determined the final requireInvoice value. Only present when operator setting overrides user request.",
                        "nullable": true
                      },
                      "originalRequestValue": {
                        "type": "boolean",
                        "description": "The originally requested requireInvoice value when operator override occurred. Only present when requireInvoiceEnforcedBy is 'operator_setting'.",
                        "nullable": true
                      },
                      "invoiceType": {
                        "type": "string",
                        "enum": [
                          "individual",
                          "company"
                        ],
                        "nullable": true
                      },
                      "individualName": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualPersonalId": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyName": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyRegNo": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxAdministrationOfficeName": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "region": {
                        "type": "string",
                        "nullable": true,
                        "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
                      },
                      "state": {
                        "description": "When the selected country is one of US, AU, CA, UM or RO",
                        "anyOf": [
                          {
                            "title": "US State",
                            "description": "When the country is US.",
                            "type": "string",
                            "enum": [
                              "AL",
                              "AK",
                              "AS",
                              "AZ",
                              "AR",
                              "CA",
                              "CO",
                              "CT",
                              "DE",
                              "DC",
                              "FM",
                              "FL",
                              "GA",
                              "GU",
                              "HI",
                              "ID",
                              "IL",
                              "IN",
                              "IA",
                              "KS",
                              "KY",
                              "LA",
                              "ME",
                              "MH",
                              "MD",
                              "MA",
                              "MI",
                              "MN",
                              "MS",
                              "MO",
                              "MT",
                              "NE",
                              "NV",
                              "NH",
                              "NJ",
                              "NM",
                              "NY",
                              "NC",
                              "ND",
                              "MP",
                              "OH",
                              "OK",
                              "OR",
                              "PW",
                              "PA",
                              "PR",
                              "RI",
                              "SC",
                              "SD",
                              "TN",
                              "TX",
                              "UT",
                              "VT",
                              "VI",
                              "VA",
                              "WA",
                              "WV",
                              "WI",
                              "WY"
                            ]
                          },
                          {
                            "title": "Australian State",
                            "description": "When the country is AU.",
                            "type": "string",
                            "enum": [
                              "NSW",
                              "VIC",
                              "QLD",
                              "WA",
                              "SA",
                              "TAS",
                              "ACT",
                              "NT",
                              "JBT",
                              "CX",
                              "NF",
                              "CC",
                              "AQ",
                              "CSI",
                              "ACI",
                              "HM"
                            ]
                          },
                          {
                            "title": "Canadian Province",
                            "description": "When the country is CA.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "BC",
                              "MB",
                              "NB",
                              "NL",
                              "NT",
                              "NS",
                              "NU",
                              "ON",
                              "PE",
                              "QC",
                              "SK",
                              "YT"
                            ]
                          },
                          {
                            "title": "US Minor Outlying Islands Territory",
                            "description": "When the country is UM.",
                            "type": "string",
                            "enum": [
                              "81",
                              "84",
                              "85",
                              "67",
                              "89",
                              "71",
                              "76",
                              "95",
                              "79"
                            ]
                          },
                          {
                            "title": "Romanian County",
                            "description": "When the country is RO.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "AR",
                              "AG",
                              "BC",
                              "BH",
                              "BN",
                              "BT",
                              "BV",
                              "BR",
                              "B",
                              "BZ",
                              "CL",
                              "CS",
                              "CT",
                              "CV",
                              "DB",
                              "DJ",
                              "GL",
                              "GR",
                              "GJ",
                              "HR",
                              "HD",
                              "IL",
                              "IS",
                              "IF",
                              "MM",
                              "MH",
                              "MS",
                              "NT",
                              "OT",
                              "PH",
                              "SM",
                              "SJ",
                              "SB",
                              "SV",
                              "TR",
                              "TM",
                              "TL",
                              "VS",
                              "VL",
                              "VN"
                            ]
                          }
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "required": [
                      "requireInvoice",
                      "invoiceType"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "title": "Cardcom Invoice Manager",
                    "description": "Invoice processor - Cardcom",
                    "properties": {
                      "invoiceRequired": {
                        "type": "boolean",
                        "default": false
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "clientType": {
                        "type": "string",
                        "enum": [
                          "individual",
                          "company"
                        ],
                        "nullable": true
                      },
                      "individual": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "nullable": true
                          },
                          "email": {
                            "type": "string",
                            "nullable": true
                          },
                          "mobilePhoneNumber": {
                            "type": "string",
                            "nullable": true
                          },
                          "taxId": {
                            "type": "string",
                            "nullable": true
                          },
                          "country": {
                            "type": "string",
                            "nullable": true,
                            "enum": [
                              "AF",
                              "AX",
                              "AL",
                              "DZ",
                              "AS",
                              "AD",
                              "AO",
                              "AI",
                              "AQ",
                              "AG",
                              "AR",
                              "AM",
                              "AW",
                              "AU",
                              "AT",
                              "AZ",
                              "BS",
                              "BH",
                              "BD",
                              "BB",
                              "BY",
                              "BE",
                              "BZ",
                              "BJ",
                              "BM",
                              "BT",
                              "BO",
                              "BQ",
                              "BA",
                              "BW",
                              "BV",
                              "BR",
                              "IO",
                              "BN",
                              "BG",
                              "BF",
                              "BI",
                              "KH",
                              "CM",
                              "CA",
                              "CV",
                              "KY",
                              "CF",
                              "TD",
                              "CL",
                              "CN",
                              "CX",
                              "CC",
                              "CO",
                              "KM",
                              "CG",
                              "CD",
                              "CK",
                              "CR",
                              "CI",
                              "HR",
                              "CU",
                              "CW",
                              "CY",
                              "CZ",
                              "DK",
                              "DJ",
                              "DM",
                              "DO",
                              "EC",
                              "EG",
                              "SV",
                              "GQ",
                              "ER",
                              "EE",
                              "ET",
                              "FK",
                              "FO",
                              "FJ",
                              "FI",
                              "FR",
                              "GF",
                              "PF",
                              "TF",
                              "GA",
                              "GM",
                              "GE",
                              "DE",
                              "GH",
                              "GI",
                              "GR",
                              "GL",
                              "GD",
                              "GP",
                              "GU",
                              "GT",
                              "GG",
                              "GN",
                              "GW",
                              "GY",
                              "HT",
                              "HM",
                              "VA",
                              "HN",
                              "HK",
                              "HU",
                              "IS",
                              "IN",
                              "ID",
                              "IR",
                              "IQ",
                              "IE",
                              "IM",
                              "IL",
                              "IT",
                              "JM",
                              "JP",
                              "JE",
                              "JO",
                              "KZ",
                              "KE",
                              "KI",
                              "KP",
                              "KR",
                              "XK",
                              "KW",
                              "KG",
                              "LA",
                              "LV",
                              "LB",
                              "LS",
                              "LR",
                              "LY",
                              "LI",
                              "LT",
                              "LU",
                              "MO",
                              "MK",
                              "MG",
                              "MW",
                              "MY",
                              "MV",
                              "ML",
                              "MT",
                              "MH",
                              "MQ",
                              "MR",
                              "MU",
                              "YT",
                              "MX",
                              "FM",
                              "MD",
                              "MC",
                              "MN",
                              "ME",
                              "MS",
                              "MA",
                              "MZ",
                              "MM",
                              "NA",
                              "NR",
                              "NP",
                              "NL",
                              "NC",
                              "NZ",
                              "NI",
                              "NE",
                              "NG",
                              "NU",
                              "NF",
                              "MP",
                              "NO",
                              "OM",
                              "PK",
                              "PW",
                              "PS",
                              "PA",
                              "PG",
                              "PY",
                              "PE",
                              "PH",
                              "PN",
                              "PL",
                              "PT",
                              "PR",
                              "QA",
                              "RE",
                              "RO",
                              "RU",
                              "RW",
                              "BL",
                              "SH",
                              "KN",
                              "LC",
                              "MF",
                              "PM",
                              "VC",
                              "WS",
                              "SM",
                              "ST",
                              "SA",
                              "SN",
                              "RS",
                              "SC",
                              "SL",
                              "SG",
                              "SX",
                              "SK",
                              "SI",
                              "SB",
                              "SO",
                              "ZA",
                              "GS",
                              "SS",
                              "ES",
                              "LK",
                              "SD",
                              "SR",
                              "SJ",
                              "SZ",
                              "SE",
                              "CH",
                              "SY",
                              "TW",
                              "TJ",
                              "TZ",
                              "TH",
                              "TL",
                              "TG",
                              "TK",
                              "TO",
                              "TT",
                              "TN",
                              "TR",
                              "TM",
                              "TC",
                              "TV",
                              "UG",
                              "UA",
                              "AE",
                              "GB",
                              "US",
                              "UM",
                              "UY",
                              "UZ",
                              "VU",
                              "VE",
                              "VN",
                              "VG",
                              "VI",
                              "WF",
                              "EH",
                              "YE",
                              "ZM",
                              "ZW"
                            ]
                          },
                          "city": {
                            "type": "string",
                            "nullable": true
                          },
                          "postcode": {
                            "type": "string",
                            "nullable": true
                          },
                          "address": {
                            "type": "string",
                            "nullable": true
                          }
                        }
                      },
                      "company": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "nullable": true
                          },
                          "email": {
                            "type": "string",
                            "nullable": true
                          },
                          "mobilePhoneNumber": {
                            "type": "string",
                            "nullable": true
                          },
                          "landlinePhoneNumber": {
                            "type": "string",
                            "nullable": true
                          },
                          "taxId": {
                            "type": "string",
                            "nullable": true
                          },
                          "country": {
                            "type": "string",
                            "nullable": true,
                            "enum": [
                              "AF",
                              "AX",
                              "AL",
                              "DZ",
                              "AS",
                              "AD",
                              "AO",
                              "AI",
                              "AQ",
                              "AG",
                              "AR",
                              "AM",
                              "AW",
                              "AU",
                              "AT",
                              "AZ",
                              "BS",
                              "BH",
                              "BD",
                              "BB",
                              "BY",
                              "BE",
                              "BZ",
                              "BJ",
                              "BM",
                              "BT",
                              "BO",
                              "BQ",
                              "BA",
                              "BW",
                              "BV",
                              "BR",
                              "IO",
                              "BN",
                              "BG",
                              "BF",
                              "BI",
                              "KH",
                              "CM",
                              "CA",
                              "CV",
                              "KY",
                              "CF",
                              "TD",
                              "CL",
                              "CN",
                              "CX",
                              "CC",
                              "CO",
                              "KM",
                              "CG",
                              "CD",
                              "CK",
                              "CR",
                              "CI",
                              "HR",
                              "CU",
                              "CW",
                              "CY",
                              "CZ",
                              "DK",
                              "DJ",
                              "DM",
                              "DO",
                              "EC",
                              "EG",
                              "SV",
                              "GQ",
                              "ER",
                              "EE",
                              "ET",
                              "FK",
                              "FO",
                              "FJ",
                              "FI",
                              "FR",
                              "GF",
                              "PF",
                              "TF",
                              "GA",
                              "GM",
                              "GE",
                              "DE",
                              "GH",
                              "GI",
                              "GR",
                              "GL",
                              "GD",
                              "GP",
                              "GU",
                              "GT",
                              "GG",
                              "GN",
                              "GW",
                              "GY",
                              "HT",
                              "HM",
                              "VA",
                              "HN",
                              "HK",
                              "HU",
                              "IS",
                              "IN",
                              "ID",
                              "IR",
                              "IQ",
                              "IE",
                              "IM",
                              "IL",
                              "IT",
                              "JM",
                              "JP",
                              "JE",
                              "JO",
                              "KZ",
                              "KE",
                              "KI",
                              "KP",
                              "KR",
                              "XK",
                              "KW",
                              "KG",
                              "LA",
                              "LV",
                              "LB",
                              "LS",
                              "LR",
                              "LY",
                              "LI",
                              "LT",
                              "LU",
                              "MO",
                              "MK",
                              "MG",
                              "MW",
                              "MY",
                              "MV",
                              "ML",
                              "MT",
                              "MH",
                              "MQ",
                              "MR",
                              "MU",
                              "YT",
                              "MX",
                              "FM",
                              "MD",
                              "MC",
                              "MN",
                              "ME",
                              "MS",
                              "MA",
                              "MZ",
                              "MM",
                              "NA",
                              "NR",
                              "NP",
                              "NL",
                              "NC",
                              "NZ",
                              "NI",
                              "NE",
                              "NG",
                              "NU",
                              "NF",
                              "MP",
                              "NO",
                              "OM",
                              "PK",
                              "PW",
                              "PS",
                              "PA",
                              "PG",
                              "PY",
                              "PE",
                              "PH",
                              "PN",
                              "PL",
                              "PT",
                              "PR",
                              "QA",
                              "RE",
                              "RO",
                              "RU",
                              "RW",
                              "BL",
                              "SH",
                              "KN",
                              "LC",
                              "MF",
                              "PM",
                              "VC",
                              "WS",
                              "SM",
                              "ST",
                              "SA",
                              "SN",
                              "RS",
                              "SC",
                              "SL",
                              "SG",
                              "SX",
                              "SK",
                              "SI",
                              "SB",
                              "SO",
                              "ZA",
                              "GS",
                              "SS",
                              "ES",
                              "LK",
                              "SD",
                              "SR",
                              "SJ",
                              "SZ",
                              "SE",
                              "CH",
                              "SY",
                              "TW",
                              "TJ",
                              "TZ",
                              "TH",
                              "TL",
                              "TG",
                              "TK",
                              "TO",
                              "TT",
                              "TN",
                              "TR",
                              "TM",
                              "TC",
                              "TV",
                              "UG",
                              "UA",
                              "AE",
                              "GB",
                              "US",
                              "UM",
                              "UY",
                              "UZ",
                              "VU",
                              "VE",
                              "VN",
                              "VG",
                              "VI",
                              "WF",
                              "EH",
                              "YE",
                              "ZM",
                              "ZW"
                            ]
                          },
                          "city": {
                            "type": "string",
                            "nullable": true
                          },
                          "postcode": {
                            "type": "string",
                            "nullable": true
                          },
                          "address": {
                            "type": "string",
                            "nullable": true
                          }
                        }
                      }
                    },
                    "required": [
                      "invoiceRequired",
                      "clientType",
                      "individual",
                      "company"
                    ]
                  },
                  {
                    "type": "object",
                    "title": "SoftOne Invoice Manager",
                    "description": "Invoice processor - SoftOne",
                    "properties": {
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "firstName": {
                        "type": "string",
                        "nullable": true
                      },
                      "lastName": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postcode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Ecpay Invoice Manager",
                    "description": "Invoice processor - Ecpay",
                    "properties": {
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "invoiceType": {
                        "type": "string",
                        "enum": [
                          "EInvoice",
                          "Company",
                          "Donation"
                        ]
                      },
                      "carrierType": {
                        "type": "string",
                        "enum": [
                          "Mobile",
                          "Citizen",
                          "GreenWorld"
                        ],
                        "nullable": true
                      },
                      "loveCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "mobileBarCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "citizenId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyId": {
                        "type": "string",
                        "nullable": true
                      },
                      "name": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postcode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Avalara e-invoicing",
                    "description": "Avalara e-invoicing processor.\n\nCarries the same fields as the platform's native invoice integration, plus the two Italian SDI buyer\nidentifiers. Those two are only present when the operator's Avalara integration has an Italian mandate\nand the corresponding field is enabled, and they only carry a value for company customers.\n\nWhen both identifiers are collected and enabled, an Italian company (`invoiceType` is `company` and\n`country` is `IT`) must supply at least one of `recipientCode` and `recipientCertifiedEmail` on write.\nThis either-or requirement is conditional on the invoice type and the country, so it cannot be\nexpressed per field in this schema.\n",
                    "required": [
                      "requireInvoice",
                      "invoiceType"
                    ],
                    "properties": {
                      "recipientCode": {
                        "type": "string",
                        "minLength": 7,
                        "maxLength": 7,
                        "pattern": "^[A-Za-z0-9]{7}$",
                        "description": "Italian SDI recipient code of the buyer. Exactly seven alphanumeric characters, stored uppercased.\nOmitted for individual customers and for company customers that have not supplied it.\n",
                        "example": "ABC1234"
                      },
                      "recipientCertifiedEmail": {
                        "type": "string",
                        "format": "email",
                        "description": "Certified electronic mail (PEC) address of the buyer. Omitted for individual customers and for\ncompany customers that have not supplied it.\n",
                        "example": "buyer@pec.example.com"
                      },
                      "requireInvoice": {
                        "type": "boolean",
                        "default": false,
                        "description": "Whether invoice is required for this user. Note: If the operator has 'Always collect Invoice Details' enabled in their invoice integration settings, this field will always be true regardless of the request payload value."
                      },
                      "requireInvoiceLastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date. The date is automatically updated when the value of the \"requireInvoice\" field changes.",
                        "readOnly": true,
                        "nullable": true
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "requireInvoiceEnforcedBy": {
                        "type": "string",
                        "enum": [
                          "operator_setting",
                          "user_request"
                        ],
                        "description": "Indicates the source that determined the final requireInvoice value. Only present when operator setting overrides user request.",
                        "nullable": true
                      },
                      "originalRequestValue": {
                        "type": "boolean",
                        "description": "The originally requested requireInvoice value when operator override occurred. Only present when requireInvoiceEnforcedBy is 'operator_setting'.",
                        "nullable": true
                      },
                      "invoiceType": {
                        "type": "string",
                        "enum": [
                          "individual",
                          "company"
                        ],
                        "nullable": true
                      },
                      "individualName": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualPersonalId": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyName": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyRegNo": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxAdministrationOfficeName": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "region": {
                        "type": "string",
                        "nullable": true,
                        "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
                      },
                      "state": {
                        "description": "When the selected country is one of US, AU, CA, UM or RO",
                        "anyOf": [
                          {
                            "title": "US State",
                            "description": "When the country is US.",
                            "type": "string",
                            "enum": [
                              "AL",
                              "AK",
                              "AS",
                              "AZ",
                              "AR",
                              "CA",
                              "CO",
                              "CT",
                              "DE",
                              "DC",
                              "FM",
                              "FL",
                              "GA",
                              "GU",
                              "HI",
                              "ID",
                              "IL",
                              "IN",
                              "IA",
                              "KS",
                              "KY",
                              "LA",
                              "ME",
                              "MH",
                              "MD",
                              "MA",
                              "MI",
                              "MN",
                              "MS",
                              "MO",
                              "MT",
                              "NE",
                              "NV",
                              "NH",
                              "NJ",
                              "NM",
                              "NY",
                              "NC",
                              "ND",
                              "MP",
                              "OH",
                              "OK",
                              "OR",
                              "PW",
                              "PA",
                              "PR",
                              "RI",
                              "SC",
                              "SD",
                              "TN",
                              "TX",
                              "UT",
                              "VT",
                              "VI",
                              "VA",
                              "WA",
                              "WV",
                              "WI",
                              "WY"
                            ]
                          },
                          {
                            "title": "Australian State",
                            "description": "When the country is AU.",
                            "type": "string",
                            "enum": [
                              "NSW",
                              "VIC",
                              "QLD",
                              "WA",
                              "SA",
                              "TAS",
                              "ACT",
                              "NT",
                              "JBT",
                              "CX",
                              "NF",
                              "CC",
                              "AQ",
                              "CSI",
                              "ACI",
                              "HM"
                            ]
                          },
                          {
                            "title": "Canadian Province",
                            "description": "When the country is CA.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "BC",
                              "MB",
                              "NB",
                              "NL",
                              "NT",
                              "NS",
                              "NU",
                              "ON",
                              "PE",
                              "QC",
                              "SK",
                              "YT"
                            ]
                          },
                          {
                            "title": "US Minor Outlying Islands Territory",
                            "description": "When the country is UM.",
                            "type": "string",
                            "enum": [
                              "81",
                              "84",
                              "85",
                              "67",
                              "89",
                              "71",
                              "76",
                              "95",
                              "79"
                            ]
                          },
                          {
                            "title": "Romanian County",
                            "description": "When the country is RO.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "AR",
                              "AG",
                              "BC",
                              "BH",
                              "BN",
                              "BT",
                              "BV",
                              "BR",
                              "B",
                              "BZ",
                              "CL",
                              "CS",
                              "CT",
                              "CV",
                              "DB",
                              "DJ",
                              "GL",
                              "GR",
                              "GJ",
                              "HR",
                              "HD",
                              "IL",
                              "IS",
                              "IF",
                              "MM",
                              "MH",
                              "MS",
                              "NT",
                              "OT",
                              "PH",
                              "SM",
                              "SJ",
                              "SB",
                              "SV",
                              "TR",
                              "TM",
                              "TL",
                              "VS",
                              "VL",
                              "VN"
                            ]
                          }
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  }
                ]
              },
              "amountDue": {
                "type": "number",
                "format": "decimal",
                "description": "The total amount that the user owes by the current moment."
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "required": [
          "message",
          "reason"
        ],
        "properties": {
          "message": {
            "type": "string",
            "description": "Human-readable explanation of why the deletion is blocked."
          },
          "reason": {
            "type": "string",
            "description": "Machine-readable code describing why the deletion is blocked.\n\nAllowed values:\n- `active_session` - The user has an ongoing or unknown-status charging session.\n- `unpaid_session` - The user has a finished session that is not yet paid.\n- `billing_in_progress` - The user has a finished session whose billing is still in progress.\n- `payment_in_progress` - The user has a payment or payment method setup in progress.\n- `payment_method_cooldown` - One of the user's payment methods is in a removal cooldown period.\n- `unsettled_subscription_obligations` - The user has unsettled subscription obligations.\n- `unbilled_subscription_usage` - The user has an active subscription with unbilled usage.\n",
            "enum": [
              "active_session",
              "unpaid_session",
              "billing_in_progress",
              "payment_in_progress",
              "payment_method_cooldown",
              "unsettled_subscription_obligations",
              "unbilled_subscription_usage"
            ]
          },
          "retryAt": {
            "type": "string",
            "format": "date-time",
            "description": "When set, the earliest time at which the deletion can be retried. Present only for a payment method removal cooldown; omitted otherwise."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "operatorId"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "email": {
                "type": "string",
                "format": "email"
              },
              "emailVerified": {
                "type": "string",
                "description": "ISO 8601 formatted date",
                "readOnly": true,
                "nullable": true,
                "example": "2022-11-12 12:00:00"
              },
              "requirePasswordReset": {
                "type": "boolean",
                "description": "Sets a requirement for the user to set a new password when they next open the app. After a new password is set, this option resets automatically."
              },
              "firstName": {
                "type": "string",
                "nullable": true
              },
              "middleName": {
                "type": "string",
                "nullable": true
              },
              "lastName": {
                "type": "string",
                "nullable": true
              },
              "phone": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true
              },
              "state": {
                "type": "string",
                "nullable": true
              },
              "city": {
                "type": "string",
                "nullable": true
              },
              "postCode": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true
              },
              "vehicleNo": {
                "type": "string",
                "nullable": true
              },
              "personalId": {
                "type": "string"
              },
              "companyName": {
                "type": "string",
                "nullable": true
              },
              "locale": {
                "type": "string",
                "nullable": true,
                "example": "en-GB"
              },
              "balance": {
                "type": "number",
                "multipleOf": 0.001,
                "description": "The current amount in the balance of the user (in the base currency). Would not be returned in the response if the user is related to a Partner without \"addUserBalance\" permission"
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "description": "* `enabled` Enabled - the user is allowed to use the system\n* `disabled` Disabled - the user is NOT allowed to use the system\n"
              },
              "userGroupIds": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "externalId": {
                "type": "string",
                "nullable": true,
                "readOnly": true,
                "description": "Third party identifier of the user"
              },
              "subscriptionId": {
                "type": "integer",
                "nullable": true,
                "readOnly": true,
                "description": "user subscription id"
              },
              "options": {
                "type": "object",
                "properties": {
                  "sessionsAllowed": {
                    "type": "string",
                    "description": "Determine the number of sessions a user could start - single or multiple simultaneous sessions, or whether the user could start simultaneous sessions with several Id Tags.",
                    "enum": [
                      "single_session",
                      "multiple_simultaneous_sessions_per_idtag",
                      "simultaneous_use_of_idtags",
                      "multiple_simultaneous_sessions_remotely_and_idtags"
                    ]
                  }
                }
              },
              "password": {
                "type": "string",
                "readOnly": true,
                "nullable": true,
                "description": "Returns the hashed password. This property is optional and can be enabled by request.\n"
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "lastActivityAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "nullable": true,
                "description": "When the user was last active"
              },
              "lastActivitySource": {
                "type": "string",
                "readOnly": true,
                "nullable": true,
                "enum": [
                  "device_activity",
                  "device_logout",
                  "id_tag_authorization",
                  "transaction",
                  "registration"
                ],
                "description": "What triggered the last activity update"
              },
              "createdBy": {
                "type": "string",
                "readOnly": true,
                "description": "The return values are `admin:` , `partner:` - the value after the colon is the respective ID of the admin account or the partner. `token:` - the value after the colon is the admin token. `mobile_api` - means that the User registered themselves through the mobile app."
              },
              "receiveNewsAndPromotions": {
                "type": "boolean",
                "description": "Shows if the user has opted into receiving news and promotions."
              },
              "skipPreAuthorization": {
                "type": "boolean",
                "description": "When enabled, the user can start charging sessions without a pre-authorization hold on their payment method."
              },
              "skipUnpaidSessionCheck": {
                "type": "boolean",
                "description": "When enabled, this user can start new sessions even if they have unpaid sessions or unpaid post-paid subscription fees."
              },
              "partnerInvites": {
                "type": "array",
                "description": "It's a part of the response only if request is called with `include.partnerInvites` query parameter.",
                "readOnly": true,
                "nullable": true,
                "items": {
                  "type": "object",
                  "description": "Partner Invite",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "partnerId": {
                      "type": "integer"
                    },
                    "sendViaEmail": {
                      "type": "boolean"
                    },
                    "email": {
                      "type": "string",
                      "description": "Email used to identify and associate the invitee. May be null when the invite was created without an email.",
                      "format": "email",
                      "nullable": true
                    },
                    "language": {
                      "type": "string",
                      "description": "The language of the e-mail sent to the invitee. If none selected, the default end-users language will be used."
                    },
                    "acceptUrl": {
                      "type": "string",
                      "format": "url",
                      "readOnly": true,
                      "nullable": true
                    },
                    "options": {
                      "type": "object",
                      "properties": {
                        "allowCorporateAccountBilling": {
                          "type": "boolean",
                          "default": false
                        },
                        "limitCorporateAccountBillingToPartnerChargePoints": {
                          "type": "boolean",
                          "description": "Whether the assigned corporate billing policy restricts corporate billing to the partner's charge points.",
                          "default": false
                        },
                        "allowAccessToPrivateChargePoints": {
                          "type": "boolean",
                          "default": false
                        },
                        "corporateBillingLimit": {
                          "type": "number",
                          "format": "decimal",
                          "nullable": true,
                          "minimum": 0,
                          "description": "The individual corporate billing limit amount from the assigned corporate billing policy. Must be a positive decimal when set. When `null`, no individual limit is applied. Only applicable when `allowCorporateAccountBilling` is `true`."
                        }
                      }
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "pending",
                        "sent",
                        "accepted"
                      ],
                      "readOnly": true
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time",
                      "readOnly": true
                    },
                    "acceptedAt": {
                      "type": "string",
                      "format": "date-time",
                      "readOnly": true,
                      "nullable": true
                    },
                    "userId": {
                      "type": "integer",
                      "readOnly": true,
                      "nullable": true
                    },
                    "lastUpdatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO 8601 formatted date",
                      "readOnly": true
                    }
                  },
                  "required": [
                    "id",
                    "partnerId",
                    "status",
                    "createdAt"
                  ]
                }
              },
              "bankDetails": {
                "type": "object",
                "properties": {
                  "bankIban": {
                    "type": "string",
                    "nullable": true,
                    "description": "IBAN of the bank account."
                  },
                  "bankCode": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                  },
                  "bankAccountNumber": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank account number."
                  },
                  "bankAccountType": {
                    "type": "string",
                    "nullable": true,
                    "description": "Type of the bank account."
                  },
                  "bankBic": {
                    "type": "string",
                    "nullable": true,
                    "description": "BIC/SWIFT code of the bank."
                  }
                }
              },
              "externalAppData": {
                "example": {
                  "externalCustomerId": "uuid"
                },
                "description": "The externalAppData field is an object designed to hold additional data related to external integrations.\nThis object can contain the following keys, which are currently supported:\n\n- `externalCustomerId`: A string representing the customer ID of the user in an external payment provider integration. This ID is used to link the user's account within the system to their corresponding account in the external payment provider.\n\nIf no information is available, the externalAppData object will be null. It's a part of the response only if request is called with `include.externalAppData` query parameter.\n",
                "type": "object",
                "nullable": true,
                "additionalProperties": true
              },
              "invoiceDetails": {
                "description": "The user's invoice details for invoice generation. The response structure varies depending on the operator's invoice integration type.\nIt's a part of the response only if request is called with `include[]=invoiceDetails` query parameter.\nReturns `null` if the user has no invoice details or the operator has no invoice integration configured.\n",
                "readOnly": true,
                "type": "object",
                "nullable": true,
                "anyOf": [
                  {
                    "type": "object",
                    "title": "Built-in invoicing",
                    "description": "Built-in invoice processor",
                    "properties": {
                      "requireInvoice": {
                        "type": "boolean",
                        "default": false,
                        "description": "Whether invoice is required for this user. Note: If the operator has 'Always collect Invoice Details' enabled in their invoice integration settings, this field will always be true regardless of the request payload value."
                      },
                      "requireInvoiceLastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date. The date is automatically updated when the value of the \"requireInvoice\" field changes.",
                        "readOnly": true,
                        "nullable": true
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "requireInvoiceEnforcedBy": {
                        "type": "string",
                        "enum": [
                          "operator_setting",
                          "user_request"
                        ],
                        "description": "Indicates the source that determined the final requireInvoice value. Only present when operator setting overrides user request.",
                        "nullable": true
                      },
                      "originalRequestValue": {
                        "type": "boolean",
                        "description": "The originally requested requireInvoice value when operator override occurred. Only present when requireInvoiceEnforcedBy is 'operator_setting'.",
                        "nullable": true
                      },
                      "invoiceType": {
                        "type": "string",
                        "enum": [
                          "individual",
                          "company"
                        ],
                        "nullable": true
                      },
                      "individualName": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualPersonalId": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyName": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyRegNo": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxAdministrationOfficeName": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "region": {
                        "type": "string",
                        "nullable": true,
                        "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
                      },
                      "state": {
                        "description": "When the selected country is one of US, AU, CA, UM or RO",
                        "anyOf": [
                          {
                            "title": "US State",
                            "description": "When the country is US.",
                            "type": "string",
                            "enum": [
                              "AL",
                              "AK",
                              "AS",
                              "AZ",
                              "AR",
                              "CA",
                              "CO",
                              "CT",
                              "DE",
                              "DC",
                              "FM",
                              "FL",
                              "GA",
                              "GU",
                              "HI",
                              "ID",
                              "IL",
                              "IN",
                              "IA",
                              "KS",
                              "KY",
                              "LA",
                              "ME",
                              "MH",
                              "MD",
                              "MA",
                              "MI",
                              "MN",
                              "MS",
                              "MO",
                              "MT",
                              "NE",
                              "NV",
                              "NH",
                              "NJ",
                              "NM",
                              "NY",
                              "NC",
                              "ND",
                              "MP",
                              "OH",
                              "OK",
                              "OR",
                              "PW",
                              "PA",
                              "PR",
                              "RI",
                              "SC",
                              "SD",
                              "TN",
                              "TX",
                              "UT",
                              "VT",
                              "VI",
                              "VA",
                              "WA",
                              "WV",
                              "WI",
                              "WY"
                            ]
                          },
                          {
                            "title": "Australian State",
                            "description": "When the country is AU.",
                            "type": "string",
                            "enum": [
                              "NSW",
                              "VIC",
                              "QLD",
                              "WA",
                              "SA",
                              "TAS",
                              "ACT",
                              "NT",
                              "JBT",
                              "CX",
                              "NF",
                              "CC",
                              "AQ",
                              "CSI",
                              "ACI",
                              "HM"
                            ]
                          },
                          {
                            "title": "Canadian Province",
                            "description": "When the country is CA.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "BC",
                              "MB",
                              "NB",
                              "NL",
                              "NT",
                              "NS",
                              "NU",
                              "ON",
                              "PE",
                              "QC",
                              "SK",
                              "YT"
                            ]
                          },
                          {
                            "title": "US Minor Outlying Islands Territory",
                            "description": "When the country is UM.",
                            "type": "string",
                            "enum": [
                              "81",
                              "84",
                              "85",
                              "67",
                              "89",
                              "71",
                              "76",
                              "95",
                              "79"
                            ]
                          },
                          {
                            "title": "Romanian County",
                            "description": "When the country is RO.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "AR",
                              "AG",
                              "BC",
                              "BH",
                              "BN",
                              "BT",
                              "BV",
                              "BR",
                              "B",
                              "BZ",
                              "CL",
                              "CS",
                              "CT",
                              "CV",
                              "DB",
                              "DJ",
                              "GL",
                              "GR",
                              "GJ",
                              "HR",
                              "HD",
                              "IL",
                              "IS",
                              "IF",
                              "MM",
                              "MH",
                              "MS",
                              "NT",
                              "OT",
                              "PH",
                              "SM",
                              "SJ",
                              "SB",
                              "SV",
                              "TR",
                              "TM",
                              "TL",
                              "VS",
                              "VL",
                              "VN"
                            ]
                          }
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "required": [
                      "requireInvoice",
                      "invoiceType"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "title": "Cardcom Invoice Manager",
                    "description": "Invoice processor - Cardcom",
                    "properties": {
                      "invoiceRequired": {
                        "type": "boolean",
                        "default": false
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "clientType": {
                        "type": "string",
                        "enum": [
                          "individual",
                          "company"
                        ],
                        "nullable": true
                      },
                      "individual": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "nullable": true
                          },
                          "email": {
                            "type": "string",
                            "nullable": true
                          },
                          "mobilePhoneNumber": {
                            "type": "string",
                            "nullable": true
                          },
                          "taxId": {
                            "type": "string",
                            "nullable": true
                          },
                          "country": {
                            "type": "string",
                            "nullable": true,
                            "enum": [
                              "AF",
                              "AX",
                              "AL",
                              "DZ",
                              "AS",
                              "AD",
                              "AO",
                              "AI",
                              "AQ",
                              "AG",
                              "AR",
                              "AM",
                              "AW",
                              "AU",
                              "AT",
                              "AZ",
                              "BS",
                              "BH",
                              "BD",
                              "BB",
                              "BY",
                              "BE",
                              "BZ",
                              "BJ",
                              "BM",
                              "BT",
                              "BO",
                              "BQ",
                              "BA",
                              "BW",
                              "BV",
                              "BR",
                              "IO",
                              "BN",
                              "BG",
                              "BF",
                              "BI",
                              "KH",
                              "CM",
                              "CA",
                              "CV",
                              "KY",
                              "CF",
                              "TD",
                              "CL",
                              "CN",
                              "CX",
                              "CC",
                              "CO",
                              "KM",
                              "CG",
                              "CD",
                              "CK",
                              "CR",
                              "CI",
                              "HR",
                              "CU",
                              "CW",
                              "CY",
                              "CZ",
                              "DK",
                              "DJ",
                              "DM",
                              "DO",
                              "EC",
                              "EG",
                              "SV",
                              "GQ",
                              "ER",
                              "EE",
                              "ET",
                              "FK",
                              "FO",
                              "FJ",
                              "FI",
                              "FR",
                              "GF",
                              "PF",
                              "TF",
                              "GA",
                              "GM",
                              "GE",
                              "DE",
                              "GH",
                              "GI",
                              "GR",
                              "GL",
                              "GD",
                              "GP",
                              "GU",
                              "GT",
                              "GG",
                              "GN",
                              "GW",
                              "GY",
                              "HT",
                              "HM",
                              "VA",
                              "HN",
                              "HK",
                              "HU",
                              "IS",
                              "IN",
                              "ID",
                              "IR",
                              "IQ",
                              "IE",
                              "IM",
                              "IL",
                              "IT",
                              "JM",
                              "JP",
                              "JE",
                              "JO",
                              "KZ",
                              "KE",
                              "KI",
                              "KP",
                              "KR",
                              "XK",
                              "KW",
                              "KG",
                              "LA",
                              "LV",
                              "LB",
                              "LS",
                              "LR",
                              "LY",
                              "LI",
                              "LT",
                              "LU",
                              "MO",
                              "MK",
                              "MG",
                              "MW",
                              "MY",
                              "MV",
                              "ML",
                              "MT",
                              "MH",
                              "MQ",
                              "MR",
                              "MU",
                              "YT",
                              "MX",
                              "FM",
                              "MD",
                              "MC",
                              "MN",
                              "ME",
                              "MS",
                              "MA",
                              "MZ",
                              "MM",
                              "NA",
                              "NR",
                              "NP",
                              "NL",
                              "NC",
                              "NZ",
                              "NI",
                              "NE",
                              "NG",
                              "NU",
                              "NF",
                              "MP",
                              "NO",
                              "OM",
                              "PK",
                              "PW",
                              "PS",
                              "PA",
                              "PG",
                              "PY",
                              "PE",
                              "PH",
                              "PN",
                              "PL",
                              "PT",
                              "PR",
                              "QA",
                              "RE",
                              "RO",
                              "RU",
                              "RW",
                              "BL",
                              "SH",
                              "KN",
                              "LC",
                              "MF",
                              "PM",
                              "VC",
                              "WS",
                              "SM",
                              "ST",
                              "SA",
                              "SN",
                              "RS",
                              "SC",
                              "SL",
                              "SG",
                              "SX",
                              "SK",
                              "SI",
                              "SB",
                              "SO",
                              "ZA",
                              "GS",
                              "SS",
                              "ES",
                              "LK",
                              "SD",
                              "SR",
                              "SJ",
                              "SZ",
                              "SE",
                              "CH",
                              "SY",
                              "TW",
                              "TJ",
                              "TZ",
                              "TH",
                              "TL",
                              "TG",
                              "TK",
                              "TO",
                              "TT",
                              "TN",
                              "TR",
                              "TM",
                              "TC",
                              "TV",
                              "UG",
                              "UA",
                              "AE",
                              "GB",
                              "US",
                              "UM",
                              "UY",
                              "UZ",
                              "VU",
                              "VE",
                              "VN",
                              "VG",
                              "VI",
                              "WF",
                              "EH",
                              "YE",
                              "ZM",
                              "ZW"
                            ]
                          },
                          "city": {
                            "type": "string",
                            "nullable": true
                          },
                          "postcode": {
                            "type": "string",
                            "nullable": true
                          },
                          "address": {
                            "type": "string",
                            "nullable": true
                          }
                        }
                      },
                      "company": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "nullable": true
                          },
                          "email": {
                            "type": "string",
                            "nullable": true
                          },
                          "mobilePhoneNumber": {
                            "type": "string",
                            "nullable": true
                          },
                          "landlinePhoneNumber": {
                            "type": "string",
                            "nullable": true
                          },
                          "taxId": {
                            "type": "string",
                            "nullable": true
                          },
                          "country": {
                            "type": "string",
                            "nullable": true,
                            "enum": [
                              "AF",
                              "AX",
                              "AL",
                              "DZ",
                              "AS",
                              "AD",
                              "AO",
                              "AI",
                              "AQ",
                              "AG",
                              "AR",
                              "AM",
                              "AW",
                              "AU",
                              "AT",
                              "AZ",
                              "BS",
                              "BH",
                              "BD",
                              "BB",
                              "BY",
                              "BE",
                              "BZ",
                              "BJ",
                              "BM",
                              "BT",
                              "BO",
                              "BQ",
                              "BA",
                              "BW",
                              "BV",
                              "BR",
                              "IO",
                              "BN",
                              "BG",
                              "BF",
                              "BI",
                              "KH",
                              "CM",
                              "CA",
                              "CV",
                              "KY",
                              "CF",
                              "TD",
                              "CL",
                              "CN",
                              "CX",
                              "CC",
                              "CO",
                              "KM",
                              "CG",
                              "CD",
                              "CK",
                              "CR",
                              "CI",
                              "HR",
                              "CU",
                              "CW",
                              "CY",
                              "CZ",
                              "DK",
                              "DJ",
                              "DM",
                              "DO",
                              "EC",
                              "EG",
                              "SV",
                              "GQ",
                              "ER",
                              "EE",
                              "ET",
                              "FK",
                              "FO",
                              "FJ",
                              "FI",
                              "FR",
                              "GF",
                              "PF",
                              "TF",
                              "GA",
                              "GM",
                              "GE",
                              "DE",
                              "GH",
                              "GI",
                              "GR",
                              "GL",
                              "GD",
                              "GP",
                              "GU",
                              "GT",
                              "GG",
                              "GN",
                              "GW",
                              "GY",
                              "HT",
                              "HM",
                              "VA",
                              "HN",
                              "HK",
                              "HU",
                              "IS",
                              "IN",
                              "ID",
                              "IR",
                              "IQ",
                              "IE",
                              "IM",
                              "IL",
                              "IT",
                              "JM",
                              "JP",
                              "JE",
                              "JO",
                              "KZ",
                              "KE",
                              "KI",
                              "KP",
                              "KR",
                              "XK",
                              "KW",
                              "KG",
                              "LA",
                              "LV",
                              "LB",
                              "LS",
                              "LR",
                              "LY",
                              "LI",
                              "LT",
                              "LU",
                              "MO",
                              "MK",
                              "MG",
                              "MW",
                              "MY",
                              "MV",
                              "ML",
                              "MT",
                              "MH",
                              "MQ",
                              "MR",
                              "MU",
                              "YT",
                              "MX",
                              "FM",
                              "MD",
                              "MC",
                              "MN",
                              "ME",
                              "MS",
                              "MA",
                              "MZ",
                              "MM",
                              "NA",
                              "NR",
                              "NP",
                              "NL",
                              "NC",
                              "NZ",
                              "NI",
                              "NE",
                              "NG",
                              "NU",
                              "NF",
                              "MP",
                              "NO",
                              "OM",
                              "PK",
                              "PW",
                              "PS",
                              "PA",
                              "PG",
                              "PY",
                              "PE",
                              "PH",
                              "PN",
                              "PL",
                              "PT",
                              "PR",
                              "QA",
                              "RE",
                              "RO",
                              "RU",
                              "RW",
                              "BL",
                              "SH",
                              "KN",
                              "LC",
                              "MF",
                              "PM",
                              "VC",
                              "WS",
                              "SM",
                              "ST",
                              "SA",
                              "SN",
                              "RS",
                              "SC",
                              "SL",
                              "SG",
                              "SX",
                              "SK",
                              "SI",
                              "SB",
                              "SO",
                              "ZA",
                              "GS",
                              "SS",
                              "ES",
                              "LK",
                              "SD",
                              "SR",
                              "SJ",
                              "SZ",
                              "SE",
                              "CH",
                              "SY",
                              "TW",
                              "TJ",
                              "TZ",
                              "TH",
                              "TL",
                              "TG",
                              "TK",
                              "TO",
                              "TT",
                              "TN",
                              "TR",
                              "TM",
                              "TC",
                              "TV",
                              "UG",
                              "UA",
                              "AE",
                              "GB",
                              "US",
                              "UM",
                              "UY",
                              "UZ",
                              "VU",
                              "VE",
                              "VN",
                              "VG",
                              "VI",
                              "WF",
                              "EH",
                              "YE",
                              "ZM",
                              "ZW"
                            ]
                          },
                          "city": {
                            "type": "string",
                            "nullable": true
                          },
                          "postcode": {
                            "type": "string",
                            "nullable": true
                          },
                          "address": {
                            "type": "string",
                            "nullable": true
                          }
                        }
                      }
                    },
                    "required": [
                      "invoiceRequired",
                      "clientType",
                      "individual",
                      "company"
                    ]
                  },
                  {
                    "type": "object",
                    "title": "SoftOne Invoice Manager",
                    "description": "Invoice processor - SoftOne",
                    "properties": {
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "firstName": {
                        "type": "string",
                        "nullable": true
                      },
                      "lastName": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postcode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Ecpay Invoice Manager",
                    "description": "Invoice processor - Ecpay",
                    "properties": {
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "invoiceType": {
                        "type": "string",
                        "enum": [
                          "EInvoice",
                          "Company",
                          "Donation"
                        ]
                      },
                      "carrierType": {
                        "type": "string",
                        "enum": [
                          "Mobile",
                          "Citizen",
                          "GreenWorld"
                        ],
                        "nullable": true
                      },
                      "loveCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "mobileBarCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "citizenId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyId": {
                        "type": "string",
                        "nullable": true
                      },
                      "name": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postcode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Avalara e-invoicing",
                    "description": "Avalara e-invoicing processor.\n\nCarries the same fields as the platform's native invoice integration, plus the two Italian SDI buyer\nidentifiers. Those two are only present when the operator's Avalara integration has an Italian mandate\nand the corresponding field is enabled, and they only carry a value for company customers.\n\nWhen both identifiers are collected and enabled, an Italian company (`invoiceType` is `company` and\n`country` is `IT`) must supply at least one of `recipientCode` and `recipientCertifiedEmail` on write.\nThis either-or requirement is conditional on the invoice type and the country, so it cannot be\nexpressed per field in this schema.\n",
                    "required": [
                      "requireInvoice",
                      "invoiceType"
                    ],
                    "properties": {
                      "recipientCode": {
                        "type": "string",
                        "minLength": 7,
                        "maxLength": 7,
                        "pattern": "^[A-Za-z0-9]{7}$",
                        "description": "Italian SDI recipient code of the buyer. Exactly seven alphanumeric characters, stored uppercased.\nOmitted for individual customers and for company customers that have not supplied it.\n",
                        "example": "ABC1234"
                      },
                      "recipientCertifiedEmail": {
                        "type": "string",
                        "format": "email",
                        "description": "Certified electronic mail (PEC) address of the buyer. Omitted for individual customers and for\ncompany customers that have not supplied it.\n",
                        "example": "buyer@pec.example.com"
                      },
                      "requireInvoice": {
                        "type": "boolean",
                        "default": false,
                        "description": "Whether invoice is required for this user. Note: If the operator has 'Always collect Invoice Details' enabled in their invoice integration settings, this field will always be true regardless of the request payload value."
                      },
                      "requireInvoiceLastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date. The date is automatically updated when the value of the \"requireInvoice\" field changes.",
                        "readOnly": true,
                        "nullable": true
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "requireInvoiceEnforcedBy": {
                        "type": "string",
                        "enum": [
                          "operator_setting",
                          "user_request"
                        ],
                        "description": "Indicates the source that determined the final requireInvoice value. Only present when operator setting overrides user request.",
                        "nullable": true
                      },
                      "originalRequestValue": {
                        "type": "boolean",
                        "description": "The originally requested requireInvoice value when operator override occurred. Only present when requireInvoiceEnforcedBy is 'operator_setting'.",
                        "nullable": true
                      },
                      "invoiceType": {
                        "type": "string",
                        "enum": [
                          "individual",
                          "company"
                        ],
                        "nullable": true
                      },
                      "individualName": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualPersonalId": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyName": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyRegNo": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxAdministrationOfficeName": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "region": {
                        "type": "string",
                        "nullable": true,
                        "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
                      },
                      "state": {
                        "description": "When the selected country is one of US, AU, CA, UM or RO",
                        "anyOf": [
                          {
                            "title": "US State",
                            "description": "When the country is US.",
                            "type": "string",
                            "enum": [
                              "AL",
                              "AK",
                              "AS",
                              "AZ",
                              "AR",
                              "CA",
                              "CO",
                              "CT",
                              "DE",
                              "DC",
                              "FM",
                              "FL",
                              "GA",
                              "GU",
                              "HI",
                              "ID",
                              "IL",
                              "IN",
                              "IA",
                              "KS",
                              "KY",
                              "LA",
                              "ME",
                              "MH",
                              "MD",
                              "MA",
                              "MI",
                              "MN",
                              "MS",
                              "MO",
                              "MT",
                              "NE",
                              "NV",
                              "NH",
                              "NJ",
                              "NM",
                              "NY",
                              "NC",
                              "ND",
                              "MP",
                              "OH",
                              "OK",
                              "OR",
                              "PW",
                              "PA",
                              "PR",
                              "RI",
                              "SC",
                              "SD",
                              "TN",
                              "TX",
                              "UT",
                              "VT",
                              "VI",
                              "VA",
                              "WA",
                              "WV",
                              "WI",
                              "WY"
                            ]
                          },
                          {
                            "title": "Australian State",
                            "description": "When the country is AU.",
                            "type": "string",
                            "enum": [
                              "NSW",
                              "VIC",
                              "QLD",
                              "WA",
                              "SA",
                              "TAS",
                              "ACT",
                              "NT",
                              "JBT",
                              "CX",
                              "NF",
                              "CC",
                              "AQ",
                              "CSI",
                              "ACI",
                              "HM"
                            ]
                          },
                          {
                            "title": "Canadian Province",
                            "description": "When the country is CA.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "BC",
                              "MB",
                              "NB",
                              "NL",
                              "NT",
                              "NS",
                              "NU",
                              "ON",
                              "PE",
                              "QC",
                              "SK",
                              "YT"
                            ]
                          },
                          {
                            "title": "US Minor Outlying Islands Territory",
                            "description": "When the country is UM.",
                            "type": "string",
                            "enum": [
                              "81",
                              "84",
                              "85",
                              "67",
                              "89",
                              "71",
                              "76",
                              "95",
                              "79"
                            ]
                          },
                          {
                            "title": "Romanian County",
                            "description": "When the country is RO.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "AR",
                              "AG",
                              "BC",
                              "BH",
                              "BN",
                              "BT",
                              "BV",
                              "BR",
                              "B",
                              "BZ",
                              "CL",
                              "CS",
                              "CT",
                              "CV",
                              "DB",
                              "DJ",
                              "GL",
                              "GR",
                              "GJ",
                              "HR",
                              "HD",
                              "IL",
                              "IS",
                              "IF",
                              "MM",
                              "MH",
                              "MS",
                              "NT",
                              "OT",
                              "PH",
                              "SM",
                              "SJ",
                              "SB",
                              "SV",
                              "TR",
                              "TM",
                              "TL",
                              "VS",
                              "VL",
                              "VN"
                            ]
                          }
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  }
                ]
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "invoiceDetailsRead": {
    "200": {
      "schema": {
        "anyOf": [
          {
            "type": "object",
            "title": "Built-in invoicing",
            "description": "Built-in invoice processor",
            "properties": {
              "requireInvoice": {
                "type": "boolean",
                "default": false,
                "description": "Whether invoice is required for this user. Note: If the operator has 'Always collect Invoice Details' enabled in their invoice integration settings, this field will always be true regardless of the request payload value."
              },
              "requireInvoiceLastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date. The date is automatically updated when the value of the \"requireInvoice\" field changes.",
                "readOnly": true,
                "nullable": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "requireInvoiceEnforcedBy": {
                "type": "string",
                "enum": [
                  "operator_setting",
                  "user_request"
                ],
                "description": "Indicates the source that determined the final requireInvoice value. Only present when operator setting overrides user request.",
                "nullable": true
              },
              "originalRequestValue": {
                "type": "boolean",
                "description": "The originally requested requireInvoice value when operator override occurred. Only present when requireInvoiceEnforcedBy is 'operator_setting'.",
                "nullable": true
              },
              "invoiceType": {
                "type": "string",
                "enum": [
                  "individual",
                  "company"
                ],
                "nullable": true
              },
              "individualName": {
                "type": "string",
                "nullable": true
              },
              "individualPersonalId": {
                "type": "string",
                "nullable": true
              },
              "individualTaxId": {
                "type": "string",
                "nullable": true
              },
              "companyName": {
                "type": "string",
                "nullable": true
              },
              "companyRegNo": {
                "type": "string",
                "nullable": true
              },
              "companyTaxId": {
                "type": "string",
                "nullable": true
              },
              "companyTaxAdministrationOfficeName": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW"
                ]
              },
              "region": {
                "type": "string",
                "nullable": true,
                "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
              },
              "state": {
                "description": "When the selected country is one of US, AU, CA, UM or RO",
                "anyOf": [
                  {
                    "title": "US State",
                    "description": "When the country is US.",
                    "type": "string",
                    "enum": [
                      "AL",
                      "AK",
                      "AS",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FM",
                      "FL",
                      "GA",
                      "GU",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MH",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "MP",
                      "OH",
                      "OK",
                      "OR",
                      "PW",
                      "PA",
                      "PR",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VI",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY"
                    ]
                  },
                  {
                    "title": "Australian State",
                    "description": "When the country is AU.",
                    "type": "string",
                    "enum": [
                      "NSW",
                      "VIC",
                      "QLD",
                      "WA",
                      "SA",
                      "TAS",
                      "ACT",
                      "NT",
                      "JBT",
                      "CX",
                      "NF",
                      "CC",
                      "AQ",
                      "CSI",
                      "ACI",
                      "HM"
                    ]
                  },
                  {
                    "title": "Canadian Province",
                    "description": "When the country is CA.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "BC",
                      "MB",
                      "NB",
                      "NL",
                      "NT",
                      "NS",
                      "NU",
                      "ON",
                      "PE",
                      "QC",
                      "SK",
                      "YT"
                    ]
                  },
                  {
                    "title": "US Minor Outlying Islands Territory",
                    "description": "When the country is UM.",
                    "type": "string",
                    "enum": [
                      "81",
                      "84",
                      "85",
                      "67",
                      "89",
                      "71",
                      "76",
                      "95",
                      "79"
                    ]
                  },
                  {
                    "title": "Romanian County",
                    "description": "When the country is RO.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "AR",
                      "AG",
                      "BC",
                      "BH",
                      "BN",
                      "BT",
                      "BV",
                      "BR",
                      "B",
                      "BZ",
                      "CL",
                      "CS",
                      "CT",
                      "CV",
                      "DB",
                      "DJ",
                      "GL",
                      "GR",
                      "GJ",
                      "HR",
                      "HD",
                      "IL",
                      "IS",
                      "IF",
                      "MM",
                      "MH",
                      "MS",
                      "NT",
                      "OT",
                      "PH",
                      "SM",
                      "SJ",
                      "SB",
                      "SV",
                      "TR",
                      "TM",
                      "TL",
                      "VS",
                      "VL",
                      "VN"
                    ]
                  }
                ]
              },
              "city": {
                "type": "string",
                "nullable": true
              },
              "postCode": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true
              }
            },
            "required": [
              "requireInvoice",
              "invoiceType"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "title": "Cardcom Invoice Manager",
            "description": "Invoice processor - Cardcom",
            "properties": {
              "invoiceRequired": {
                "type": "boolean",
                "default": false
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "clientType": {
                "type": "string",
                "enum": [
                  "individual",
                  "company"
                ],
                "nullable": true
              },
              "individual": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "nullable": true
                  },
                  "email": {
                    "type": "string",
                    "nullable": true
                  },
                  "mobilePhoneNumber": {
                    "type": "string",
                    "nullable": true
                  },
                  "taxId": {
                    "type": "string",
                    "nullable": true
                  },
                  "country": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "AF",
                      "AX",
                      "AL",
                      "DZ",
                      "AS",
                      "AD",
                      "AO",
                      "AI",
                      "AQ",
                      "AG",
                      "AR",
                      "AM",
                      "AW",
                      "AU",
                      "AT",
                      "AZ",
                      "BS",
                      "BH",
                      "BD",
                      "BB",
                      "BY",
                      "BE",
                      "BZ",
                      "BJ",
                      "BM",
                      "BT",
                      "BO",
                      "BQ",
                      "BA",
                      "BW",
                      "BV",
                      "BR",
                      "IO",
                      "BN",
                      "BG",
                      "BF",
                      "BI",
                      "KH",
                      "CM",
                      "CA",
                      "CV",
                      "KY",
                      "CF",
                      "TD",
                      "CL",
                      "CN",
                      "CX",
                      "CC",
                      "CO",
                      "KM",
                      "CG",
                      "CD",
                      "CK",
                      "CR",
                      "CI",
                      "HR",
                      "CU",
                      "CW",
                      "CY",
                      "CZ",
                      "DK",
                      "DJ",
                      "DM",
                      "DO",
                      "EC",
                      "EG",
                      "SV",
                      "GQ",
                      "ER",
                      "EE",
                      "ET",
                      "FK",
                      "FO",
                      "FJ",
                      "FI",
                      "FR",
                      "GF",
                      "PF",
                      "TF",
                      "GA",
                      "GM",
                      "GE",
                      "DE",
                      "GH",
                      "GI",
                      "GR",
                      "GL",
                      "GD",
                      "GP",
                      "GU",
                      "GT",
                      "GG",
                      "GN",
                      "GW",
                      "GY",
                      "HT",
                      "HM",
                      "VA",
                      "HN",
                      "HK",
                      "HU",
                      "IS",
                      "IN",
                      "ID",
                      "IR",
                      "IQ",
                      "IE",
                      "IM",
                      "IL",
                      "IT",
                      "JM",
                      "JP",
                      "JE",
                      "JO",
                      "KZ",
                      "KE",
                      "KI",
                      "KP",
                      "KR",
                      "XK",
                      "KW",
                      "KG",
                      "LA",
                      "LV",
                      "LB",
                      "LS",
                      "LR",
                      "LY",
                      "LI",
                      "LT",
                      "LU",
                      "MO",
                      "MK",
                      "MG",
                      "MW",
                      "MY",
                      "MV",
                      "ML",
                      "MT",
                      "MH",
                      "MQ",
                      "MR",
                      "MU",
                      "YT",
                      "MX",
                      "FM",
                      "MD",
                      "MC",
                      "MN",
                      "ME",
                      "MS",
                      "MA",
                      "MZ",
                      "MM",
                      "NA",
                      "NR",
                      "NP",
                      "NL",
                      "NC",
                      "NZ",
                      "NI",
                      "NE",
                      "NG",
                      "NU",
                      "NF",
                      "MP",
                      "NO",
                      "OM",
                      "PK",
                      "PW",
                      "PS",
                      "PA",
                      "PG",
                      "PY",
                      "PE",
                      "PH",
                      "PN",
                      "PL",
                      "PT",
                      "PR",
                      "QA",
                      "RE",
                      "RO",
                      "RU",
                      "RW",
                      "BL",
                      "SH",
                      "KN",
                      "LC",
                      "MF",
                      "PM",
                      "VC",
                      "WS",
                      "SM",
                      "ST",
                      "SA",
                      "SN",
                      "RS",
                      "SC",
                      "SL",
                      "SG",
                      "SX",
                      "SK",
                      "SI",
                      "SB",
                      "SO",
                      "ZA",
                      "GS",
                      "SS",
                      "ES",
                      "LK",
                      "SD",
                      "SR",
                      "SJ",
                      "SZ",
                      "SE",
                      "CH",
                      "SY",
                      "TW",
                      "TJ",
                      "TZ",
                      "TH",
                      "TL",
                      "TG",
                      "TK",
                      "TO",
                      "TT",
                      "TN",
                      "TR",
                      "TM",
                      "TC",
                      "TV",
                      "UG",
                      "UA",
                      "AE",
                      "GB",
                      "US",
                      "UM",
                      "UY",
                      "UZ",
                      "VU",
                      "VE",
                      "VN",
                      "VG",
                      "VI",
                      "WF",
                      "EH",
                      "YE",
                      "ZM",
                      "ZW"
                    ]
                  },
                  "city": {
                    "type": "string",
                    "nullable": true
                  },
                  "postcode": {
                    "type": "string",
                    "nullable": true
                  },
                  "address": {
                    "type": "string",
                    "nullable": true
                  }
                }
              },
              "company": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "nullable": true
                  },
                  "email": {
                    "type": "string",
                    "nullable": true
                  },
                  "mobilePhoneNumber": {
                    "type": "string",
                    "nullable": true
                  },
                  "landlinePhoneNumber": {
                    "type": "string",
                    "nullable": true
                  },
                  "taxId": {
                    "type": "string",
                    "nullable": true
                  },
                  "country": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "AF",
                      "AX",
                      "AL",
                      "DZ",
                      "AS",
                      "AD",
                      "AO",
                      "AI",
                      "AQ",
                      "AG",
                      "AR",
                      "AM",
                      "AW",
                      "AU",
                      "AT",
                      "AZ",
                      "BS",
                      "BH",
                      "BD",
                      "BB",
                      "BY",
                      "BE",
                      "BZ",
                      "BJ",
                      "BM",
                      "BT",
                      "BO",
                      "BQ",
                      "BA",
                      "BW",
                      "BV",
                      "BR",
                      "IO",
                      "BN",
                      "BG",
                      "BF",
                      "BI",
                      "KH",
                      "CM",
                      "CA",
                      "CV",
                      "KY",
                      "CF",
                      "TD",
                      "CL",
                      "CN",
                      "CX",
                      "CC",
                      "CO",
                      "KM",
                      "CG",
                      "CD",
                      "CK",
                      "CR",
                      "CI",
                      "HR",
                      "CU",
                      "CW",
                      "CY",
                      "CZ",
                      "DK",
                      "DJ",
                      "DM",
                      "DO",
                      "EC",
                      "EG",
                      "SV",
                      "GQ",
                      "ER",
                      "EE",
                      "ET",
                      "FK",
                      "FO",
                      "FJ",
                      "FI",
                      "FR",
                      "GF",
                      "PF",
                      "TF",
                      "GA",
                      "GM",
                      "GE",
                      "DE",
                      "GH",
                      "GI",
                      "GR",
                      "GL",
                      "GD",
                      "GP",
                      "GU",
                      "GT",
                      "GG",
                      "GN",
                      "GW",
                      "GY",
                      "HT",
                      "HM",
                      "VA",
                      "HN",
                      "HK",
                      "HU",
                      "IS",
                      "IN",
                      "ID",
                      "IR",
                      "IQ",
                      "IE",
                      "IM",
                      "IL",
                      "IT",
                      "JM",
                      "JP",
                      "JE",
                      "JO",
                      "KZ",
                      "KE",
                      "KI",
                      "KP",
                      "KR",
                      "XK",
                      "KW",
                      "KG",
                      "LA",
                      "LV",
                      "LB",
                      "LS",
                      "LR",
                      "LY",
                      "LI",
                      "LT",
                      "LU",
                      "MO",
                      "MK",
                      "MG",
                      "MW",
                      "MY",
                      "MV",
                      "ML",
                      "MT",
                      "MH",
                      "MQ",
                      "MR",
                      "MU",
                      "YT",
                      "MX",
                      "FM",
                      "MD",
                      "MC",
                      "MN",
                      "ME",
                      "MS",
                      "MA",
                      "MZ",
                      "MM",
                      "NA",
                      "NR",
                      "NP",
                      "NL",
                      "NC",
                      "NZ",
                      "NI",
                      "NE",
                      "NG",
                      "NU",
                      "NF",
                      "MP",
                      "NO",
                      "OM",
                      "PK",
                      "PW",
                      "PS",
                      "PA",
                      "PG",
                      "PY",
                      "PE",
                      "PH",
                      "PN",
                      "PL",
                      "PT",
                      "PR",
                      "QA",
                      "RE",
                      "RO",
                      "RU",
                      "RW",
                      "BL",
                      "SH",
                      "KN",
                      "LC",
                      "MF",
                      "PM",
                      "VC",
                      "WS",
                      "SM",
                      "ST",
                      "SA",
                      "SN",
                      "RS",
                      "SC",
                      "SL",
                      "SG",
                      "SX",
                      "SK",
                      "SI",
                      "SB",
                      "SO",
                      "ZA",
                      "GS",
                      "SS",
                      "ES",
                      "LK",
                      "SD",
                      "SR",
                      "SJ",
                      "SZ",
                      "SE",
                      "CH",
                      "SY",
                      "TW",
                      "TJ",
                      "TZ",
                      "TH",
                      "TL",
                      "TG",
                      "TK",
                      "TO",
                      "TT",
                      "TN",
                      "TR",
                      "TM",
                      "TC",
                      "TV",
                      "UG",
                      "UA",
                      "AE",
                      "GB",
                      "US",
                      "UM",
                      "UY",
                      "UZ",
                      "VU",
                      "VE",
                      "VN",
                      "VG",
                      "VI",
                      "WF",
                      "EH",
                      "YE",
                      "ZM",
                      "ZW"
                    ]
                  },
                  "city": {
                    "type": "string",
                    "nullable": true
                  },
                  "postcode": {
                    "type": "string",
                    "nullable": true
                  },
                  "address": {
                    "type": "string",
                    "nullable": true
                  }
                }
              }
            },
            "required": [
              "invoiceRequired",
              "clientType",
              "individual",
              "company"
            ]
          },
          {
            "type": "object",
            "title": "SoftOne Invoice Manager",
            "description": "Invoice processor - SoftOne",
            "properties": {
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "firstName": {
                "type": "string",
                "nullable": true
              },
              "lastName": {
                "type": "string",
                "nullable": true
              },
              "email": {
                "type": "string",
                "nullable": true
              },
              "phone": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW"
                ]
              },
              "city": {
                "type": "string",
                "nullable": true
              },
              "postcode": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true
              }
            }
          },
          {
            "type": "object",
            "title": "Ecpay Invoice Manager",
            "description": "Invoice processor - Ecpay",
            "properties": {
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "invoiceType": {
                "type": "string",
                "enum": [
                  "EInvoice",
                  "Company",
                  "Donation"
                ]
              },
              "carrierType": {
                "type": "string",
                "enum": [
                  "Mobile",
                  "Citizen",
                  "GreenWorld"
                ],
                "nullable": true
              },
              "loveCode": {
                "type": "string",
                "nullable": true
              },
              "mobileBarCode": {
                "type": "string",
                "nullable": true
              },
              "citizenId": {
                "type": "string",
                "nullable": true
              },
              "companyId": {
                "type": "string",
                "nullable": true
              },
              "name": {
                "type": "string",
                "nullable": true
              },
              "email": {
                "type": "string",
                "nullable": true
              },
              "phone": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW"
                ]
              },
              "city": {
                "type": "string",
                "nullable": true
              },
              "postcode": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true
              }
            }
          },
          {
            "type": "object",
            "title": "Avalara e-invoicing",
            "description": "Avalara e-invoicing processor.\n\nCarries the same fields as the platform's native invoice integration, plus the two Italian SDI buyer\nidentifiers. Those two are only present when the operator's Avalara integration has an Italian mandate\nand the corresponding field is enabled, and they only carry a value for company customers.\n\nWhen both identifiers are collected and enabled, an Italian company (`invoiceType` is `company` and\n`country` is `IT`) must supply at least one of `recipientCode` and `recipientCertifiedEmail` on write.\nThis either-or requirement is conditional on the invoice type and the country, so it cannot be\nexpressed per field in this schema.\n",
            "required": [
              "requireInvoice",
              "invoiceType"
            ],
            "properties": {
              "recipientCode": {
                "type": "string",
                "minLength": 7,
                "maxLength": 7,
                "pattern": "^[A-Za-z0-9]{7}$",
                "description": "Italian SDI recipient code of the buyer. Exactly seven alphanumeric characters, stored uppercased.\nOmitted for individual customers and for company customers that have not supplied it.\n",
                "example": "ABC1234"
              },
              "recipientCertifiedEmail": {
                "type": "string",
                "format": "email",
                "description": "Certified electronic mail (PEC) address of the buyer. Omitted for individual customers and for\ncompany customers that have not supplied it.\n",
                "example": "buyer@pec.example.com"
              },
              "requireInvoice": {
                "type": "boolean",
                "default": false,
                "description": "Whether invoice is required for this user. Note: If the operator has 'Always collect Invoice Details' enabled in their invoice integration settings, this field will always be true regardless of the request payload value."
              },
              "requireInvoiceLastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date. The date is automatically updated when the value of the \"requireInvoice\" field changes.",
                "readOnly": true,
                "nullable": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "requireInvoiceEnforcedBy": {
                "type": "string",
                "enum": [
                  "operator_setting",
                  "user_request"
                ],
                "description": "Indicates the source that determined the final requireInvoice value. Only present when operator setting overrides user request.",
                "nullable": true
              },
              "originalRequestValue": {
                "type": "boolean",
                "description": "The originally requested requireInvoice value when operator override occurred. Only present when requireInvoiceEnforcedBy is 'operator_setting'.",
                "nullable": true
              },
              "invoiceType": {
                "type": "string",
                "enum": [
                  "individual",
                  "company"
                ],
                "nullable": true
              },
              "individualName": {
                "type": "string",
                "nullable": true
              },
              "individualPersonalId": {
                "type": "string",
                "nullable": true
              },
              "individualTaxId": {
                "type": "string",
                "nullable": true
              },
              "companyName": {
                "type": "string",
                "nullable": true
              },
              "companyRegNo": {
                "type": "string",
                "nullable": true
              },
              "companyTaxId": {
                "type": "string",
                "nullable": true
              },
              "companyTaxAdministrationOfficeName": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW"
                ]
              },
              "region": {
                "type": "string",
                "nullable": true,
                "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
              },
              "state": {
                "description": "When the selected country is one of US, AU, CA, UM or RO",
                "anyOf": [
                  {
                    "title": "US State",
                    "description": "When the country is US.",
                    "type": "string",
                    "enum": [
                      "AL",
                      "AK",
                      "AS",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FM",
                      "FL",
                      "GA",
                      "GU",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MH",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "MP",
                      "OH",
                      "OK",
                      "OR",
                      "PW",
                      "PA",
                      "PR",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VI",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY"
                    ]
                  },
                  {
                    "title": "Australian State",
                    "description": "When the country is AU.",
                    "type": "string",
                    "enum": [
                      "NSW",
                      "VIC",
                      "QLD",
                      "WA",
                      "SA",
                      "TAS",
                      "ACT",
                      "NT",
                      "JBT",
                      "CX",
                      "NF",
                      "CC",
                      "AQ",
                      "CSI",
                      "ACI",
                      "HM"
                    ]
                  },
                  {
                    "title": "Canadian Province",
                    "description": "When the country is CA.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "BC",
                      "MB",
                      "NB",
                      "NL",
                      "NT",
                      "NS",
                      "NU",
                      "ON",
                      "PE",
                      "QC",
                      "SK",
                      "YT"
                    ]
                  },
                  {
                    "title": "US Minor Outlying Islands Territory",
                    "description": "When the country is UM.",
                    "type": "string",
                    "enum": [
                      "81",
                      "84",
                      "85",
                      "67",
                      "89",
                      "71",
                      "76",
                      "95",
                      "79"
                    ]
                  },
                  {
                    "title": "Romanian County",
                    "description": "When the country is RO.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "AR",
                      "AG",
                      "BC",
                      "BH",
                      "BN",
                      "BT",
                      "BV",
                      "BR",
                      "B",
                      "BZ",
                      "CL",
                      "CS",
                      "CT",
                      "CV",
                      "DB",
                      "DJ",
                      "GL",
                      "GR",
                      "GJ",
                      "HR",
                      "HD",
                      "IL",
                      "IS",
                      "IF",
                      "MM",
                      "MH",
                      "MS",
                      "NT",
                      "OT",
                      "PH",
                      "SM",
                      "SJ",
                      "SB",
                      "SV",
                      "TR",
                      "TM",
                      "TL",
                      "VS",
                      "VL",
                      "VN"
                    ]
                  }
                ]
              },
              "city": {
                "type": "string",
                "nullable": true
              },
              "postCode": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "invoiceDetailsCreateOrUpdate": {
    "200": {
      "schema": {
        "anyOf": [
          {
            "type": "object",
            "title": "Built-in invoicing",
            "description": "Built-in invoice processor",
            "properties": {
              "requireInvoice": {
                "type": "boolean",
                "default": false,
                "description": "Whether invoice is required for this user. Note: If the operator has 'Always collect Invoice Details' enabled in their invoice integration settings, this field will always be true regardless of the request payload value."
              },
              "requireInvoiceLastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date. The date is automatically updated when the value of the \"requireInvoice\" field changes.",
                "readOnly": true,
                "nullable": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "requireInvoiceEnforcedBy": {
                "type": "string",
                "enum": [
                  "operator_setting",
                  "user_request"
                ],
                "description": "Indicates the source that determined the final requireInvoice value. Only present when operator setting overrides user request.",
                "nullable": true
              },
              "originalRequestValue": {
                "type": "boolean",
                "description": "The originally requested requireInvoice value when operator override occurred. Only present when requireInvoiceEnforcedBy is 'operator_setting'.",
                "nullable": true
              },
              "invoiceType": {
                "type": "string",
                "enum": [
                  "individual",
                  "company"
                ],
                "nullable": true
              },
              "individualName": {
                "type": "string",
                "nullable": true
              },
              "individualPersonalId": {
                "type": "string",
                "nullable": true
              },
              "individualTaxId": {
                "type": "string",
                "nullable": true
              },
              "companyName": {
                "type": "string",
                "nullable": true
              },
              "companyRegNo": {
                "type": "string",
                "nullable": true
              },
              "companyTaxId": {
                "type": "string",
                "nullable": true
              },
              "companyTaxAdministrationOfficeName": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW"
                ]
              },
              "region": {
                "type": "string",
                "nullable": true,
                "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
              },
              "state": {
                "description": "When the selected country is one of US, AU, CA, UM or RO",
                "anyOf": [
                  {
                    "title": "US State",
                    "description": "When the country is US.",
                    "type": "string",
                    "enum": [
                      "AL",
                      "AK",
                      "AS",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FM",
                      "FL",
                      "GA",
                      "GU",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MH",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "MP",
                      "OH",
                      "OK",
                      "OR",
                      "PW",
                      "PA",
                      "PR",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VI",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY"
                    ]
                  },
                  {
                    "title": "Australian State",
                    "description": "When the country is AU.",
                    "type": "string",
                    "enum": [
                      "NSW",
                      "VIC",
                      "QLD",
                      "WA",
                      "SA",
                      "TAS",
                      "ACT",
                      "NT",
                      "JBT",
                      "CX",
                      "NF",
                      "CC",
                      "AQ",
                      "CSI",
                      "ACI",
                      "HM"
                    ]
                  },
                  {
                    "title": "Canadian Province",
                    "description": "When the country is CA.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "BC",
                      "MB",
                      "NB",
                      "NL",
                      "NT",
                      "NS",
                      "NU",
                      "ON",
                      "PE",
                      "QC",
                      "SK",
                      "YT"
                    ]
                  },
                  {
                    "title": "US Minor Outlying Islands Territory",
                    "description": "When the country is UM.",
                    "type": "string",
                    "enum": [
                      "81",
                      "84",
                      "85",
                      "67",
                      "89",
                      "71",
                      "76",
                      "95",
                      "79"
                    ]
                  },
                  {
                    "title": "Romanian County",
                    "description": "When the country is RO.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "AR",
                      "AG",
                      "BC",
                      "BH",
                      "BN",
                      "BT",
                      "BV",
                      "BR",
                      "B",
                      "BZ",
                      "CL",
                      "CS",
                      "CT",
                      "CV",
                      "DB",
                      "DJ",
                      "GL",
                      "GR",
                      "GJ",
                      "HR",
                      "HD",
                      "IL",
                      "IS",
                      "IF",
                      "MM",
                      "MH",
                      "MS",
                      "NT",
                      "OT",
                      "PH",
                      "SM",
                      "SJ",
                      "SB",
                      "SV",
                      "TR",
                      "TM",
                      "TL",
                      "VS",
                      "VL",
                      "VN"
                    ]
                  }
                ]
              },
              "city": {
                "type": "string",
                "nullable": true
              },
              "postCode": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true
              }
            },
            "required": [
              "requireInvoice",
              "invoiceType"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "title": "Cardcom Invoice Manager",
            "description": "Invoice processor - Cardcom",
            "properties": {
              "invoiceRequired": {
                "type": "boolean",
                "default": false
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "clientType": {
                "type": "string",
                "enum": [
                  "individual",
                  "company"
                ],
                "nullable": true
              },
              "individual": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "nullable": true
                  },
                  "email": {
                    "type": "string",
                    "nullable": true
                  },
                  "mobilePhoneNumber": {
                    "type": "string",
                    "nullable": true
                  },
                  "taxId": {
                    "type": "string",
                    "nullable": true
                  },
                  "country": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "AF",
                      "AX",
                      "AL",
                      "DZ",
                      "AS",
                      "AD",
                      "AO",
                      "AI",
                      "AQ",
                      "AG",
                      "AR",
                      "AM",
                      "AW",
                      "AU",
                      "AT",
                      "AZ",
                      "BS",
                      "BH",
                      "BD",
                      "BB",
                      "BY",
                      "BE",
                      "BZ",
                      "BJ",
                      "BM",
                      "BT",
                      "BO",
                      "BQ",
                      "BA",
                      "BW",
                      "BV",
                      "BR",
                      "IO",
                      "BN",
                      "BG",
                      "BF",
                      "BI",
                      "KH",
                      "CM",
                      "CA",
                      "CV",
                      "KY",
                      "CF",
                      "TD",
                      "CL",
                      "CN",
                      "CX",
                      "CC",
                      "CO",
                      "KM",
                      "CG",
                      "CD",
                      "CK",
                      "CR",
                      "CI",
                      "HR",
                      "CU",
                      "CW",
                      "CY",
                      "CZ",
                      "DK",
                      "DJ",
                      "DM",
                      "DO",
                      "EC",
                      "EG",
                      "SV",
                      "GQ",
                      "ER",
                      "EE",
                      "ET",
                      "FK",
                      "FO",
                      "FJ",
                      "FI",
                      "FR",
                      "GF",
                      "PF",
                      "TF",
                      "GA",
                      "GM",
                      "GE",
                      "DE",
                      "GH",
                      "GI",
                      "GR",
                      "GL",
                      "GD",
                      "GP",
                      "GU",
                      "GT",
                      "GG",
                      "GN",
                      "GW",
                      "GY",
                      "HT",
                      "HM",
                      "VA",
                      "HN",
                      "HK",
                      "HU",
                      "IS",
                      "IN",
                      "ID",
                      "IR",
                      "IQ",
                      "IE",
                      "IM",
                      "IL",
                      "IT",
                      "JM",
                      "JP",
                      "JE",
                      "JO",
                      "KZ",
                      "KE",
                      "KI",
                      "KP",
                      "KR",
                      "XK",
                      "KW",
                      "KG",
                      "LA",
                      "LV",
                      "LB",
                      "LS",
                      "LR",
                      "LY",
                      "LI",
                      "LT",
                      "LU",
                      "MO",
                      "MK",
                      "MG",
                      "MW",
                      "MY",
                      "MV",
                      "ML",
                      "MT",
                      "MH",
                      "MQ",
                      "MR",
                      "MU",
                      "YT",
                      "MX",
                      "FM",
                      "MD",
                      "MC",
                      "MN",
                      "ME",
                      "MS",
                      "MA",
                      "MZ",
                      "MM",
                      "NA",
                      "NR",
                      "NP",
                      "NL",
                      "NC",
                      "NZ",
                      "NI",
                      "NE",
                      "NG",
                      "NU",
                      "NF",
                      "MP",
                      "NO",
                      "OM",
                      "PK",
                      "PW",
                      "PS",
                      "PA",
                      "PG",
                      "PY",
                      "PE",
                      "PH",
                      "PN",
                      "PL",
                      "PT",
                      "PR",
                      "QA",
                      "RE",
                      "RO",
                      "RU",
                      "RW",
                      "BL",
                      "SH",
                      "KN",
                      "LC",
                      "MF",
                      "PM",
                      "VC",
                      "WS",
                      "SM",
                      "ST",
                      "SA",
                      "SN",
                      "RS",
                      "SC",
                      "SL",
                      "SG",
                      "SX",
                      "SK",
                      "SI",
                      "SB",
                      "SO",
                      "ZA",
                      "GS",
                      "SS",
                      "ES",
                      "LK",
                      "SD",
                      "SR",
                      "SJ",
                      "SZ",
                      "SE",
                      "CH",
                      "SY",
                      "TW",
                      "TJ",
                      "TZ",
                      "TH",
                      "TL",
                      "TG",
                      "TK",
                      "TO",
                      "TT",
                      "TN",
                      "TR",
                      "TM",
                      "TC",
                      "TV",
                      "UG",
                      "UA",
                      "AE",
                      "GB",
                      "US",
                      "UM",
                      "UY",
                      "UZ",
                      "VU",
                      "VE",
                      "VN",
                      "VG",
                      "VI",
                      "WF",
                      "EH",
                      "YE",
                      "ZM",
                      "ZW"
                    ]
                  },
                  "city": {
                    "type": "string",
                    "nullable": true
                  },
                  "postcode": {
                    "type": "string",
                    "nullable": true
                  },
                  "address": {
                    "type": "string",
                    "nullable": true
                  }
                }
              },
              "company": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "nullable": true
                  },
                  "email": {
                    "type": "string",
                    "nullable": true
                  },
                  "mobilePhoneNumber": {
                    "type": "string",
                    "nullable": true
                  },
                  "landlinePhoneNumber": {
                    "type": "string",
                    "nullable": true
                  },
                  "taxId": {
                    "type": "string",
                    "nullable": true
                  },
                  "country": {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      "AF",
                      "AX",
                      "AL",
                      "DZ",
                      "AS",
                      "AD",
                      "AO",
                      "AI",
                      "AQ",
                      "AG",
                      "AR",
                      "AM",
                      "AW",
                      "AU",
                      "AT",
                      "AZ",
                      "BS",
                      "BH",
                      "BD",
                      "BB",
                      "BY",
                      "BE",
                      "BZ",
                      "BJ",
                      "BM",
                      "BT",
                      "BO",
                      "BQ",
                      "BA",
                      "BW",
                      "BV",
                      "BR",
                      "IO",
                      "BN",
                      "BG",
                      "BF",
                      "BI",
                      "KH",
                      "CM",
                      "CA",
                      "CV",
                      "KY",
                      "CF",
                      "TD",
                      "CL",
                      "CN",
                      "CX",
                      "CC",
                      "CO",
                      "KM",
                      "CG",
                      "CD",
                      "CK",
                      "CR",
                      "CI",
                      "HR",
                      "CU",
                      "CW",
                      "CY",
                      "CZ",
                      "DK",
                      "DJ",
                      "DM",
                      "DO",
                      "EC",
                      "EG",
                      "SV",
                      "GQ",
                      "ER",
                      "EE",
                      "ET",
                      "FK",
                      "FO",
                      "FJ",
                      "FI",
                      "FR",
                      "GF",
                      "PF",
                      "TF",
                      "GA",
                      "GM",
                      "GE",
                      "DE",
                      "GH",
                      "GI",
                      "GR",
                      "GL",
                      "GD",
                      "GP",
                      "GU",
                      "GT",
                      "GG",
                      "GN",
                      "GW",
                      "GY",
                      "HT",
                      "HM",
                      "VA",
                      "HN",
                      "HK",
                      "HU",
                      "IS",
                      "IN",
                      "ID",
                      "IR",
                      "IQ",
                      "IE",
                      "IM",
                      "IL",
                      "IT",
                      "JM",
                      "JP",
                      "JE",
                      "JO",
                      "KZ",
                      "KE",
                      "KI",
                      "KP",
                      "KR",
                      "XK",
                      "KW",
                      "KG",
                      "LA",
                      "LV",
                      "LB",
                      "LS",
                      "LR",
                      "LY",
                      "LI",
                      "LT",
                      "LU",
                      "MO",
                      "MK",
                      "MG",
                      "MW",
                      "MY",
                      "MV",
                      "ML",
                      "MT",
                      "MH",
                      "MQ",
                      "MR",
                      "MU",
                      "YT",
                      "MX",
                      "FM",
                      "MD",
                      "MC",
                      "MN",
                      "ME",
                      "MS",
                      "MA",
                      "MZ",
                      "MM",
                      "NA",
                      "NR",
                      "NP",
                      "NL",
                      "NC",
                      "NZ",
                      "NI",
                      "NE",
                      "NG",
                      "NU",
                      "NF",
                      "MP",
                      "NO",
                      "OM",
                      "PK",
                      "PW",
                      "PS",
                      "PA",
                      "PG",
                      "PY",
                      "PE",
                      "PH",
                      "PN",
                      "PL",
                      "PT",
                      "PR",
                      "QA",
                      "RE",
                      "RO",
                      "RU",
                      "RW",
                      "BL",
                      "SH",
                      "KN",
                      "LC",
                      "MF",
                      "PM",
                      "VC",
                      "WS",
                      "SM",
                      "ST",
                      "SA",
                      "SN",
                      "RS",
                      "SC",
                      "SL",
                      "SG",
                      "SX",
                      "SK",
                      "SI",
                      "SB",
                      "SO",
                      "ZA",
                      "GS",
                      "SS",
                      "ES",
                      "LK",
                      "SD",
                      "SR",
                      "SJ",
                      "SZ",
                      "SE",
                      "CH",
                      "SY",
                      "TW",
                      "TJ",
                      "TZ",
                      "TH",
                      "TL",
                      "TG",
                      "TK",
                      "TO",
                      "TT",
                      "TN",
                      "TR",
                      "TM",
                      "TC",
                      "TV",
                      "UG",
                      "UA",
                      "AE",
                      "GB",
                      "US",
                      "UM",
                      "UY",
                      "UZ",
                      "VU",
                      "VE",
                      "VN",
                      "VG",
                      "VI",
                      "WF",
                      "EH",
                      "YE",
                      "ZM",
                      "ZW"
                    ]
                  },
                  "city": {
                    "type": "string",
                    "nullable": true
                  },
                  "postcode": {
                    "type": "string",
                    "nullable": true
                  },
                  "address": {
                    "type": "string",
                    "nullable": true
                  }
                }
              }
            },
            "required": [
              "invoiceRequired",
              "clientType",
              "individual",
              "company"
            ]
          },
          {
            "type": "object",
            "title": "SoftOne Invoice Manager",
            "description": "Invoice processor - SoftOne",
            "properties": {
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "firstName": {
                "type": "string",
                "nullable": true
              },
              "lastName": {
                "type": "string",
                "nullable": true
              },
              "email": {
                "type": "string",
                "nullable": true
              },
              "phone": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW"
                ]
              },
              "city": {
                "type": "string",
                "nullable": true
              },
              "postcode": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true
              }
            }
          },
          {
            "type": "object",
            "title": "Ecpay Invoice Manager",
            "description": "Invoice processor - Ecpay",
            "properties": {
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "invoiceType": {
                "type": "string",
                "enum": [
                  "EInvoice",
                  "Company",
                  "Donation"
                ]
              },
              "carrierType": {
                "type": "string",
                "enum": [
                  "Mobile",
                  "Citizen",
                  "GreenWorld"
                ],
                "nullable": true
              },
              "loveCode": {
                "type": "string",
                "nullable": true
              },
              "mobileBarCode": {
                "type": "string",
                "nullable": true
              },
              "citizenId": {
                "type": "string",
                "nullable": true
              },
              "companyId": {
                "type": "string",
                "nullable": true
              },
              "name": {
                "type": "string",
                "nullable": true
              },
              "email": {
                "type": "string",
                "nullable": true
              },
              "phone": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW"
                ]
              },
              "city": {
                "type": "string",
                "nullable": true
              },
              "postcode": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true
              }
            }
          },
          {
            "type": "object",
            "title": "Avalara e-invoicing",
            "description": "Avalara e-invoicing processor.\n\nCarries the same fields as the platform's native invoice integration, plus the two Italian SDI buyer\nidentifiers. Those two are only present when the operator's Avalara integration has an Italian mandate\nand the corresponding field is enabled, and they only carry a value for company customers.\n\nWhen both identifiers are collected and enabled, an Italian company (`invoiceType` is `company` and\n`country` is `IT`) must supply at least one of `recipientCode` and `recipientCertifiedEmail` on write.\nThis either-or requirement is conditional on the invoice type and the country, so it cannot be\nexpressed per field in this schema.\n",
            "required": [
              "requireInvoice",
              "invoiceType"
            ],
            "properties": {
              "recipientCode": {
                "type": "string",
                "minLength": 7,
                "maxLength": 7,
                "pattern": "^[A-Za-z0-9]{7}$",
                "description": "Italian SDI recipient code of the buyer. Exactly seven alphanumeric characters, stored uppercased.\nOmitted for individual customers and for company customers that have not supplied it.\n",
                "example": "ABC1234"
              },
              "recipientCertifiedEmail": {
                "type": "string",
                "format": "email",
                "description": "Certified electronic mail (PEC) address of the buyer. Omitted for individual customers and for\ncompany customers that have not supplied it.\n",
                "example": "buyer@pec.example.com"
              },
              "requireInvoice": {
                "type": "boolean",
                "default": false,
                "description": "Whether invoice is required for this user. Note: If the operator has 'Always collect Invoice Details' enabled in their invoice integration settings, this field will always be true regardless of the request payload value."
              },
              "requireInvoiceLastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date. The date is automatically updated when the value of the \"requireInvoice\" field changes.",
                "readOnly": true,
                "nullable": true
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "requireInvoiceEnforcedBy": {
                "type": "string",
                "enum": [
                  "operator_setting",
                  "user_request"
                ],
                "description": "Indicates the source that determined the final requireInvoice value. Only present when operator setting overrides user request.",
                "nullable": true
              },
              "originalRequestValue": {
                "type": "boolean",
                "description": "The originally requested requireInvoice value when operator override occurred. Only present when requireInvoiceEnforcedBy is 'operator_setting'.",
                "nullable": true
              },
              "invoiceType": {
                "type": "string",
                "enum": [
                  "individual",
                  "company"
                ],
                "nullable": true
              },
              "individualName": {
                "type": "string",
                "nullable": true
              },
              "individualPersonalId": {
                "type": "string",
                "nullable": true
              },
              "individualTaxId": {
                "type": "string",
                "nullable": true
              },
              "companyName": {
                "type": "string",
                "nullable": true
              },
              "companyRegNo": {
                "type": "string",
                "nullable": true
              },
              "companyTaxId": {
                "type": "string",
                "nullable": true
              },
              "companyTaxAdministrationOfficeName": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW"
                ]
              },
              "region": {
                "type": "string",
                "nullable": true,
                "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
              },
              "state": {
                "description": "When the selected country is one of US, AU, CA, UM or RO",
                "anyOf": [
                  {
                    "title": "US State",
                    "description": "When the country is US.",
                    "type": "string",
                    "enum": [
                      "AL",
                      "AK",
                      "AS",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FM",
                      "FL",
                      "GA",
                      "GU",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MH",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "MP",
                      "OH",
                      "OK",
                      "OR",
                      "PW",
                      "PA",
                      "PR",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VI",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY"
                    ]
                  },
                  {
                    "title": "Australian State",
                    "description": "When the country is AU.",
                    "type": "string",
                    "enum": [
                      "NSW",
                      "VIC",
                      "QLD",
                      "WA",
                      "SA",
                      "TAS",
                      "ACT",
                      "NT",
                      "JBT",
                      "CX",
                      "NF",
                      "CC",
                      "AQ",
                      "CSI",
                      "ACI",
                      "HM"
                    ]
                  },
                  {
                    "title": "Canadian Province",
                    "description": "When the country is CA.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "BC",
                      "MB",
                      "NB",
                      "NL",
                      "NT",
                      "NS",
                      "NU",
                      "ON",
                      "PE",
                      "QC",
                      "SK",
                      "YT"
                    ]
                  },
                  {
                    "title": "US Minor Outlying Islands Territory",
                    "description": "When the country is UM.",
                    "type": "string",
                    "enum": [
                      "81",
                      "84",
                      "85",
                      "67",
                      "89",
                      "71",
                      "76",
                      "95",
                      "79"
                    ]
                  },
                  {
                    "title": "Romanian County",
                    "description": "When the country is RO.",
                    "type": "string",
                    "enum": [
                      "AB",
                      "AR",
                      "AG",
                      "BC",
                      "BH",
                      "BN",
                      "BT",
                      "BV",
                      "BR",
                      "B",
                      "BZ",
                      "CL",
                      "CS",
                      "CT",
                      "CV",
                      "DB",
                      "DJ",
                      "GL",
                      "GR",
                      "GJ",
                      "HR",
                      "HD",
                      "IL",
                      "IS",
                      "IF",
                      "MM",
                      "MH",
                      "MS",
                      "NT",
                      "OT",
                      "PH",
                      "SM",
                      "SJ",
                      "SB",
                      "SV",
                      "TR",
                      "TM",
                      "TL",
                      "VS",
                      "VL",
                      "VN"
                    ]
                  }
                ]
              },
              "city": {
                "type": "string",
                "nullable": true
              },
              "postCode": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "paymentMethodsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Please note that the ID of the payment processor is actually a STRING. Please expect records in the format of `corporate:1234` or `subscription_installment:1235` - those will be of type `corporate billing` or `subscription` and when used to start a session will actually bill that session to a corporate account or subscription, that the customer is a member of! Please also note that a value of `NULL` indicates `Balance`",
                  "nullable": true,
                  "readOnly": true
                },
                "userId": {
                  "type": "integer",
                  "nullable": false,
                  "readOnly": true
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "tokenized",
                    "corporate",
                    "balance",
                    "subscription",
                    "wallet",
                    "bank_transfer",
                    null
                  ],
                  "nullable": true,
                  "readOnly": true
                },
                "tokenizedType": {
                  "type": "string",
                  "readOnly": true,
                  "enum": [
                    "card",
                    "bank_transfer",
                    "wallet"
                  ]
                },
                "bankTransferType": {
                  "type": "string",
                  "readOnly": true,
                  "enum": [
                    "sepa",
                    "pse"
                  ]
                },
                "walletType": {
                  "type": "string",
                  "readOnly": true,
                  "enum": [
                    "applepay",
                    "googlepay",
                    "twint",
                    "bancontact",
                    "other"
                  ]
                },
                "issuer": {
                  "deprecated": true,
                  "description": "**This property is deprecated. Use `cardNetwork` instead.**\n\nunknown type means - a payment processor of other then the listed types\n",
                  "readOnly": true,
                  "type": "string",
                  "enum": [
                    "visa",
                    "mastercard",
                    "paypal",
                    "maestro",
                    "amex",
                    "bancontact",
                    "cartes_bancaires",
                    "diners_club",
                    "discover",
                    "interac",
                    "jcb",
                    "mada",
                    "visa_electron",
                    "unknown"
                  ],
                  "x-enumDescriptions": {
                    "bancontact": "Bancontact",
                    "cartes_bancaires": "Cartes Bancaires",
                    "diners_club": "Diners Club",
                    "discover": "Discover",
                    "interac": "Interac",
                    "jcb": "JCB",
                    "mada": "MADA",
                    "visa_electron": "Visa Electron"
                  },
                  "nullable": true
                },
                "cardNetwork": {
                  "type": "string",
                  "description": "Card network. Replaces the deprecated `issuer`.",
                  "readOnly": true,
                  "enum": [
                    "visa",
                    "mastercard",
                    "paypal",
                    "maestro",
                    "amex",
                    "bancontact",
                    "cartes_bancaires",
                    "diners_club",
                    "discover",
                    "interac",
                    "jcb",
                    "mada",
                    "visa_electron",
                    "unknown"
                  ],
                  "x-enumDescriptions": {
                    "bancontact": "Bancontact",
                    "cartes_bancaires": "Cartes Bancaires",
                    "diners_club": "Diners Club",
                    "discover": "Discover",
                    "interac": "Interac",
                    "jcb": "JCB",
                    "mada": "MADA",
                    "visa_electron": "Visa Electron"
                  }
                },
                "cardType": {
                  "type": "string",
                  "description": "Card category.\n\nAllowed values:\n- `credit` - Credit card.\n- `debit` - Debit card.\n- `prepaid` - Prepaid card.\n",
                  "readOnly": true,
                  "enum": [
                    "credit",
                    "debit",
                    "prepaid"
                  ]
                },
                "bin": {
                  "type": "string",
                  "description": "Bank identification number (first 6-8 digits).",
                  "readOnly": true
                },
                "fingerprint": {
                  "type": "string",
                  "description": "Unique card fingerprint for cross-channel and cross-PSP card identification. Carries the Payment Account Reference (PAR) where the PSP provides it.",
                  "readOnly": true
                },
                "acquirerName": {
                  "type": "string",
                  "description": "Name of the acquiring bank.",
                  "readOnly": true
                },
                "issuerName": {
                  "type": "string",
                  "description": "Name of the card issuing bank.",
                  "readOnly": true
                },
                "issuerCode": {
                  "type": "string",
                  "description": "Code of the card issuing bank.",
                  "readOnly": true
                },
                "name": {
                  "type": "string",
                  "description": "The last 4 digits of the CC (with a prefix of \"****\") or the name of the corporate account or the name of the subscription plan or \"Balance\"",
                  "readOnly": true
                },
                "default": {
                  "type": "boolean"
                },
                "expireYear": {
                  "type": "number",
                  "example": 2028,
                  "readOnly": true,
                  "nullable": true
                },
                "expireMonth": {
                  "type": "number",
                  "example": 5,
                  "readOnly": true,
                  "nullable": true
                },
                "registrationTransactionId": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "The ID of the transaction that was used to tokenize this payment method. Absent when the payment method was registered before this feature, or when the payment method was not registered through a tokenization transaction (e.g., bank transfers, manually added payment methods)."
                },
                "token": {
                  "type": "string",
                  "readOnly": true,
                  "description": "The payment processor's stored reference for this payment method."
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "addedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true,
                  "nullable": true
                },
                "removedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true,
                  "nullable": true
                }
              },
              "required": [
                "id",
                "type",
                "name",
                "userId",
                "default"
              ]
            },
            "example": [
              {
                "id": null,
                "userId": 123,
                "type": "balance",
                "name": "Balance",
                "default": false,
                "addedAt": "2024-02-07T13:56:19+00:00",
                "removedAt": "2025-03-07T13:54:11+00:00"
              },
              {
                "id": "1234",
                "userId": 123,
                "type": "tokenized",
                "tokenizedType": "card",
                "issuer": "visa",
                "cardNetwork": "visa",
                "name": "**** 1111",
                "cardType": "credit",
                "bin": "411111",
                "fingerprint": "CjhjhUJ7EaIGzKuYpHGTLLsG6pNs5",
                "acquirerName": "Worldline",
                "token": "stored-payment-token",
                "default": true,
                "expireYear": 2026,
                "expireMonth": 5,
                "addedAt": "2024-02-07T13:56:19+00:00",
                "removedAt": "2025-03-07T13:54:11+00:00"
              },
              {
                "id": "589",
                "userId": 123,
                "type": "tokenized",
                "tokenizedType": "bank_transfer",
                "bankTransferType": "sepa",
                "issuer": null,
                "name": "**** 1113",
                "default": false,
                "expireYear": null,
                "expireMonth": null
              },
              {
                "id": "corporate:1235",
                "userId": 123,
                "name": "The Corporation LLC",
                "type": "corporate",
                "default": false,
                "addedAt": "2024-02-07T13:56:19+00:00",
                "removedAt": "2025-03-07T13:54:11+00:00"
              },
              {
                "id": "subscription_installment:1234",
                "userId": 123,
                "name": "Post paid subscription name",
                "type": "subscription",
                "default": false,
                "addedAt": "2024-02-07T13:56:19+00:00",
                "removedAt": null
              },
              {
                "id": "wallet:applepay",
                "userId": 123,
                "type": "wallet",
                "issuer": "unknown",
                "name": "Wallet123",
                "walletType": "applepay",
                "default": false
              }
            ]
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page"
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page"
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page",
                "nullable": true
              }
            },
            "required": [
              "first",
              "last"
            ]
          },
          "meta": {
            "type": "object",
            "properties": {
              "current_page": {
                "type": "integer",
                "description": "The number of the current page being fetched"
              },
              "from": {
                "type": "integer",
                "description": "The first of the fetched item's position in the total list",
                "nullable": true
              },
              "last_page": {
                "type": "integer",
                "description": "The number of the past page"
              },
              "links": {
                "type": "array",
                "description": "Array of link objects pointing to the previous/current/next pages",
                "items": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string",
                      "nullable": true,
                      "description": "The URL to the previous/current/next page or null if such page does not exist"
                    },
                    "label": {
                      "type": "string",
                      "description": "The name of the page that the links should be pointing to"
                    },
                    "active": {
                      "type": "boolean",
                      "description": "Is the link active, it will be true only when there is an URL"
                    }
                  }
                }
              },
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "to": {
                "type": "integer",
                "description": "The last of the fetched item's position in the total list",
                "nullable": true
              },
              "total": {
                "type": "integer",
                "description": "The total number of items in the list"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "paymentMethodCreate": {
    "200": {
      "schema": {
        "oneOf": [
          {
            "title": "Transaction-based Payment Method Setup",
            "type": "object",
            "properties": {
              "transactionId": {
                "type": "number",
                "description": "The TransactionID of the request to add payment method."
              },
              "successUrl": {
                "type": "string",
                "nullable": true
              },
              "redirectUrl": {
                "type": "string",
                "description": "URL to redirect the user to. The user will be prompted to enter the payment method details when he/she visits it",
                "nullable": true
              }
            },
            "additionalProperties": true,
            "description": "Pass the transactionId to the request body of the second step along with any other attributes that you get from this",
            "required": [
              "transactionId"
            ]
          },
          {
            "title": "Stripe Setup Intent Payment Method",
            "type": "object",
            "properties": {
              "publishableKey": {
                "type": "string"
              },
              "clientSecret": {
                "type": "string"
              },
              "setupIntentReference": {
                "type": "string"
              }
            },
            "required": [
              "publishableKey",
              "clientSecret",
              "setupIntentReference"
            ]
          }
        ]
      }
    },
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "Please note that the ID of the payment processor is actually a STRING. Please expect records in the format of `corporate:1234` or `subscription_installment:1235` - those will be of type `corporate billing` or `subscription` and when used to start a session will actually bill that session to a corporate account or subscription, that the customer is a member of! Please also note that a value of `NULL` indicates `Balance`",
                "nullable": true,
                "readOnly": true
              },
              "userId": {
                "type": "integer",
                "nullable": false,
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "tokenized",
                  "corporate",
                  "balance",
                  "subscription",
                  "wallet",
                  "bank_transfer",
                  null
                ],
                "nullable": true,
                "readOnly": true
              },
              "tokenizedType": {
                "type": "string",
                "readOnly": true,
                "enum": [
                  "card",
                  "bank_transfer",
                  "wallet"
                ]
              },
              "bankTransferType": {
                "type": "string",
                "readOnly": true,
                "enum": [
                  "sepa",
                  "pse"
                ]
              },
              "walletType": {
                "type": "string",
                "readOnly": true,
                "enum": [
                  "applepay",
                  "googlepay",
                  "twint",
                  "bancontact",
                  "other"
                ]
              },
              "issuer": {
                "deprecated": true,
                "description": "**This property is deprecated. Use `cardNetwork` instead.**\n\nunknown type means - a payment processor of other then the listed types\n",
                "readOnly": true,
                "type": "string",
                "enum": [
                  "visa",
                  "mastercard",
                  "paypal",
                  "maestro",
                  "amex",
                  "bancontact",
                  "cartes_bancaires",
                  "diners_club",
                  "discover",
                  "interac",
                  "jcb",
                  "mada",
                  "visa_electron",
                  "unknown"
                ],
                "x-enumDescriptions": {
                  "bancontact": "Bancontact",
                  "cartes_bancaires": "Cartes Bancaires",
                  "diners_club": "Diners Club",
                  "discover": "Discover",
                  "interac": "Interac",
                  "jcb": "JCB",
                  "mada": "MADA",
                  "visa_electron": "Visa Electron"
                },
                "nullable": true
              },
              "cardNetwork": {
                "type": "string",
                "description": "Card network. Replaces the deprecated `issuer`.",
                "readOnly": true,
                "enum": [
                  "visa",
                  "mastercard",
                  "paypal",
                  "maestro",
                  "amex",
                  "bancontact",
                  "cartes_bancaires",
                  "diners_club",
                  "discover",
                  "interac",
                  "jcb",
                  "mada",
                  "visa_electron",
                  "unknown"
                ],
                "x-enumDescriptions": {
                  "bancontact": "Bancontact",
                  "cartes_bancaires": "Cartes Bancaires",
                  "diners_club": "Diners Club",
                  "discover": "Discover",
                  "interac": "Interac",
                  "jcb": "JCB",
                  "mada": "MADA",
                  "visa_electron": "Visa Electron"
                }
              },
              "cardType": {
                "type": "string",
                "description": "Card category.\n\nAllowed values:\n- `credit` - Credit card.\n- `debit` - Debit card.\n- `prepaid` - Prepaid card.\n",
                "readOnly": true,
                "enum": [
                  "credit",
                  "debit",
                  "prepaid"
                ]
              },
              "bin": {
                "type": "string",
                "description": "Bank identification number (first 6-8 digits).",
                "readOnly": true
              },
              "fingerprint": {
                "type": "string",
                "description": "Unique card fingerprint for cross-channel and cross-PSP card identification. Carries the Payment Account Reference (PAR) where the PSP provides it.",
                "readOnly": true
              },
              "acquirerName": {
                "type": "string",
                "description": "Name of the acquiring bank.",
                "readOnly": true
              },
              "issuerName": {
                "type": "string",
                "description": "Name of the card issuing bank.",
                "readOnly": true
              },
              "issuerCode": {
                "type": "string",
                "description": "Code of the card issuing bank.",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "The last 4 digits of the CC (with a prefix of \"****\") or the name of the corporate account or the name of the subscription plan or \"Balance\"",
                "readOnly": true
              },
              "default": {
                "type": "boolean"
              },
              "expireYear": {
                "type": "number",
                "example": 2028,
                "readOnly": true,
                "nullable": true
              },
              "expireMonth": {
                "type": "number",
                "example": 5,
                "readOnly": true,
                "nullable": true
              },
              "registrationTransactionId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the transaction that was used to tokenize this payment method. Absent when the payment method was registered before this feature, or when the payment method was not registered through a tokenization transaction (e.g., bank transfers, manually added payment methods)."
              },
              "token": {
                "type": "string",
                "readOnly": true,
                "description": "The payment processor's stored reference for this payment method."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "addedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true,
                "nullable": true
              },
              "removedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true,
                "nullable": true
              }
            },
            "required": [
              "id",
              "type",
              "name",
              "userId",
              "default"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "enum": [
              "Maximum allowed payment methods reached",
              "Payment processor not installed",
              "The given data was invalid.",
              "Invalid Operation",
              "Please verify your email address before adding a payment method.",
              "Please verify your phone number before adding a payment method.",
              "Please complete your profile before adding a payment method."
            ]
          },
          "errors": {
            "type": "object",
            "nullable": true
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "paymentMethodRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "Please note that the ID of the payment processor is actually a STRING. Please expect records in the format of `corporate:1234` or `subscription_installment:1235` - those will be of type `corporate billing` or `subscription` and when used to start a session will actually bill that session to a corporate account or subscription, that the customer is a member of! Please also note that a value of `NULL` indicates `Balance`",
                "nullable": true,
                "readOnly": true
              },
              "userId": {
                "type": "integer",
                "nullable": false,
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "tokenized",
                  "corporate",
                  "balance",
                  "subscription",
                  "wallet",
                  "bank_transfer",
                  null
                ],
                "nullable": true,
                "readOnly": true
              },
              "tokenizedType": {
                "type": "string",
                "readOnly": true,
                "enum": [
                  "card",
                  "bank_transfer",
                  "wallet"
                ]
              },
              "bankTransferType": {
                "type": "string",
                "readOnly": true,
                "enum": [
                  "sepa",
                  "pse"
                ]
              },
              "walletType": {
                "type": "string",
                "readOnly": true,
                "enum": [
                  "applepay",
                  "googlepay",
                  "twint",
                  "bancontact",
                  "other"
                ]
              },
              "issuer": {
                "deprecated": true,
                "description": "**This property is deprecated. Use `cardNetwork` instead.**\n\nunknown type means - a payment processor of other then the listed types\n",
                "readOnly": true,
                "type": "string",
                "enum": [
                  "visa",
                  "mastercard",
                  "paypal",
                  "maestro",
                  "amex",
                  "bancontact",
                  "cartes_bancaires",
                  "diners_club",
                  "discover",
                  "interac",
                  "jcb",
                  "mada",
                  "visa_electron",
                  "unknown"
                ],
                "x-enumDescriptions": {
                  "bancontact": "Bancontact",
                  "cartes_bancaires": "Cartes Bancaires",
                  "diners_club": "Diners Club",
                  "discover": "Discover",
                  "interac": "Interac",
                  "jcb": "JCB",
                  "mada": "MADA",
                  "visa_electron": "Visa Electron"
                },
                "nullable": true
              },
              "cardNetwork": {
                "type": "string",
                "description": "Card network. Replaces the deprecated `issuer`.",
                "readOnly": true,
                "enum": [
                  "visa",
                  "mastercard",
                  "paypal",
                  "maestro",
                  "amex",
                  "bancontact",
                  "cartes_bancaires",
                  "diners_club",
                  "discover",
                  "interac",
                  "jcb",
                  "mada",
                  "visa_electron",
                  "unknown"
                ],
                "x-enumDescriptions": {
                  "bancontact": "Bancontact",
                  "cartes_bancaires": "Cartes Bancaires",
                  "diners_club": "Diners Club",
                  "discover": "Discover",
                  "interac": "Interac",
                  "jcb": "JCB",
                  "mada": "MADA",
                  "visa_electron": "Visa Electron"
                }
              },
              "cardType": {
                "type": "string",
                "description": "Card category.\n\nAllowed values:\n- `credit` - Credit card.\n- `debit` - Debit card.\n- `prepaid` - Prepaid card.\n",
                "readOnly": true,
                "enum": [
                  "credit",
                  "debit",
                  "prepaid"
                ]
              },
              "bin": {
                "type": "string",
                "description": "Bank identification number (first 6-8 digits).",
                "readOnly": true
              },
              "fingerprint": {
                "type": "string",
                "description": "Unique card fingerprint for cross-channel and cross-PSP card identification. Carries the Payment Account Reference (PAR) where the PSP provides it.",
                "readOnly": true
              },
              "acquirerName": {
                "type": "string",
                "description": "Name of the acquiring bank.",
                "readOnly": true
              },
              "issuerName": {
                "type": "string",
                "description": "Name of the card issuing bank.",
                "readOnly": true
              },
              "issuerCode": {
                "type": "string",
                "description": "Code of the card issuing bank.",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "The last 4 digits of the CC (with a prefix of \"****\") or the name of the corporate account or the name of the subscription plan or \"Balance\"",
                "readOnly": true
              },
              "default": {
                "type": "boolean"
              },
              "expireYear": {
                "type": "number",
                "example": 2028,
                "readOnly": true,
                "nullable": true
              },
              "expireMonth": {
                "type": "number",
                "example": 5,
                "readOnly": true,
                "nullable": true
              },
              "registrationTransactionId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the transaction that was used to tokenize this payment method. Absent when the payment method was registered before this feature, or when the payment method was not registered through a tokenization transaction (e.g., bank transfers, manually added payment methods)."
              },
              "token": {
                "type": "string",
                "readOnly": true,
                "description": "The payment processor's stored reference for this payment method."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "addedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true,
                "nullable": true
              },
              "removedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true,
                "nullable": true
              }
            },
            "required": [
              "id",
              "type",
              "name",
              "userId",
              "default"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "paymentMethodDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "paymentMethodUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "Please note that the ID of the payment processor is actually a STRING. Please expect records in the format of `corporate:1234` or `subscription_installment:1235` - those will be of type `corporate billing` or `subscription` and when used to start a session will actually bill that session to a corporate account or subscription, that the customer is a member of! Please also note that a value of `NULL` indicates `Balance`",
                "nullable": true,
                "readOnly": true
              },
              "userId": {
                "type": "integer",
                "nullable": false,
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "tokenized",
                  "corporate",
                  "balance",
                  "subscription",
                  "wallet",
                  "bank_transfer",
                  null
                ],
                "nullable": true,
                "readOnly": true
              },
              "tokenizedType": {
                "type": "string",
                "readOnly": true,
                "enum": [
                  "card",
                  "bank_transfer",
                  "wallet"
                ]
              },
              "bankTransferType": {
                "type": "string",
                "readOnly": true,
                "enum": [
                  "sepa",
                  "pse"
                ]
              },
              "walletType": {
                "type": "string",
                "readOnly": true,
                "enum": [
                  "applepay",
                  "googlepay",
                  "twint",
                  "bancontact",
                  "other"
                ]
              },
              "issuer": {
                "deprecated": true,
                "description": "**This property is deprecated. Use `cardNetwork` instead.**\n\nunknown type means - a payment processor of other then the listed types\n",
                "readOnly": true,
                "type": "string",
                "enum": [
                  "visa",
                  "mastercard",
                  "paypal",
                  "maestro",
                  "amex",
                  "bancontact",
                  "cartes_bancaires",
                  "diners_club",
                  "discover",
                  "interac",
                  "jcb",
                  "mada",
                  "visa_electron",
                  "unknown"
                ],
                "x-enumDescriptions": {
                  "bancontact": "Bancontact",
                  "cartes_bancaires": "Cartes Bancaires",
                  "diners_club": "Diners Club",
                  "discover": "Discover",
                  "interac": "Interac",
                  "jcb": "JCB",
                  "mada": "MADA",
                  "visa_electron": "Visa Electron"
                },
                "nullable": true
              },
              "cardNetwork": {
                "type": "string",
                "description": "Card network. Replaces the deprecated `issuer`.",
                "readOnly": true,
                "enum": [
                  "visa",
                  "mastercard",
                  "paypal",
                  "maestro",
                  "amex",
                  "bancontact",
                  "cartes_bancaires",
                  "diners_club",
                  "discover",
                  "interac",
                  "jcb",
                  "mada",
                  "visa_electron",
                  "unknown"
                ],
                "x-enumDescriptions": {
                  "bancontact": "Bancontact",
                  "cartes_bancaires": "Cartes Bancaires",
                  "diners_club": "Diners Club",
                  "discover": "Discover",
                  "interac": "Interac",
                  "jcb": "JCB",
                  "mada": "MADA",
                  "visa_electron": "Visa Electron"
                }
              },
              "cardType": {
                "type": "string",
                "description": "Card category.\n\nAllowed values:\n- `credit` - Credit card.\n- `debit` - Debit card.\n- `prepaid` - Prepaid card.\n",
                "readOnly": true,
                "enum": [
                  "credit",
                  "debit",
                  "prepaid"
                ]
              },
              "bin": {
                "type": "string",
                "description": "Bank identification number (first 6-8 digits).",
                "readOnly": true
              },
              "fingerprint": {
                "type": "string",
                "description": "Unique card fingerprint for cross-channel and cross-PSP card identification. Carries the Payment Account Reference (PAR) where the PSP provides it.",
                "readOnly": true
              },
              "acquirerName": {
                "type": "string",
                "description": "Name of the acquiring bank.",
                "readOnly": true
              },
              "issuerName": {
                "type": "string",
                "description": "Name of the card issuing bank.",
                "readOnly": true
              },
              "issuerCode": {
                "type": "string",
                "description": "Code of the card issuing bank.",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "The last 4 digits of the CC (with a prefix of \"****\") or the name of the corporate account or the name of the subscription plan or \"Balance\"",
                "readOnly": true
              },
              "default": {
                "type": "boolean"
              },
              "expireYear": {
                "type": "number",
                "example": 2028,
                "readOnly": true,
                "nullable": true
              },
              "expireMonth": {
                "type": "number",
                "example": 5,
                "readOnly": true,
                "nullable": true
              },
              "registrationTransactionId": {
                "type": "integer",
                "readOnly": true,
                "description": "The ID of the transaction that was used to tokenize this payment method. Absent when the payment method was registered before this feature, or when the payment method was not registered through a tokenization transaction (e.g., bank transfers, manually added payment methods)."
              },
              "token": {
                "type": "string",
                "readOnly": true,
                "description": "The payment processor's stored reference for this payment method."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "addedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true,
                "nullable": true
              },
              "removedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true,
                "nullable": true
              }
            },
            "required": [
              "id",
              "type",
              "name",
              "userId",
              "default"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subscriptionBillingPeriodsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Subscription billing period",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The billing period ID"
                },
                "subscriptionPlanId": {
                  "type": "integer",
                  "description": "The ID of the subscription plan"
                },
                "subscriptionId": {
                  "type": "integer",
                  "description": "The ID of the subscription"
                },
                "startedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The start date of the billing period (ISO 8601 formatted)"
                },
                "endedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The end date of the billing period (ISO 8601 formatted)"
                },
                "totalAmount": {
                  "description": "Total amount (base fee + charger fees + session charges)",
                  "type": "object",
                  "properties": {
                    "withTax": {
                      "type": "number"
                    },
                    "withoutTax": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "withTax"
                  ]
                },
                "baseFee": {
                  "description": "Subscription base fee amount",
                  "type": "object",
                  "properties": {
                    "withTax": {
                      "type": "number"
                    },
                    "withoutTax": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "withTax"
                  ]
                },
                "chargePointFees": {
                  "description": "Per-charge-point fees amount",
                  "type": "object",
                  "properties": {
                    "withTax": {
                      "type": "number"
                    },
                    "withoutTax": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "withTax"
                  ]
                },
                "sessionFees": {
                  "description": "Sum of all charging session costs during this billing period",
                  "type": "object",
                  "properties": {
                    "withTax": {
                      "type": "number"
                    },
                    "withoutTax": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "withTax"
                  ]
                },
                "currency": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 3,
                  "description": "The ISO 4217 3-letter code of the currency"
                },
                "firstPaymentFailureAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "First payment failure date (ISO 8601 formatted). Cleared when a payment retry succeeds."
                },
                "latestPaymentFailureAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "Latest payment failure date (ISO 8601 formatted). Cleared when a payment retry succeeds."
                },
                "latestPaymentFailureReason": {
                  "type": "string",
                  "description": "Latest payment failure reason"
                },
                "obligationsTransferredAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "When obligations were transferred (ISO 8601 formatted)"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "subscriptionPlanId",
                "subscriptionId",
                "startedAt",
                "endedAt",
                "totalAmount",
                "baseFee",
                "currency",
                "createdAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "405": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "subscriptionBillingPeriodRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Subscription billing period",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The billing period ID"
              },
              "subscriptionPlanId": {
                "type": "integer",
                "description": "The ID of the subscription plan"
              },
              "subscriptionId": {
                "type": "integer",
                "description": "The ID of the subscription"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "description": "The start date of the billing period (ISO 8601 formatted)"
              },
              "endedAt": {
                "type": "string",
                "format": "date-time",
                "description": "The end date of the billing period (ISO 8601 formatted)"
              },
              "totalAmount": {
                "description": "Total amount (base fee + charger fees + session charges)",
                "type": "object",
                "properties": {
                  "withTax": {
                    "type": "number"
                  },
                  "withoutTax": {
                    "type": "number"
                  }
                },
                "required": [
                  "withTax"
                ]
              },
              "baseFee": {
                "description": "Subscription base fee amount",
                "type": "object",
                "properties": {
                  "withTax": {
                    "type": "number"
                  },
                  "withoutTax": {
                    "type": "number"
                  }
                },
                "required": [
                  "withTax"
                ]
              },
              "chargePointFees": {
                "description": "Per-charge-point fees amount",
                "type": "object",
                "properties": {
                  "withTax": {
                    "type": "number"
                  },
                  "withoutTax": {
                    "type": "number"
                  }
                },
                "required": [
                  "withTax"
                ]
              },
              "sessionFees": {
                "description": "Sum of all charging session costs during this billing period",
                "type": "object",
                "properties": {
                  "withTax": {
                    "type": "number"
                  },
                  "withoutTax": {
                    "type": "number"
                  }
                },
                "required": [
                  "withTax"
                ]
              },
              "currency": {
                "type": "string",
                "minLength": 3,
                "maxLength": 3,
                "description": "The ISO 4217 3-letter code of the currency"
              },
              "firstPaymentFailureAt": {
                "type": "string",
                "format": "date-time",
                "description": "First payment failure date (ISO 8601 formatted). Cleared when a payment retry succeeds."
              },
              "latestPaymentFailureAt": {
                "type": "string",
                "format": "date-time",
                "description": "Latest payment failure date (ISO 8601 formatted). Cleared when a payment retry succeeds."
              },
              "latestPaymentFailureReason": {
                "type": "string",
                "description": "Latest payment failure reason"
              },
              "obligationsTransferredAt": {
                "type": "string",
                "format": "date-time",
                "description": "When obligations were transferred (ISO 8601 formatted)"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "subscriptionPlanId",
              "subscriptionId",
              "startedAt",
              "endedAt",
              "totalAmount",
              "baseFee",
              "currency",
              "createdAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "405": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "usersListingV1_1": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "operatorId"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "operatorId": {
                  "type": "integer",
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "email": {
                  "type": "string",
                  "format": "email"
                },
                "emailVerified": {
                  "type": "string",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true,
                  "nullable": true,
                  "example": "2022-11-12 12:00:00"
                },
                "requirePasswordReset": {
                  "type": "boolean",
                  "description": "Sets a requirement for the user to set a new password when they next open the app. After a new password is set, this option resets automatically."
                },
                "firstName": {
                  "type": "string",
                  "nullable": true
                },
                "middleName": {
                  "type": "string",
                  "nullable": true
                },
                "lastName": {
                  "type": "string",
                  "nullable": true
                },
                "phone": {
                  "type": "string",
                  "nullable": true
                },
                "country": {
                  "type": "string",
                  "nullable": true
                },
                "state": {
                  "type": "string",
                  "nullable": true
                },
                "city": {
                  "type": "string",
                  "nullable": true
                },
                "postCode": {
                  "type": "string",
                  "nullable": true
                },
                "address": {
                  "type": "string",
                  "nullable": true
                },
                "vehicleNo": {
                  "type": "string",
                  "nullable": true
                },
                "personalId": {
                  "type": "string"
                },
                "companyName": {
                  "type": "string",
                  "nullable": true
                },
                "locale": {
                  "type": "string",
                  "nullable": true,
                  "example": "en-GB"
                },
                "balance": {
                  "type": "number",
                  "multipleOf": 0.001,
                  "description": "The current amount in the balance of the user (in the base currency). Would not be returned in the response if the user is related to a Partner without \"addUserBalance\" permission"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "enabled",
                    "disabled"
                  ],
                  "description": "* `enabled` Enabled - the user is allowed to use the system\n* `disabled` Disabled - the user is NOT allowed to use the system\n"
                },
                "userGroupIds": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  }
                },
                "externalId": {
                  "type": "string",
                  "nullable": true,
                  "readOnly": true,
                  "description": "Third party identifier of the user"
                },
                "subscriptionId": {
                  "type": "integer",
                  "nullable": true,
                  "readOnly": true,
                  "description": "user subscription id"
                },
                "options": {
                  "type": "object",
                  "properties": {
                    "sessionsAllowed": {
                      "type": "string",
                      "description": "Determine the number of sessions a user could start - single or multiple simultaneous sessions, or whether the user could start simultaneous sessions with several Id Tags.",
                      "enum": [
                        "single_session",
                        "multiple_simultaneous_sessions_per_idtag",
                        "simultaneous_use_of_idtags",
                        "multiple_simultaneous_sessions_remotely_and_idtags"
                      ]
                    }
                  }
                },
                "password": {
                  "type": "string",
                  "readOnly": true,
                  "nullable": true,
                  "description": "Returns the hashed password. This property is optional and can be enabled by request.\n"
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                },
                "lastActivityAt": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true,
                  "nullable": true,
                  "description": "When the user was last active"
                },
                "lastActivitySource": {
                  "type": "string",
                  "readOnly": true,
                  "nullable": true,
                  "enum": [
                    "device_activity",
                    "device_logout",
                    "id_tag_authorization",
                    "transaction",
                    "registration"
                  ],
                  "description": "What triggered the last activity update"
                },
                "createdBy": {
                  "type": "string",
                  "readOnly": true,
                  "description": "The return values are `admin:` , `partner:` - the value after the colon is the respective ID of the admin account or the partner. `token:` - the value after the colon is the admin token. `mobile_api` - means that the User registered themselves through the mobile app."
                },
                "receiveNewsAndPromotions": {
                  "type": "boolean",
                  "description": "Shows if the user has opted into receiving news and promotions."
                },
                "skipPreAuthorization": {
                  "type": "boolean",
                  "description": "When enabled, the user can start charging sessions without a pre-authorization hold on their payment method."
                },
                "skipUnpaidSessionCheck": {
                  "type": "boolean",
                  "description": "When enabled, this user can start new sessions even if they have unpaid sessions or unpaid post-paid subscription fees."
                },
                "partnerInvites": {
                  "type": "array",
                  "description": "It's a part of the response only if request is called with `include.partnerInvites` query parameter.",
                  "readOnly": true,
                  "nullable": true,
                  "items": {
                    "type": "object",
                    "description": "Partner Invite",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "readOnly": true
                      },
                      "partnerId": {
                        "type": "integer"
                      },
                      "sendViaEmail": {
                        "type": "boolean"
                      },
                      "email": {
                        "type": "string",
                        "description": "Email used to identify and associate the invitee. May be null when the invite was created without an email.",
                        "format": "email",
                        "nullable": true
                      },
                      "language": {
                        "type": "string",
                        "description": "The language of the e-mail sent to the invitee. If none selected, the default end-users language will be used."
                      },
                      "acceptUrl": {
                        "type": "string",
                        "format": "url",
                        "readOnly": true,
                        "nullable": true
                      },
                      "options": {
                        "type": "object",
                        "properties": {
                          "allowCorporateAccountBilling": {
                            "type": "boolean",
                            "default": false
                          },
                          "limitCorporateAccountBillingToPartnerChargePoints": {
                            "type": "boolean",
                            "description": "Whether the assigned corporate billing policy restricts corporate billing to the partner's charge points.",
                            "default": false
                          },
                          "allowAccessToPrivateChargePoints": {
                            "type": "boolean",
                            "default": false
                          },
                          "corporateBillingLimit": {
                            "type": "number",
                            "format": "decimal",
                            "nullable": true,
                            "minimum": 0,
                            "description": "The individual corporate billing limit amount from the assigned corporate billing policy. Must be a positive decimal when set. When `null`, no individual limit is applied. Only applicable when `allowCorporateAccountBilling` is `true`."
                          }
                        }
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "pending",
                          "sent",
                          "accepted"
                        ],
                        "readOnly": true
                      },
                      "createdAt": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                      },
                      "acceptedAt": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                      },
                      "userId": {
                        "type": "integer",
                        "readOnly": true,
                        "nullable": true
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      }
                    },
                    "required": [
                      "id",
                      "partnerId",
                      "status",
                      "createdAt"
                    ]
                  }
                },
                "bankDetails": {
                  "type": "object",
                  "properties": {
                    "bankIban": {
                      "type": "string",
                      "nullable": true,
                      "description": "IBAN of the bank account."
                    },
                    "bankCode": {
                      "type": "string",
                      "nullable": true,
                      "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                    },
                    "bankAccountNumber": {
                      "type": "string",
                      "nullable": true,
                      "description": "Bank account number."
                    },
                    "bankAccountType": {
                      "type": "string",
                      "nullable": true,
                      "description": "Type of the bank account."
                    },
                    "bankBic": {
                      "type": "string",
                      "nullable": true,
                      "description": "BIC/SWIFT code of the bank."
                    }
                  }
                },
                "externalAppData": {
                  "example": {
                    "externalCustomerId": "uuid"
                  },
                  "description": "The externalAppData field is an object designed to hold additional data related to external integrations.\nThis object can contain the following keys, which are currently supported:\n\n- `externalCustomerId`: A string representing the customer ID of the user in an external payment provider integration. This ID is used to link the user's account within the system to their corresponding account in the external payment provider.\n\nIf no information is available, the externalAppData object will be null. It's a part of the response only if request is called with `include.externalAppData` query parameter.\n",
                  "type": "object",
                  "nullable": true,
                  "additionalProperties": true
                },
                "invoiceDetails": {
                  "description": "The user's invoice details for invoice generation. The response structure varies depending on the operator's invoice integration type.\nIt's a part of the response only if request is called with `include[]=invoiceDetails` query parameter.\nReturns `null` if the user has no invoice details or the operator has no invoice integration configured.\n",
                  "readOnly": true,
                  "type": "object",
                  "nullable": true,
                  "anyOf": [
                    {
                      "type": "object",
                      "title": "Built-in invoicing",
                      "description": "Built-in invoice processor",
                      "properties": {
                        "requireInvoice": {
                          "type": "boolean",
                          "default": false,
                          "description": "Whether invoice is required for this user. Note: If the operator has 'Always collect Invoice Details' enabled in their invoice integration settings, this field will always be true regardless of the request payload value."
                        },
                        "requireInvoiceLastUpdatedAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "ISO 8601 formatted date. The date is automatically updated when the value of the \"requireInvoice\" field changes.",
                          "readOnly": true,
                          "nullable": true
                        },
                        "lastUpdatedAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "ISO 8601 formatted date",
                          "readOnly": true
                        },
                        "requireInvoiceEnforcedBy": {
                          "type": "string",
                          "enum": [
                            "operator_setting",
                            "user_request"
                          ],
                          "description": "Indicates the source that determined the final requireInvoice value. Only present when operator setting overrides user request.",
                          "nullable": true
                        },
                        "originalRequestValue": {
                          "type": "boolean",
                          "description": "The originally requested requireInvoice value when operator override occurred. Only present when requireInvoiceEnforcedBy is 'operator_setting'.",
                          "nullable": true
                        },
                        "invoiceType": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "nullable": true
                        },
                        "individualName": {
                          "type": "string",
                          "nullable": true
                        },
                        "individualPersonalId": {
                          "type": "string",
                          "nullable": true
                        },
                        "individualTaxId": {
                          "type": "string",
                          "nullable": true
                        },
                        "companyName": {
                          "type": "string",
                          "nullable": true
                        },
                        "companyRegNo": {
                          "type": "string",
                          "nullable": true
                        },
                        "companyTaxId": {
                          "type": "string",
                          "nullable": true
                        },
                        "companyTaxAdministrationOfficeName": {
                          "type": "string",
                          "nullable": true
                        },
                        "country": {
                          "type": "string",
                          "nullable": true,
                          "enum": [
                            "AF",
                            "AX",
                            "AL",
                            "DZ",
                            "AS",
                            "AD",
                            "AO",
                            "AI",
                            "AQ",
                            "AG",
                            "AR",
                            "AM",
                            "AW",
                            "AU",
                            "AT",
                            "AZ",
                            "BS",
                            "BH",
                            "BD",
                            "BB",
                            "BY",
                            "BE",
                            "BZ",
                            "BJ",
                            "BM",
                            "BT",
                            "BO",
                            "BQ",
                            "BA",
                            "BW",
                            "BV",
                            "BR",
                            "IO",
                            "BN",
                            "BG",
                            "BF",
                            "BI",
                            "KH",
                            "CM",
                            "CA",
                            "CV",
                            "KY",
                            "CF",
                            "TD",
                            "CL",
                            "CN",
                            "CX",
                            "CC",
                            "CO",
                            "KM",
                            "CG",
                            "CD",
                            "CK",
                            "CR",
                            "CI",
                            "HR",
                            "CU",
                            "CW",
                            "CY",
                            "CZ",
                            "DK",
                            "DJ",
                            "DM",
                            "DO",
                            "EC",
                            "EG",
                            "SV",
                            "GQ",
                            "ER",
                            "EE",
                            "ET",
                            "FK",
                            "FO",
                            "FJ",
                            "FI",
                            "FR",
                            "GF",
                            "PF",
                            "TF",
                            "GA",
                            "GM",
                            "GE",
                            "DE",
                            "GH",
                            "GI",
                            "GR",
                            "GL",
                            "GD",
                            "GP",
                            "GU",
                            "GT",
                            "GG",
                            "GN",
                            "GW",
                            "GY",
                            "HT",
                            "HM",
                            "VA",
                            "HN",
                            "HK",
                            "HU",
                            "IS",
                            "IN",
                            "ID",
                            "IR",
                            "IQ",
                            "IE",
                            "IM",
                            "IL",
                            "IT",
                            "JM",
                            "JP",
                            "JE",
                            "JO",
                            "KZ",
                            "KE",
                            "KI",
                            "KP",
                            "KR",
                            "XK",
                            "KW",
                            "KG",
                            "LA",
                            "LV",
                            "LB",
                            "LS",
                            "LR",
                            "LY",
                            "LI",
                            "LT",
                            "LU",
                            "MO",
                            "MK",
                            "MG",
                            "MW",
                            "MY",
                            "MV",
                            "ML",
                            "MT",
                            "MH",
                            "MQ",
                            "MR",
                            "MU",
                            "YT",
                            "MX",
                            "FM",
                            "MD",
                            "MC",
                            "MN",
                            "ME",
                            "MS",
                            "MA",
                            "MZ",
                            "MM",
                            "NA",
                            "NR",
                            "NP",
                            "NL",
                            "NC",
                            "NZ",
                            "NI",
                            "NE",
                            "NG",
                            "NU",
                            "NF",
                            "MP",
                            "NO",
                            "OM",
                            "PK",
                            "PW",
                            "PS",
                            "PA",
                            "PG",
                            "PY",
                            "PE",
                            "PH",
                            "PN",
                            "PL",
                            "PT",
                            "PR",
                            "QA",
                            "RE",
                            "RO",
                            "RU",
                            "RW",
                            "BL",
                            "SH",
                            "KN",
                            "LC",
                            "MF",
                            "PM",
                            "VC",
                            "WS",
                            "SM",
                            "ST",
                            "SA",
                            "SN",
                            "RS",
                            "SC",
                            "SL",
                            "SG",
                            "SX",
                            "SK",
                            "SI",
                            "SB",
                            "SO",
                            "ZA",
                            "GS",
                            "SS",
                            "ES",
                            "LK",
                            "SD",
                            "SR",
                            "SJ",
                            "SZ",
                            "SE",
                            "CH",
                            "SY",
                            "TW",
                            "TJ",
                            "TZ",
                            "TH",
                            "TL",
                            "TG",
                            "TK",
                            "TO",
                            "TT",
                            "TN",
                            "TR",
                            "TM",
                            "TC",
                            "TV",
                            "UG",
                            "UA",
                            "AE",
                            "GB",
                            "US",
                            "UM",
                            "UY",
                            "UZ",
                            "VU",
                            "VE",
                            "VN",
                            "VG",
                            "VI",
                            "WF",
                            "EH",
                            "YE",
                            "ZM",
                            "ZW"
                          ]
                        },
                        "region": {
                          "type": "string",
                          "nullable": true,
                          "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
                        },
                        "state": {
                          "description": "When the selected country is one of US, AU, CA, UM or RO",
                          "anyOf": [
                            {
                              "title": "US State",
                              "description": "When the country is US.",
                              "type": "string",
                              "enum": [
                                "AL",
                                "AK",
                                "AS",
                                "AZ",
                                "AR",
                                "CA",
                                "CO",
                                "CT",
                                "DE",
                                "DC",
                                "FM",
                                "FL",
                                "GA",
                                "GU",
                                "HI",
                                "ID",
                                "IL",
                                "IN",
                                "IA",
                                "KS",
                                "KY",
                                "LA",
                                "ME",
                                "MH",
                                "MD",
                                "MA",
                                "MI",
                                "MN",
                                "MS",
                                "MO",
                                "MT",
                                "NE",
                                "NV",
                                "NH",
                                "NJ",
                                "NM",
                                "NY",
                                "NC",
                                "ND",
                                "MP",
                                "OH",
                                "OK",
                                "OR",
                                "PW",
                                "PA",
                                "PR",
                                "RI",
                                "SC",
                                "SD",
                                "TN",
                                "TX",
                                "UT",
                                "VT",
                                "VI",
                                "VA",
                                "WA",
                                "WV",
                                "WI",
                                "WY"
                              ]
                            },
                            {
                              "title": "Australian State",
                              "description": "When the country is AU.",
                              "type": "string",
                              "enum": [
                                "NSW",
                                "VIC",
                                "QLD",
                                "WA",
                                "SA",
                                "TAS",
                                "ACT",
                                "NT",
                                "JBT",
                                "CX",
                                "NF",
                                "CC",
                                "AQ",
                                "CSI",
                                "ACI",
                                "HM"
                              ]
                            },
                            {
                              "title": "Canadian Province",
                              "description": "When the country is CA.",
                              "type": "string",
                              "enum": [
                                "AB",
                                "BC",
                                "MB",
                                "NB",
                                "NL",
                                "NT",
                                "NS",
                                "NU",
                                "ON",
                                "PE",
                                "QC",
                                "SK",
                                "YT"
                              ]
                            },
                            {
                              "title": "US Minor Outlying Islands Territory",
                              "description": "When the country is UM.",
                              "type": "string",
                              "enum": [
                                "81",
                                "84",
                                "85",
                                "67",
                                "89",
                                "71",
                                "76",
                                "95",
                                "79"
                              ]
                            },
                            {
                              "title": "Romanian County",
                              "description": "When the country is RO.",
                              "type": "string",
                              "enum": [
                                "AB",
                                "AR",
                                "AG",
                                "BC",
                                "BH",
                                "BN",
                                "BT",
                                "BV",
                                "BR",
                                "B",
                                "BZ",
                                "CL",
                                "CS",
                                "CT",
                                "CV",
                                "DB",
                                "DJ",
                                "GL",
                                "GR",
                                "GJ",
                                "HR",
                                "HD",
                                "IL",
                                "IS",
                                "IF",
                                "MM",
                                "MH",
                                "MS",
                                "NT",
                                "OT",
                                "PH",
                                "SM",
                                "SJ",
                                "SB",
                                "SV",
                                "TR",
                                "TM",
                                "TL",
                                "VS",
                                "VL",
                                "VN"
                              ]
                            }
                          ]
                        },
                        "city": {
                          "type": "string",
                          "nullable": true
                        },
                        "postCode": {
                          "type": "string",
                          "nullable": true
                        },
                        "address": {
                          "type": "string",
                          "nullable": true
                        }
                      },
                      "required": [
                        "requireInvoice",
                        "invoiceType"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "title": "Cardcom Invoice Manager",
                      "description": "Invoice processor - Cardcom",
                      "properties": {
                        "invoiceRequired": {
                          "type": "boolean",
                          "default": false
                        },
                        "lastUpdatedAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "ISO 8601 formatted date",
                          "readOnly": true
                        },
                        "clientType": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "nullable": true
                        },
                        "individual": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "nullable": true
                            },
                            "email": {
                              "type": "string",
                              "nullable": true
                            },
                            "mobilePhoneNumber": {
                              "type": "string",
                              "nullable": true
                            },
                            "taxId": {
                              "type": "string",
                              "nullable": true
                            },
                            "country": {
                              "type": "string",
                              "nullable": true,
                              "enum": [
                                "AF",
                                "AX",
                                "AL",
                                "DZ",
                                "AS",
                                "AD",
                                "AO",
                                "AI",
                                "AQ",
                                "AG",
                                "AR",
                                "AM",
                                "AW",
                                "AU",
                                "AT",
                                "AZ",
                                "BS",
                                "BH",
                                "BD",
                                "BB",
                                "BY",
                                "BE",
                                "BZ",
                                "BJ",
                                "BM",
                                "BT",
                                "BO",
                                "BQ",
                                "BA",
                                "BW",
                                "BV",
                                "BR",
                                "IO",
                                "BN",
                                "BG",
                                "BF",
                                "BI",
                                "KH",
                                "CM",
                                "CA",
                                "CV",
                                "KY",
                                "CF",
                                "TD",
                                "CL",
                                "CN",
                                "CX",
                                "CC",
                                "CO",
                                "KM",
                                "CG",
                                "CD",
                                "CK",
                                "CR",
                                "CI",
                                "HR",
                                "CU",
                                "CW",
                                "CY",
                                "CZ",
                                "DK",
                                "DJ",
                                "DM",
                                "DO",
                                "EC",
                                "EG",
                                "SV",
                                "GQ",
                                "ER",
                                "EE",
                                "ET",
                                "FK",
                                "FO",
                                "FJ",
                                "FI",
                                "FR",
                                "GF",
                                "PF",
                                "TF",
                                "GA",
                                "GM",
                                "GE",
                                "DE",
                                "GH",
                                "GI",
                                "GR",
                                "GL",
                                "GD",
                                "GP",
                                "GU",
                                "GT",
                                "GG",
                                "GN",
                                "GW",
                                "GY",
                                "HT",
                                "HM",
                                "VA",
                                "HN",
                                "HK",
                                "HU",
                                "IS",
                                "IN",
                                "ID",
                                "IR",
                                "IQ",
                                "IE",
                                "IM",
                                "IL",
                                "IT",
                                "JM",
                                "JP",
                                "JE",
                                "JO",
                                "KZ",
                                "KE",
                                "KI",
                                "KP",
                                "KR",
                                "XK",
                                "KW",
                                "KG",
                                "LA",
                                "LV",
                                "LB",
                                "LS",
                                "LR",
                                "LY",
                                "LI",
                                "LT",
                                "LU",
                                "MO",
                                "MK",
                                "MG",
                                "MW",
                                "MY",
                                "MV",
                                "ML",
                                "MT",
                                "MH",
                                "MQ",
                                "MR",
                                "MU",
                                "YT",
                                "MX",
                                "FM",
                                "MD",
                                "MC",
                                "MN",
                                "ME",
                                "MS",
                                "MA",
                                "MZ",
                                "MM",
                                "NA",
                                "NR",
                                "NP",
                                "NL",
                                "NC",
                                "NZ",
                                "NI",
                                "NE",
                                "NG",
                                "NU",
                                "NF",
                                "MP",
                                "NO",
                                "OM",
                                "PK",
                                "PW",
                                "PS",
                                "PA",
                                "PG",
                                "PY",
                                "PE",
                                "PH",
                                "PN",
                                "PL",
                                "PT",
                                "PR",
                                "QA",
                                "RE",
                                "RO",
                                "RU",
                                "RW",
                                "BL",
                                "SH",
                                "KN",
                                "LC",
                                "MF",
                                "PM",
                                "VC",
                                "WS",
                                "SM",
                                "ST",
                                "SA",
                                "SN",
                                "RS",
                                "SC",
                                "SL",
                                "SG",
                                "SX",
                                "SK",
                                "SI",
                                "SB",
                                "SO",
                                "ZA",
                                "GS",
                                "SS",
                                "ES",
                                "LK",
                                "SD",
                                "SR",
                                "SJ",
                                "SZ",
                                "SE",
                                "CH",
                                "SY",
                                "TW",
                                "TJ",
                                "TZ",
                                "TH",
                                "TL",
                                "TG",
                                "TK",
                                "TO",
                                "TT",
                                "TN",
                                "TR",
                                "TM",
                                "TC",
                                "TV",
                                "UG",
                                "UA",
                                "AE",
                                "GB",
                                "US",
                                "UM",
                                "UY",
                                "UZ",
                                "VU",
                                "VE",
                                "VN",
                                "VG",
                                "VI",
                                "WF",
                                "EH",
                                "YE",
                                "ZM",
                                "ZW"
                              ]
                            },
                            "city": {
                              "type": "string",
                              "nullable": true
                            },
                            "postcode": {
                              "type": "string",
                              "nullable": true
                            },
                            "address": {
                              "type": "string",
                              "nullable": true
                            }
                          }
                        },
                        "company": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "nullable": true
                            },
                            "email": {
                              "type": "string",
                              "nullable": true
                            },
                            "mobilePhoneNumber": {
                              "type": "string",
                              "nullable": true
                            },
                            "landlinePhoneNumber": {
                              "type": "string",
                              "nullable": true
                            },
                            "taxId": {
                              "type": "string",
                              "nullable": true
                            },
                            "country": {
                              "type": "string",
                              "nullable": true,
                              "enum": [
                                "AF",
                                "AX",
                                "AL",
                                "DZ",
                                "AS",
                                "AD",
                                "AO",
                                "AI",
                                "AQ",
                                "AG",
                                "AR",
                                "AM",
                                "AW",
                                "AU",
                                "AT",
                                "AZ",
                                "BS",
                                "BH",
                                "BD",
                                "BB",
                                "BY",
                                "BE",
                                "BZ",
                                "BJ",
                                "BM",
                                "BT",
                                "BO",
                                "BQ",
                                "BA",
                                "BW",
                                "BV",
                                "BR",
                                "IO",
                                "BN",
                                "BG",
                                "BF",
                                "BI",
                                "KH",
                                "CM",
                                "CA",
                                "CV",
                                "KY",
                                "CF",
                                "TD",
                                "CL",
                                "CN",
                                "CX",
                                "CC",
                                "CO",
                                "KM",
                                "CG",
                                "CD",
                                "CK",
                                "CR",
                                "CI",
                                "HR",
                                "CU",
                                "CW",
                                "CY",
                                "CZ",
                                "DK",
                                "DJ",
                                "DM",
                                "DO",
                                "EC",
                                "EG",
                                "SV",
                                "GQ",
                                "ER",
                                "EE",
                                "ET",
                                "FK",
                                "FO",
                                "FJ",
                                "FI",
                                "FR",
                                "GF",
                                "PF",
                                "TF",
                                "GA",
                                "GM",
                                "GE",
                                "DE",
                                "GH",
                                "GI",
                                "GR",
                                "GL",
                                "GD",
                                "GP",
                                "GU",
                                "GT",
                                "GG",
                                "GN",
                                "GW",
                                "GY",
                                "HT",
                                "HM",
                                "VA",
                                "HN",
                                "HK",
                                "HU",
                                "IS",
                                "IN",
                                "ID",
                                "IR",
                                "IQ",
                                "IE",
                                "IM",
                                "IL",
                                "IT",
                                "JM",
                                "JP",
                                "JE",
                                "JO",
                                "KZ",
                                "KE",
                                "KI",
                                "KP",
                                "KR",
                                "XK",
                                "KW",
                                "KG",
                                "LA",
                                "LV",
                                "LB",
                                "LS",
                                "LR",
                                "LY",
                                "LI",
                                "LT",
                                "LU",
                                "MO",
                                "MK",
                                "MG",
                                "MW",
                                "MY",
                                "MV",
                                "ML",
                                "MT",
                                "MH",
                                "MQ",
                                "MR",
                                "MU",
                                "YT",
                                "MX",
                                "FM",
                                "MD",
                                "MC",
                                "MN",
                                "ME",
                                "MS",
                                "MA",
                                "MZ",
                                "MM",
                                "NA",
                                "NR",
                                "NP",
                                "NL",
                                "NC",
                                "NZ",
                                "NI",
                                "NE",
                                "NG",
                                "NU",
                                "NF",
                                "MP",
                                "NO",
                                "OM",
                                "PK",
                                "PW",
                                "PS",
                                "PA",
                                "PG",
                                "PY",
                                "PE",
                                "PH",
                                "PN",
                                "PL",
                                "PT",
                                "PR",
                                "QA",
                                "RE",
                                "RO",
                                "RU",
                                "RW",
                                "BL",
                                "SH",
                                "KN",
                                "LC",
                                "MF",
                                "PM",
                                "VC",
                                "WS",
                                "SM",
                                "ST",
                                "SA",
                                "SN",
                                "RS",
                                "SC",
                                "SL",
                                "SG",
                                "SX",
                                "SK",
                                "SI",
                                "SB",
                                "SO",
                                "ZA",
                                "GS",
                                "SS",
                                "ES",
                                "LK",
                                "SD",
                                "SR",
                                "SJ",
                                "SZ",
                                "SE",
                                "CH",
                                "SY",
                                "TW",
                                "TJ",
                                "TZ",
                                "TH",
                                "TL",
                                "TG",
                                "TK",
                                "TO",
                                "TT",
                                "TN",
                                "TR",
                                "TM",
                                "TC",
                                "TV",
                                "UG",
                                "UA",
                                "AE",
                                "GB",
                                "US",
                                "UM",
                                "UY",
                                "UZ",
                                "VU",
                                "VE",
                                "VN",
                                "VG",
                                "VI",
                                "WF",
                                "EH",
                                "YE",
                                "ZM",
                                "ZW"
                              ]
                            },
                            "city": {
                              "type": "string",
                              "nullable": true
                            },
                            "postcode": {
                              "type": "string",
                              "nullable": true
                            },
                            "address": {
                              "type": "string",
                              "nullable": true
                            }
                          }
                        }
                      },
                      "required": [
                        "invoiceRequired",
                        "clientType",
                        "individual",
                        "company"
                      ]
                    },
                    {
                      "type": "object",
                      "title": "SoftOne Invoice Manager",
                      "description": "Invoice processor - SoftOne",
                      "properties": {
                        "lastUpdatedAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "ISO 8601 formatted date",
                          "readOnly": true
                        },
                        "firstName": {
                          "type": "string",
                          "nullable": true
                        },
                        "lastName": {
                          "type": "string",
                          "nullable": true
                        },
                        "email": {
                          "type": "string",
                          "nullable": true
                        },
                        "phone": {
                          "type": "string",
                          "nullable": true
                        },
                        "country": {
                          "type": "string",
                          "nullable": true,
                          "enum": [
                            "AF",
                            "AX",
                            "AL",
                            "DZ",
                            "AS",
                            "AD",
                            "AO",
                            "AI",
                            "AQ",
                            "AG",
                            "AR",
                            "AM",
                            "AW",
                            "AU",
                            "AT",
                            "AZ",
                            "BS",
                            "BH",
                            "BD",
                            "BB",
                            "BY",
                            "BE",
                            "BZ",
                            "BJ",
                            "BM",
                            "BT",
                            "BO",
                            "BQ",
                            "BA",
                            "BW",
                            "BV",
                            "BR",
                            "IO",
                            "BN",
                            "BG",
                            "BF",
                            "BI",
                            "KH",
                            "CM",
                            "CA",
                            "CV",
                            "KY",
                            "CF",
                            "TD",
                            "CL",
                            "CN",
                            "CX",
                            "CC",
                            "CO",
                            "KM",
                            "CG",
                            "CD",
                            "CK",
                            "CR",
                            "CI",
                            "HR",
                            "CU",
                            "CW",
                            "CY",
                            "CZ",
                            "DK",
                            "DJ",
                            "DM",
                            "DO",
                            "EC",
                            "EG",
                            "SV",
                            "GQ",
                            "ER",
                            "EE",
                            "ET",
                            "FK",
                            "FO",
                            "FJ",
                            "FI",
                            "FR",
                            "GF",
                            "PF",
                            "TF",
                            "GA",
                            "GM",
                            "GE",
                            "DE",
                            "GH",
                            "GI",
                            "GR",
                            "GL",
                            "GD",
                            "GP",
                            "GU",
                            "GT",
                            "GG",
                            "GN",
                            "GW",
                            "GY",
                            "HT",
                            "HM",
                            "VA",
                            "HN",
                            "HK",
                            "HU",
                            "IS",
                            "IN",
                            "ID",
                            "IR",
                            "IQ",
                            "IE",
                            "IM",
                            "IL",
                            "IT",
                            "JM",
                            "JP",
                            "JE",
                            "JO",
                            "KZ",
                            "KE",
                            "KI",
                            "KP",
                            "KR",
                            "XK",
                            "KW",
                            "KG",
                            "LA",
                            "LV",
                            "LB",
                            "LS",
                            "LR",
                            "LY",
                            "LI",
                            "LT",
                            "LU",
                            "MO",
                            "MK",
                            "MG",
                            "MW",
                            "MY",
                            "MV",
                            "ML",
                            "MT",
                            "MH",
                            "MQ",
                            "MR",
                            "MU",
                            "YT",
                            "MX",
                            "FM",
                            "MD",
                            "MC",
                            "MN",
                            "ME",
                            "MS",
                            "MA",
                            "MZ",
                            "MM",
                            "NA",
                            "NR",
                            "NP",
                            "NL",
                            "NC",
                            "NZ",
                            "NI",
                            "NE",
                            "NG",
                            "NU",
                            "NF",
                            "MP",
                            "NO",
                            "OM",
                            "PK",
                            "PW",
                            "PS",
                            "PA",
                            "PG",
                            "PY",
                            "PE",
                            "PH",
                            "PN",
                            "PL",
                            "PT",
                            "PR",
                            "QA",
                            "RE",
                            "RO",
                            "RU",
                            "RW",
                            "BL",
                            "SH",
                            "KN",
                            "LC",
                            "MF",
                            "PM",
                            "VC",
                            "WS",
                            "SM",
                            "ST",
                            "SA",
                            "SN",
                            "RS",
                            "SC",
                            "SL",
                            "SG",
                            "SX",
                            "SK",
                            "SI",
                            "SB",
                            "SO",
                            "ZA",
                            "GS",
                            "SS",
                            "ES",
                            "LK",
                            "SD",
                            "SR",
                            "SJ",
                            "SZ",
                            "SE",
                            "CH",
                            "SY",
                            "TW",
                            "TJ",
                            "TZ",
                            "TH",
                            "TL",
                            "TG",
                            "TK",
                            "TO",
                            "TT",
                            "TN",
                            "TR",
                            "TM",
                            "TC",
                            "TV",
                            "UG",
                            "UA",
                            "AE",
                            "GB",
                            "US",
                            "UM",
                            "UY",
                            "UZ",
                            "VU",
                            "VE",
                            "VN",
                            "VG",
                            "VI",
                            "WF",
                            "EH",
                            "YE",
                            "ZM",
                            "ZW"
                          ]
                        },
                        "city": {
                          "type": "string",
                          "nullable": true
                        },
                        "postcode": {
                          "type": "string",
                          "nullable": true
                        },
                        "address": {
                          "type": "string",
                          "nullable": true
                        }
                      }
                    },
                    {
                      "type": "object",
                      "title": "Ecpay Invoice Manager",
                      "description": "Invoice processor - Ecpay",
                      "properties": {
                        "lastUpdatedAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "ISO 8601 formatted date",
                          "readOnly": true
                        },
                        "invoiceType": {
                          "type": "string",
                          "enum": [
                            "EInvoice",
                            "Company",
                            "Donation"
                          ]
                        },
                        "carrierType": {
                          "type": "string",
                          "enum": [
                            "Mobile",
                            "Citizen",
                            "GreenWorld"
                          ],
                          "nullable": true
                        },
                        "loveCode": {
                          "type": "string",
                          "nullable": true
                        },
                        "mobileBarCode": {
                          "type": "string",
                          "nullable": true
                        },
                        "citizenId": {
                          "type": "string",
                          "nullable": true
                        },
                        "companyId": {
                          "type": "string",
                          "nullable": true
                        },
                        "name": {
                          "type": "string",
                          "nullable": true
                        },
                        "email": {
                          "type": "string",
                          "nullable": true
                        },
                        "phone": {
                          "type": "string",
                          "nullable": true
                        },
                        "country": {
                          "type": "string",
                          "nullable": true,
                          "enum": [
                            "AF",
                            "AX",
                            "AL",
                            "DZ",
                            "AS",
                            "AD",
                            "AO",
                            "AI",
                            "AQ",
                            "AG",
                            "AR",
                            "AM",
                            "AW",
                            "AU",
                            "AT",
                            "AZ",
                            "BS",
                            "BH",
                            "BD",
                            "BB",
                            "BY",
                            "BE",
                            "BZ",
                            "BJ",
                            "BM",
                            "BT",
                            "BO",
                            "BQ",
                            "BA",
                            "BW",
                            "BV",
                            "BR",
                            "IO",
                            "BN",
                            "BG",
                            "BF",
                            "BI",
                            "KH",
                            "CM",
                            "CA",
                            "CV",
                            "KY",
                            "CF",
                            "TD",
                            "CL",
                            "CN",
                            "CX",
                            "CC",
                            "CO",
                            "KM",
                            "CG",
                            "CD",
                            "CK",
                            "CR",
                            "CI",
                            "HR",
                            "CU",
                            "CW",
                            "CY",
                            "CZ",
                            "DK",
                            "DJ",
                            "DM",
                            "DO",
                            "EC",
                            "EG",
                            "SV",
                            "GQ",
                            "ER",
                            "EE",
                            "ET",
                            "FK",
                            "FO",
                            "FJ",
                            "FI",
                            "FR",
                            "GF",
                            "PF",
                            "TF",
                            "GA",
                            "GM",
                            "GE",
                            "DE",
                            "GH",
                            "GI",
                            "GR",
                            "GL",
                            "GD",
                            "GP",
                            "GU",
                            "GT",
                            "GG",
                            "GN",
                            "GW",
                            "GY",
                            "HT",
                            "HM",
                            "VA",
                            "HN",
                            "HK",
                            "HU",
                            "IS",
                            "IN",
                            "ID",
                            "IR",
                            "IQ",
                            "IE",
                            "IM",
                            "IL",
                            "IT",
                            "JM",
                            "JP",
                            "JE",
                            "JO",
                            "KZ",
                            "KE",
                            "KI",
                            "KP",
                            "KR",
                            "XK",
                            "KW",
                            "KG",
                            "LA",
                            "LV",
                            "LB",
                            "LS",
                            "LR",
                            "LY",
                            "LI",
                            "LT",
                            "LU",
                            "MO",
                            "MK",
                            "MG",
                            "MW",
                            "MY",
                            "MV",
                            "ML",
                            "MT",
                            "MH",
                            "MQ",
                            "MR",
                            "MU",
                            "YT",
                            "MX",
                            "FM",
                            "MD",
                            "MC",
                            "MN",
                            "ME",
                            "MS",
                            "MA",
                            "MZ",
                            "MM",
                            "NA",
                            "NR",
                            "NP",
                            "NL",
                            "NC",
                            "NZ",
                            "NI",
                            "NE",
                            "NG",
                            "NU",
                            "NF",
                            "MP",
                            "NO",
                            "OM",
                            "PK",
                            "PW",
                            "PS",
                            "PA",
                            "PG",
                            "PY",
                            "PE",
                            "PH",
                            "PN",
                            "PL",
                            "PT",
                            "PR",
                            "QA",
                            "RE",
                            "RO",
                            "RU",
                            "RW",
                            "BL",
                            "SH",
                            "KN",
                            "LC",
                            "MF",
                            "PM",
                            "VC",
                            "WS",
                            "SM",
                            "ST",
                            "SA",
                            "SN",
                            "RS",
                            "SC",
                            "SL",
                            "SG",
                            "SX",
                            "SK",
                            "SI",
                            "SB",
                            "SO",
                            "ZA",
                            "GS",
                            "SS",
                            "ES",
                            "LK",
                            "SD",
                            "SR",
                            "SJ",
                            "SZ",
                            "SE",
                            "CH",
                            "SY",
                            "TW",
                            "TJ",
                            "TZ",
                            "TH",
                            "TL",
                            "TG",
                            "TK",
                            "TO",
                            "TT",
                            "TN",
                            "TR",
                            "TM",
                            "TC",
                            "TV",
                            "UG",
                            "UA",
                            "AE",
                            "GB",
                            "US",
                            "UM",
                            "UY",
                            "UZ",
                            "VU",
                            "VE",
                            "VN",
                            "VG",
                            "VI",
                            "WF",
                            "EH",
                            "YE",
                            "ZM",
                            "ZW"
                          ]
                        },
                        "city": {
                          "type": "string",
                          "nullable": true
                        },
                        "postcode": {
                          "type": "string",
                          "nullable": true
                        },
                        "address": {
                          "type": "string",
                          "nullable": true
                        }
                      }
                    },
                    {
                      "type": "object",
                      "title": "Avalara e-invoicing",
                      "description": "Avalara e-invoicing processor.\n\nCarries the same fields as the platform's native invoice integration, plus the two Italian SDI buyer\nidentifiers. Those two are only present when the operator's Avalara integration has an Italian mandate\nand the corresponding field is enabled, and they only carry a value for company customers.\n\nWhen both identifiers are collected and enabled, an Italian company (`invoiceType` is `company` and\n`country` is `IT`) must supply at least one of `recipientCode` and `recipientCertifiedEmail` on write.\nThis either-or requirement is conditional on the invoice type and the country, so it cannot be\nexpressed per field in this schema.\n",
                      "required": [
                        "requireInvoice",
                        "invoiceType"
                      ],
                      "properties": {
                        "recipientCode": {
                          "type": "string",
                          "minLength": 7,
                          "maxLength": 7,
                          "pattern": "^[A-Za-z0-9]{7}$",
                          "description": "Italian SDI recipient code of the buyer. Exactly seven alphanumeric characters, stored uppercased.\nOmitted for individual customers and for company customers that have not supplied it.\n",
                          "example": "ABC1234"
                        },
                        "recipientCertifiedEmail": {
                          "type": "string",
                          "format": "email",
                          "description": "Certified electronic mail (PEC) address of the buyer. Omitted for individual customers and for\ncompany customers that have not supplied it.\n",
                          "example": "buyer@pec.example.com"
                        },
                        "requireInvoice": {
                          "type": "boolean",
                          "default": false,
                          "description": "Whether invoice is required for this user. Note: If the operator has 'Always collect Invoice Details' enabled in their invoice integration settings, this field will always be true regardless of the request payload value."
                        },
                        "requireInvoiceLastUpdatedAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "ISO 8601 formatted date. The date is automatically updated when the value of the \"requireInvoice\" field changes.",
                          "readOnly": true,
                          "nullable": true
                        },
                        "lastUpdatedAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "ISO 8601 formatted date",
                          "readOnly": true
                        },
                        "requireInvoiceEnforcedBy": {
                          "type": "string",
                          "enum": [
                            "operator_setting",
                            "user_request"
                          ],
                          "description": "Indicates the source that determined the final requireInvoice value. Only present when operator setting overrides user request.",
                          "nullable": true
                        },
                        "originalRequestValue": {
                          "type": "boolean",
                          "description": "The originally requested requireInvoice value when operator override occurred. Only present when requireInvoiceEnforcedBy is 'operator_setting'.",
                          "nullable": true
                        },
                        "invoiceType": {
                          "type": "string",
                          "enum": [
                            "individual",
                            "company"
                          ],
                          "nullable": true
                        },
                        "individualName": {
                          "type": "string",
                          "nullable": true
                        },
                        "individualPersonalId": {
                          "type": "string",
                          "nullable": true
                        },
                        "individualTaxId": {
                          "type": "string",
                          "nullable": true
                        },
                        "companyName": {
                          "type": "string",
                          "nullable": true
                        },
                        "companyRegNo": {
                          "type": "string",
                          "nullable": true
                        },
                        "companyTaxId": {
                          "type": "string",
                          "nullable": true
                        },
                        "companyTaxAdministrationOfficeName": {
                          "type": "string",
                          "nullable": true
                        },
                        "country": {
                          "type": "string",
                          "nullable": true,
                          "enum": [
                            "AF",
                            "AX",
                            "AL",
                            "DZ",
                            "AS",
                            "AD",
                            "AO",
                            "AI",
                            "AQ",
                            "AG",
                            "AR",
                            "AM",
                            "AW",
                            "AU",
                            "AT",
                            "AZ",
                            "BS",
                            "BH",
                            "BD",
                            "BB",
                            "BY",
                            "BE",
                            "BZ",
                            "BJ",
                            "BM",
                            "BT",
                            "BO",
                            "BQ",
                            "BA",
                            "BW",
                            "BV",
                            "BR",
                            "IO",
                            "BN",
                            "BG",
                            "BF",
                            "BI",
                            "KH",
                            "CM",
                            "CA",
                            "CV",
                            "KY",
                            "CF",
                            "TD",
                            "CL",
                            "CN",
                            "CX",
                            "CC",
                            "CO",
                            "KM",
                            "CG",
                            "CD",
                            "CK",
                            "CR",
                            "CI",
                            "HR",
                            "CU",
                            "CW",
                            "CY",
                            "CZ",
                            "DK",
                            "DJ",
                            "DM",
                            "DO",
                            "EC",
                            "EG",
                            "SV",
                            "GQ",
                            "ER",
                            "EE",
                            "ET",
                            "FK",
                            "FO",
                            "FJ",
                            "FI",
                            "FR",
                            "GF",
                            "PF",
                            "TF",
                            "GA",
                            "GM",
                            "GE",
                            "DE",
                            "GH",
                            "GI",
                            "GR",
                            "GL",
                            "GD",
                            "GP",
                            "GU",
                            "GT",
                            "GG",
                            "GN",
                            "GW",
                            "GY",
                            "HT",
                            "HM",
                            "VA",
                            "HN",
                            "HK",
                            "HU",
                            "IS",
                            "IN",
                            "ID",
                            "IR",
                            "IQ",
                            "IE",
                            "IM",
                            "IL",
                            "IT",
                            "JM",
                            "JP",
                            "JE",
                            "JO",
                            "KZ",
                            "KE",
                            "KI",
                            "KP",
                            "KR",
                            "XK",
                            "KW",
                            "KG",
                            "LA",
                            "LV",
                            "LB",
                            "LS",
                            "LR",
                            "LY",
                            "LI",
                            "LT",
                            "LU",
                            "MO",
                            "MK",
                            "MG",
                            "MW",
                            "MY",
                            "MV",
                            "ML",
                            "MT",
                            "MH",
                            "MQ",
                            "MR",
                            "MU",
                            "YT",
                            "MX",
                            "FM",
                            "MD",
                            "MC",
                            "MN",
                            "ME",
                            "MS",
                            "MA",
                            "MZ",
                            "MM",
                            "NA",
                            "NR",
                            "NP",
                            "NL",
                            "NC",
                            "NZ",
                            "NI",
                            "NE",
                            "NG",
                            "NU",
                            "NF",
                            "MP",
                            "NO",
                            "OM",
                            "PK",
                            "PW",
                            "PS",
                            "PA",
                            "PG",
                            "PY",
                            "PE",
                            "PH",
                            "PN",
                            "PL",
                            "PT",
                            "PR",
                            "QA",
                            "RE",
                            "RO",
                            "RU",
                            "RW",
                            "BL",
                            "SH",
                            "KN",
                            "LC",
                            "MF",
                            "PM",
                            "VC",
                            "WS",
                            "SM",
                            "ST",
                            "SA",
                            "SN",
                            "RS",
                            "SC",
                            "SL",
                            "SG",
                            "SX",
                            "SK",
                            "SI",
                            "SB",
                            "SO",
                            "ZA",
                            "GS",
                            "SS",
                            "ES",
                            "LK",
                            "SD",
                            "SR",
                            "SJ",
                            "SZ",
                            "SE",
                            "CH",
                            "SY",
                            "TW",
                            "TJ",
                            "TZ",
                            "TH",
                            "TL",
                            "TG",
                            "TK",
                            "TO",
                            "TT",
                            "TN",
                            "TR",
                            "TM",
                            "TC",
                            "TV",
                            "UG",
                            "UA",
                            "AE",
                            "GB",
                            "US",
                            "UM",
                            "UY",
                            "UZ",
                            "VU",
                            "VE",
                            "VN",
                            "VG",
                            "VI",
                            "WF",
                            "EH",
                            "YE",
                            "ZM",
                            "ZW"
                          ]
                        },
                        "region": {
                          "type": "string",
                          "nullable": true,
                          "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
                        },
                        "state": {
                          "description": "When the selected country is one of US, AU, CA, UM or RO",
                          "anyOf": [
                            {
                              "title": "US State",
                              "description": "When the country is US.",
                              "type": "string",
                              "enum": [
                                "AL",
                                "AK",
                                "AS",
                                "AZ",
                                "AR",
                                "CA",
                                "CO",
                                "CT",
                                "DE",
                                "DC",
                                "FM",
                                "FL",
                                "GA",
                                "GU",
                                "HI",
                                "ID",
                                "IL",
                                "IN",
                                "IA",
                                "KS",
                                "KY",
                                "LA",
                                "ME",
                                "MH",
                                "MD",
                                "MA",
                                "MI",
                                "MN",
                                "MS",
                                "MO",
                                "MT",
                                "NE",
                                "NV",
                                "NH",
                                "NJ",
                                "NM",
                                "NY",
                                "NC",
                                "ND",
                                "MP",
                                "OH",
                                "OK",
                                "OR",
                                "PW",
                                "PA",
                                "PR",
                                "RI",
                                "SC",
                                "SD",
                                "TN",
                                "TX",
                                "UT",
                                "VT",
                                "VI",
                                "VA",
                                "WA",
                                "WV",
                                "WI",
                                "WY"
                              ]
                            },
                            {
                              "title": "Australian State",
                              "description": "When the country is AU.",
                              "type": "string",
                              "enum": [
                                "NSW",
                                "VIC",
                                "QLD",
                                "WA",
                                "SA",
                                "TAS",
                                "ACT",
                                "NT",
                                "JBT",
                                "CX",
                                "NF",
                                "CC",
                                "AQ",
                                "CSI",
                                "ACI",
                                "HM"
                              ]
                            },
                            {
                              "title": "Canadian Province",
                              "description": "When the country is CA.",
                              "type": "string",
                              "enum": [
                                "AB",
                                "BC",
                                "MB",
                                "NB",
                                "NL",
                                "NT",
                                "NS",
                                "NU",
                                "ON",
                                "PE",
                                "QC",
                                "SK",
                                "YT"
                              ]
                            },
                            {
                              "title": "US Minor Outlying Islands Territory",
                              "description": "When the country is UM.",
                              "type": "string",
                              "enum": [
                                "81",
                                "84",
                                "85",
                                "67",
                                "89",
                                "71",
                                "76",
                                "95",
                                "79"
                              ]
                            },
                            {
                              "title": "Romanian County",
                              "description": "When the country is RO.",
                              "type": "string",
                              "enum": [
                                "AB",
                                "AR",
                                "AG",
                                "BC",
                                "BH",
                                "BN",
                                "BT",
                                "BV",
                                "BR",
                                "B",
                                "BZ",
                                "CL",
                                "CS",
                                "CT",
                                "CV",
                                "DB",
                                "DJ",
                                "GL",
                                "GR",
                                "GJ",
                                "HR",
                                "HD",
                                "IL",
                                "IS",
                                "IF",
                                "MM",
                                "MH",
                                "MS",
                                "NT",
                                "OT",
                                "PH",
                                "SM",
                                "SJ",
                                "SB",
                                "SV",
                                "TR",
                                "TM",
                                "TL",
                                "VS",
                                "VL",
                                "VN"
                              ]
                            }
                          ]
                        },
                        "city": {
                          "type": "string",
                          "nullable": true
                        },
                        "postCode": {
                          "type": "string",
                          "nullable": true
                        },
                        "address": {
                          "type": "string",
                          "nullable": true
                        }
                      }
                    }
                  ]
                },
                "companyTaxId": {
                  "type": "string"
                },
                "companyAddress": {
                  "type": "string"
                },
                "companyCity": {
                  "type": "string"
                },
                "companyPostalCode": {
                  "type": "string"
                },
                "companyCountry": {
                  "type": "string",
                  "enum": [
                    "AF",
                    "AX",
                    "AL",
                    "DZ",
                    "AS",
                    "AD",
                    "AO",
                    "AI",
                    "AQ",
                    "AG",
                    "AR",
                    "AM",
                    "AW",
                    "AU",
                    "AT",
                    "AZ",
                    "BS",
                    "BH",
                    "BD",
                    "BB",
                    "BY",
                    "BE",
                    "BZ",
                    "BJ",
                    "BM",
                    "BT",
                    "BO",
                    "BQ",
                    "BA",
                    "BW",
                    "BV",
                    "BR",
                    "IO",
                    "BN",
                    "BG",
                    "BF",
                    "BI",
                    "KH",
                    "CM",
                    "CA",
                    "CV",
                    "KY",
                    "CF",
                    "TD",
                    "CL",
                    "CN",
                    "CX",
                    "CC",
                    "CO",
                    "KM",
                    "CG",
                    "CD",
                    "CK",
                    "CR",
                    "CI",
                    "HR",
                    "CU",
                    "CW",
                    "CY",
                    "CZ",
                    "DK",
                    "DJ",
                    "DM",
                    "DO",
                    "EC",
                    "EG",
                    "SV",
                    "GQ",
                    "ER",
                    "EE",
                    "ET",
                    "FK",
                    "FO",
                    "FJ",
                    "FI",
                    "FR",
                    "GF",
                    "PF",
                    "TF",
                    "GA",
                    "GM",
                    "GE",
                    "DE",
                    "GH",
                    "GI",
                    "GR",
                    "GL",
                    "GD",
                    "GP",
                    "GU",
                    "GT",
                    "GG",
                    "GN",
                    "GW",
                    "GY",
                    "HT",
                    "HM",
                    "VA",
                    "HN",
                    "HK",
                    "HU",
                    "IS",
                    "IN",
                    "ID",
                    "IR",
                    "IQ",
                    "IE",
                    "IM",
                    "IL",
                    "IT",
                    "JM",
                    "JP",
                    "JE",
                    "JO",
                    "KZ",
                    "KE",
                    "KI",
                    "KP",
                    "KR",
                    "XK",
                    "KW",
                    "KG",
                    "LA",
                    "LV",
                    "LB",
                    "LS",
                    "LR",
                    "LY",
                    "LI",
                    "LT",
                    "LU",
                    "MO",
                    "MK",
                    "MG",
                    "MW",
                    "MY",
                    "MV",
                    "ML",
                    "MT",
                    "MH",
                    "MQ",
                    "MR",
                    "MU",
                    "YT",
                    "MX",
                    "FM",
                    "MD",
                    "MC",
                    "MN",
                    "ME",
                    "MS",
                    "MA",
                    "MZ",
                    "MM",
                    "NA",
                    "NR",
                    "NP",
                    "NL",
                    "NC",
                    "NZ",
                    "NI",
                    "NE",
                    "NG",
                    "NU",
                    "NF",
                    "MP",
                    "NO",
                    "OM",
                    "PK",
                    "PW",
                    "PS",
                    "PA",
                    "PG",
                    "PY",
                    "PE",
                    "PH",
                    "PN",
                    "PL",
                    "PT",
                    "PR",
                    "QA",
                    "RE",
                    "RO",
                    "RU",
                    "RW",
                    "BL",
                    "SH",
                    "KN",
                    "LC",
                    "MF",
                    "PM",
                    "VC",
                    "WS",
                    "SM",
                    "ST",
                    "SA",
                    "SN",
                    "RS",
                    "SC",
                    "SL",
                    "SG",
                    "SX",
                    "SK",
                    "SI",
                    "SB",
                    "SO",
                    "ZA",
                    "GS",
                    "SS",
                    "ES",
                    "LK",
                    "SD",
                    "SR",
                    "SJ",
                    "SZ",
                    "SE",
                    "CH",
                    "SY",
                    "TW",
                    "TJ",
                    "TZ",
                    "TH",
                    "TL",
                    "TG",
                    "TK",
                    "TO",
                    "TT",
                    "TN",
                    "TR",
                    "TM",
                    "TC",
                    "TV",
                    "UG",
                    "UA",
                    "AE",
                    "GB",
                    "US",
                    "UM",
                    "UY",
                    "UZ",
                    "VU",
                    "VE",
                    "VN",
                    "VG",
                    "VI",
                    "WF",
                    "EH",
                    "YE",
                    "ZM",
                    "ZW"
                  ]
                },
                "companyReceiptsEnabled": {
                  "type": "boolean",
                  "description": "Shows whether this user has opted to use company details for receipts."
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userCreateV1_1": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "operatorId"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "email": {
                "type": "string",
                "format": "email"
              },
              "emailVerified": {
                "type": "string",
                "description": "ISO 8601 formatted date",
                "readOnly": true,
                "nullable": true,
                "example": "2022-11-12 12:00:00"
              },
              "requirePasswordReset": {
                "type": "boolean",
                "description": "Sets a requirement for the user to set a new password when they next open the app. After a new password is set, this option resets automatically."
              },
              "firstName": {
                "type": "string",
                "nullable": true
              },
              "middleName": {
                "type": "string",
                "nullable": true
              },
              "lastName": {
                "type": "string",
                "nullable": true
              },
              "phone": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true
              },
              "state": {
                "type": "string",
                "nullable": true
              },
              "city": {
                "type": "string",
                "nullable": true
              },
              "postCode": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true
              },
              "vehicleNo": {
                "type": "string",
                "nullable": true
              },
              "personalId": {
                "type": "string"
              },
              "companyName": {
                "type": "string",
                "nullable": true
              },
              "locale": {
                "type": "string",
                "nullable": true,
                "example": "en-GB"
              },
              "balance": {
                "type": "number",
                "multipleOf": 0.001,
                "description": "The current amount in the balance of the user (in the base currency). Would not be returned in the response if the user is related to a Partner without \"addUserBalance\" permission"
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "description": "* `enabled` Enabled - the user is allowed to use the system\n* `disabled` Disabled - the user is NOT allowed to use the system\n"
              },
              "userGroupIds": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "externalId": {
                "type": "string",
                "nullable": true,
                "readOnly": true,
                "description": "Third party identifier of the user"
              },
              "subscriptionId": {
                "type": "integer",
                "nullable": true,
                "readOnly": true,
                "description": "user subscription id"
              },
              "options": {
                "type": "object",
                "properties": {
                  "sessionsAllowed": {
                    "type": "string",
                    "description": "Determine the number of sessions a user could start - single or multiple simultaneous sessions, or whether the user could start simultaneous sessions with several Id Tags.",
                    "enum": [
                      "single_session",
                      "multiple_simultaneous_sessions_per_idtag",
                      "simultaneous_use_of_idtags",
                      "multiple_simultaneous_sessions_remotely_and_idtags"
                    ]
                  }
                }
              },
              "password": {
                "type": "string",
                "readOnly": true,
                "nullable": true,
                "description": "Returns the hashed password. This property is optional and can be enabled by request.\n"
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "lastActivityAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "nullable": true,
                "description": "When the user was last active"
              },
              "lastActivitySource": {
                "type": "string",
                "readOnly": true,
                "nullable": true,
                "enum": [
                  "device_activity",
                  "device_logout",
                  "id_tag_authorization",
                  "transaction",
                  "registration"
                ],
                "description": "What triggered the last activity update"
              },
              "createdBy": {
                "type": "string",
                "readOnly": true,
                "description": "The return values are `admin:` , `partner:` - the value after the colon is the respective ID of the admin account or the partner. `token:` - the value after the colon is the admin token. `mobile_api` - means that the User registered themselves through the mobile app."
              },
              "receiveNewsAndPromotions": {
                "type": "boolean",
                "description": "Shows if the user has opted into receiving news and promotions."
              },
              "skipPreAuthorization": {
                "type": "boolean",
                "description": "When enabled, the user can start charging sessions without a pre-authorization hold on their payment method."
              },
              "skipUnpaidSessionCheck": {
                "type": "boolean",
                "description": "When enabled, this user can start new sessions even if they have unpaid sessions or unpaid post-paid subscription fees."
              },
              "partnerInvites": {
                "type": "array",
                "description": "It's a part of the response only if request is called with `include.partnerInvites` query parameter.",
                "readOnly": true,
                "nullable": true,
                "items": {
                  "type": "object",
                  "description": "Partner Invite",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "partnerId": {
                      "type": "integer"
                    },
                    "sendViaEmail": {
                      "type": "boolean"
                    },
                    "email": {
                      "type": "string",
                      "description": "Email used to identify and associate the invitee. May be null when the invite was created without an email.",
                      "format": "email",
                      "nullable": true
                    },
                    "language": {
                      "type": "string",
                      "description": "The language of the e-mail sent to the invitee. If none selected, the default end-users language will be used."
                    },
                    "acceptUrl": {
                      "type": "string",
                      "format": "url",
                      "readOnly": true,
                      "nullable": true
                    },
                    "options": {
                      "type": "object",
                      "properties": {
                        "allowCorporateAccountBilling": {
                          "type": "boolean",
                          "default": false
                        },
                        "limitCorporateAccountBillingToPartnerChargePoints": {
                          "type": "boolean",
                          "description": "Whether the assigned corporate billing policy restricts corporate billing to the partner's charge points.",
                          "default": false
                        },
                        "allowAccessToPrivateChargePoints": {
                          "type": "boolean",
                          "default": false
                        },
                        "corporateBillingLimit": {
                          "type": "number",
                          "format": "decimal",
                          "nullable": true,
                          "minimum": 0,
                          "description": "The individual corporate billing limit amount from the assigned corporate billing policy. Must be a positive decimal when set. When `null`, no individual limit is applied. Only applicable when `allowCorporateAccountBilling` is `true`."
                        }
                      }
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "pending",
                        "sent",
                        "accepted"
                      ],
                      "readOnly": true
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time",
                      "readOnly": true
                    },
                    "acceptedAt": {
                      "type": "string",
                      "format": "date-time",
                      "readOnly": true,
                      "nullable": true
                    },
                    "userId": {
                      "type": "integer",
                      "readOnly": true,
                      "nullable": true
                    },
                    "lastUpdatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO 8601 formatted date",
                      "readOnly": true
                    }
                  },
                  "required": [
                    "id",
                    "partnerId",
                    "status",
                    "createdAt"
                  ]
                }
              },
              "bankDetails": {
                "type": "object",
                "properties": {
                  "bankIban": {
                    "type": "string",
                    "nullable": true,
                    "description": "IBAN of the bank account."
                  },
                  "bankCode": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                  },
                  "bankAccountNumber": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank account number."
                  },
                  "bankAccountType": {
                    "type": "string",
                    "nullable": true,
                    "description": "Type of the bank account."
                  },
                  "bankBic": {
                    "type": "string",
                    "nullable": true,
                    "description": "BIC/SWIFT code of the bank."
                  }
                }
              },
              "externalAppData": {
                "example": {
                  "externalCustomerId": "uuid"
                },
                "description": "The externalAppData field is an object designed to hold additional data related to external integrations.\nThis object can contain the following keys, which are currently supported:\n\n- `externalCustomerId`: A string representing the customer ID of the user in an external payment provider integration. This ID is used to link the user's account within the system to their corresponding account in the external payment provider.\n\nIf no information is available, the externalAppData object will be null. It's a part of the response only if request is called with `include.externalAppData` query parameter.\n",
                "type": "object",
                "nullable": true,
                "additionalProperties": true
              },
              "invoiceDetails": {
                "description": "The user's invoice details for invoice generation. The response structure varies depending on the operator's invoice integration type.\nIt's a part of the response only if request is called with `include[]=invoiceDetails` query parameter.\nReturns `null` if the user has no invoice details or the operator has no invoice integration configured.\n",
                "readOnly": true,
                "type": "object",
                "nullable": true,
                "anyOf": [
                  {
                    "type": "object",
                    "title": "Built-in invoicing",
                    "description": "Built-in invoice processor",
                    "properties": {
                      "requireInvoice": {
                        "type": "boolean",
                        "default": false,
                        "description": "Whether invoice is required for this user. Note: If the operator has 'Always collect Invoice Details' enabled in their invoice integration settings, this field will always be true regardless of the request payload value."
                      },
                      "requireInvoiceLastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date. The date is automatically updated when the value of the \"requireInvoice\" field changes.",
                        "readOnly": true,
                        "nullable": true
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "requireInvoiceEnforcedBy": {
                        "type": "string",
                        "enum": [
                          "operator_setting",
                          "user_request"
                        ],
                        "description": "Indicates the source that determined the final requireInvoice value. Only present when operator setting overrides user request.",
                        "nullable": true
                      },
                      "originalRequestValue": {
                        "type": "boolean",
                        "description": "The originally requested requireInvoice value when operator override occurred. Only present when requireInvoiceEnforcedBy is 'operator_setting'.",
                        "nullable": true
                      },
                      "invoiceType": {
                        "type": "string",
                        "enum": [
                          "individual",
                          "company"
                        ],
                        "nullable": true
                      },
                      "individualName": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualPersonalId": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyName": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyRegNo": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxAdministrationOfficeName": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "region": {
                        "type": "string",
                        "nullable": true,
                        "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
                      },
                      "state": {
                        "description": "When the selected country is one of US, AU, CA, UM or RO",
                        "anyOf": [
                          {
                            "title": "US State",
                            "description": "When the country is US.",
                            "type": "string",
                            "enum": [
                              "AL",
                              "AK",
                              "AS",
                              "AZ",
                              "AR",
                              "CA",
                              "CO",
                              "CT",
                              "DE",
                              "DC",
                              "FM",
                              "FL",
                              "GA",
                              "GU",
                              "HI",
                              "ID",
                              "IL",
                              "IN",
                              "IA",
                              "KS",
                              "KY",
                              "LA",
                              "ME",
                              "MH",
                              "MD",
                              "MA",
                              "MI",
                              "MN",
                              "MS",
                              "MO",
                              "MT",
                              "NE",
                              "NV",
                              "NH",
                              "NJ",
                              "NM",
                              "NY",
                              "NC",
                              "ND",
                              "MP",
                              "OH",
                              "OK",
                              "OR",
                              "PW",
                              "PA",
                              "PR",
                              "RI",
                              "SC",
                              "SD",
                              "TN",
                              "TX",
                              "UT",
                              "VT",
                              "VI",
                              "VA",
                              "WA",
                              "WV",
                              "WI",
                              "WY"
                            ]
                          },
                          {
                            "title": "Australian State",
                            "description": "When the country is AU.",
                            "type": "string",
                            "enum": [
                              "NSW",
                              "VIC",
                              "QLD",
                              "WA",
                              "SA",
                              "TAS",
                              "ACT",
                              "NT",
                              "JBT",
                              "CX",
                              "NF",
                              "CC",
                              "AQ",
                              "CSI",
                              "ACI",
                              "HM"
                            ]
                          },
                          {
                            "title": "Canadian Province",
                            "description": "When the country is CA.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "BC",
                              "MB",
                              "NB",
                              "NL",
                              "NT",
                              "NS",
                              "NU",
                              "ON",
                              "PE",
                              "QC",
                              "SK",
                              "YT"
                            ]
                          },
                          {
                            "title": "US Minor Outlying Islands Territory",
                            "description": "When the country is UM.",
                            "type": "string",
                            "enum": [
                              "81",
                              "84",
                              "85",
                              "67",
                              "89",
                              "71",
                              "76",
                              "95",
                              "79"
                            ]
                          },
                          {
                            "title": "Romanian County",
                            "description": "When the country is RO.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "AR",
                              "AG",
                              "BC",
                              "BH",
                              "BN",
                              "BT",
                              "BV",
                              "BR",
                              "B",
                              "BZ",
                              "CL",
                              "CS",
                              "CT",
                              "CV",
                              "DB",
                              "DJ",
                              "GL",
                              "GR",
                              "GJ",
                              "HR",
                              "HD",
                              "IL",
                              "IS",
                              "IF",
                              "MM",
                              "MH",
                              "MS",
                              "NT",
                              "OT",
                              "PH",
                              "SM",
                              "SJ",
                              "SB",
                              "SV",
                              "TR",
                              "TM",
                              "TL",
                              "VS",
                              "VL",
                              "VN"
                            ]
                          }
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "required": [
                      "requireInvoice",
                      "invoiceType"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "title": "Cardcom Invoice Manager",
                    "description": "Invoice processor - Cardcom",
                    "properties": {
                      "invoiceRequired": {
                        "type": "boolean",
                        "default": false
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "clientType": {
                        "type": "string",
                        "enum": [
                          "individual",
                          "company"
                        ],
                        "nullable": true
                      },
                      "individual": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "nullable": true
                          },
                          "email": {
                            "type": "string",
                            "nullable": true
                          },
                          "mobilePhoneNumber": {
                            "type": "string",
                            "nullable": true
                          },
                          "taxId": {
                            "type": "string",
                            "nullable": true
                          },
                          "country": {
                            "type": "string",
                            "nullable": true,
                            "enum": [
                              "AF",
                              "AX",
                              "AL",
                              "DZ",
                              "AS",
                              "AD",
                              "AO",
                              "AI",
                              "AQ",
                              "AG",
                              "AR",
                              "AM",
                              "AW",
                              "AU",
                              "AT",
                              "AZ",
                              "BS",
                              "BH",
                              "BD",
                              "BB",
                              "BY",
                              "BE",
                              "BZ",
                              "BJ",
                              "BM",
                              "BT",
                              "BO",
                              "BQ",
                              "BA",
                              "BW",
                              "BV",
                              "BR",
                              "IO",
                              "BN",
                              "BG",
                              "BF",
                              "BI",
                              "KH",
                              "CM",
                              "CA",
                              "CV",
                              "KY",
                              "CF",
                              "TD",
                              "CL",
                              "CN",
                              "CX",
                              "CC",
                              "CO",
                              "KM",
                              "CG",
                              "CD",
                              "CK",
                              "CR",
                              "CI",
                              "HR",
                              "CU",
                              "CW",
                              "CY",
                              "CZ",
                              "DK",
                              "DJ",
                              "DM",
                              "DO",
                              "EC",
                              "EG",
                              "SV",
                              "GQ",
                              "ER",
                              "EE",
                              "ET",
                              "FK",
                              "FO",
                              "FJ",
                              "FI",
                              "FR",
                              "GF",
                              "PF",
                              "TF",
                              "GA",
                              "GM",
                              "GE",
                              "DE",
                              "GH",
                              "GI",
                              "GR",
                              "GL",
                              "GD",
                              "GP",
                              "GU",
                              "GT",
                              "GG",
                              "GN",
                              "GW",
                              "GY",
                              "HT",
                              "HM",
                              "VA",
                              "HN",
                              "HK",
                              "HU",
                              "IS",
                              "IN",
                              "ID",
                              "IR",
                              "IQ",
                              "IE",
                              "IM",
                              "IL",
                              "IT",
                              "JM",
                              "JP",
                              "JE",
                              "JO",
                              "KZ",
                              "KE",
                              "KI",
                              "KP",
                              "KR",
                              "XK",
                              "KW",
                              "KG",
                              "LA",
                              "LV",
                              "LB",
                              "LS",
                              "LR",
                              "LY",
                              "LI",
                              "LT",
                              "LU",
                              "MO",
                              "MK",
                              "MG",
                              "MW",
                              "MY",
                              "MV",
                              "ML",
                              "MT",
                              "MH",
                              "MQ",
                              "MR",
                              "MU",
                              "YT",
                              "MX",
                              "FM",
                              "MD",
                              "MC",
                              "MN",
                              "ME",
                              "MS",
                              "MA",
                              "MZ",
                              "MM",
                              "NA",
                              "NR",
                              "NP",
                              "NL",
                              "NC",
                              "NZ",
                              "NI",
                              "NE",
                              "NG",
                              "NU",
                              "NF",
                              "MP",
                              "NO",
                              "OM",
                              "PK",
                              "PW",
                              "PS",
                              "PA",
                              "PG",
                              "PY",
                              "PE",
                              "PH",
                              "PN",
                              "PL",
                              "PT",
                              "PR",
                              "QA",
                              "RE",
                              "RO",
                              "RU",
                              "RW",
                              "BL",
                              "SH",
                              "KN",
                              "LC",
                              "MF",
                              "PM",
                              "VC",
                              "WS",
                              "SM",
                              "ST",
                              "SA",
                              "SN",
                              "RS",
                              "SC",
                              "SL",
                              "SG",
                              "SX",
                              "SK",
                              "SI",
                              "SB",
                              "SO",
                              "ZA",
                              "GS",
                              "SS",
                              "ES",
                              "LK",
                              "SD",
                              "SR",
                              "SJ",
                              "SZ",
                              "SE",
                              "CH",
                              "SY",
                              "TW",
                              "TJ",
                              "TZ",
                              "TH",
                              "TL",
                              "TG",
                              "TK",
                              "TO",
                              "TT",
                              "TN",
                              "TR",
                              "TM",
                              "TC",
                              "TV",
                              "UG",
                              "UA",
                              "AE",
                              "GB",
                              "US",
                              "UM",
                              "UY",
                              "UZ",
                              "VU",
                              "VE",
                              "VN",
                              "VG",
                              "VI",
                              "WF",
                              "EH",
                              "YE",
                              "ZM",
                              "ZW"
                            ]
                          },
                          "city": {
                            "type": "string",
                            "nullable": true
                          },
                          "postcode": {
                            "type": "string",
                            "nullable": true
                          },
                          "address": {
                            "type": "string",
                            "nullable": true
                          }
                        }
                      },
                      "company": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "nullable": true
                          },
                          "email": {
                            "type": "string",
                            "nullable": true
                          },
                          "mobilePhoneNumber": {
                            "type": "string",
                            "nullable": true
                          },
                          "landlinePhoneNumber": {
                            "type": "string",
                            "nullable": true
                          },
                          "taxId": {
                            "type": "string",
                            "nullable": true
                          },
                          "country": {
                            "type": "string",
                            "nullable": true,
                            "enum": [
                              "AF",
                              "AX",
                              "AL",
                              "DZ",
                              "AS",
                              "AD",
                              "AO",
                              "AI",
                              "AQ",
                              "AG",
                              "AR",
                              "AM",
                              "AW",
                              "AU",
                              "AT",
                              "AZ",
                              "BS",
                              "BH",
                              "BD",
                              "BB",
                              "BY",
                              "BE",
                              "BZ",
                              "BJ",
                              "BM",
                              "BT",
                              "BO",
                              "BQ",
                              "BA",
                              "BW",
                              "BV",
                              "BR",
                              "IO",
                              "BN",
                              "BG",
                              "BF",
                              "BI",
                              "KH",
                              "CM",
                              "CA",
                              "CV",
                              "KY",
                              "CF",
                              "TD",
                              "CL",
                              "CN",
                              "CX",
                              "CC",
                              "CO",
                              "KM",
                              "CG",
                              "CD",
                              "CK",
                              "CR",
                              "CI",
                              "HR",
                              "CU",
                              "CW",
                              "CY",
                              "CZ",
                              "DK",
                              "DJ",
                              "DM",
                              "DO",
                              "EC",
                              "EG",
                              "SV",
                              "GQ",
                              "ER",
                              "EE",
                              "ET",
                              "FK",
                              "FO",
                              "FJ",
                              "FI",
                              "FR",
                              "GF",
                              "PF",
                              "TF",
                              "GA",
                              "GM",
                              "GE",
                              "DE",
                              "GH",
                              "GI",
                              "GR",
                              "GL",
                              "GD",
                              "GP",
                              "GU",
                              "GT",
                              "GG",
                              "GN",
                              "GW",
                              "GY",
                              "HT",
                              "HM",
                              "VA",
                              "HN",
                              "HK",
                              "HU",
                              "IS",
                              "IN",
                              "ID",
                              "IR",
                              "IQ",
                              "IE",
                              "IM",
                              "IL",
                              "IT",
                              "JM",
                              "JP",
                              "JE",
                              "JO",
                              "KZ",
                              "KE",
                              "KI",
                              "KP",
                              "KR",
                              "XK",
                              "KW",
                              "KG",
                              "LA",
                              "LV",
                              "LB",
                              "LS",
                              "LR",
                              "LY",
                              "LI",
                              "LT",
                              "LU",
                              "MO",
                              "MK",
                              "MG",
                              "MW",
                              "MY",
                              "MV",
                              "ML",
                              "MT",
                              "MH",
                              "MQ",
                              "MR",
                              "MU",
                              "YT",
                              "MX",
                              "FM",
                              "MD",
                              "MC",
                              "MN",
                              "ME",
                              "MS",
                              "MA",
                              "MZ",
                              "MM",
                              "NA",
                              "NR",
                              "NP",
                              "NL",
                              "NC",
                              "NZ",
                              "NI",
                              "NE",
                              "NG",
                              "NU",
                              "NF",
                              "MP",
                              "NO",
                              "OM",
                              "PK",
                              "PW",
                              "PS",
                              "PA",
                              "PG",
                              "PY",
                              "PE",
                              "PH",
                              "PN",
                              "PL",
                              "PT",
                              "PR",
                              "QA",
                              "RE",
                              "RO",
                              "RU",
                              "RW",
                              "BL",
                              "SH",
                              "KN",
                              "LC",
                              "MF",
                              "PM",
                              "VC",
                              "WS",
                              "SM",
                              "ST",
                              "SA",
                              "SN",
                              "RS",
                              "SC",
                              "SL",
                              "SG",
                              "SX",
                              "SK",
                              "SI",
                              "SB",
                              "SO",
                              "ZA",
                              "GS",
                              "SS",
                              "ES",
                              "LK",
                              "SD",
                              "SR",
                              "SJ",
                              "SZ",
                              "SE",
                              "CH",
                              "SY",
                              "TW",
                              "TJ",
                              "TZ",
                              "TH",
                              "TL",
                              "TG",
                              "TK",
                              "TO",
                              "TT",
                              "TN",
                              "TR",
                              "TM",
                              "TC",
                              "TV",
                              "UG",
                              "UA",
                              "AE",
                              "GB",
                              "US",
                              "UM",
                              "UY",
                              "UZ",
                              "VU",
                              "VE",
                              "VN",
                              "VG",
                              "VI",
                              "WF",
                              "EH",
                              "YE",
                              "ZM",
                              "ZW"
                            ]
                          },
                          "city": {
                            "type": "string",
                            "nullable": true
                          },
                          "postcode": {
                            "type": "string",
                            "nullable": true
                          },
                          "address": {
                            "type": "string",
                            "nullable": true
                          }
                        }
                      }
                    },
                    "required": [
                      "invoiceRequired",
                      "clientType",
                      "individual",
                      "company"
                    ]
                  },
                  {
                    "type": "object",
                    "title": "SoftOne Invoice Manager",
                    "description": "Invoice processor - SoftOne",
                    "properties": {
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "firstName": {
                        "type": "string",
                        "nullable": true
                      },
                      "lastName": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postcode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Ecpay Invoice Manager",
                    "description": "Invoice processor - Ecpay",
                    "properties": {
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "invoiceType": {
                        "type": "string",
                        "enum": [
                          "EInvoice",
                          "Company",
                          "Donation"
                        ]
                      },
                      "carrierType": {
                        "type": "string",
                        "enum": [
                          "Mobile",
                          "Citizen",
                          "GreenWorld"
                        ],
                        "nullable": true
                      },
                      "loveCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "mobileBarCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "citizenId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyId": {
                        "type": "string",
                        "nullable": true
                      },
                      "name": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postcode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Avalara e-invoicing",
                    "description": "Avalara e-invoicing processor.\n\nCarries the same fields as the platform's native invoice integration, plus the two Italian SDI buyer\nidentifiers. Those two are only present when the operator's Avalara integration has an Italian mandate\nand the corresponding field is enabled, and they only carry a value for company customers.\n\nWhen both identifiers are collected and enabled, an Italian company (`invoiceType` is `company` and\n`country` is `IT`) must supply at least one of `recipientCode` and `recipientCertifiedEmail` on write.\nThis either-or requirement is conditional on the invoice type and the country, so it cannot be\nexpressed per field in this schema.\n",
                    "required": [
                      "requireInvoice",
                      "invoiceType"
                    ],
                    "properties": {
                      "recipientCode": {
                        "type": "string",
                        "minLength": 7,
                        "maxLength": 7,
                        "pattern": "^[A-Za-z0-9]{7}$",
                        "description": "Italian SDI recipient code of the buyer. Exactly seven alphanumeric characters, stored uppercased.\nOmitted for individual customers and for company customers that have not supplied it.\n",
                        "example": "ABC1234"
                      },
                      "recipientCertifiedEmail": {
                        "type": "string",
                        "format": "email",
                        "description": "Certified electronic mail (PEC) address of the buyer. Omitted for individual customers and for\ncompany customers that have not supplied it.\n",
                        "example": "buyer@pec.example.com"
                      },
                      "requireInvoice": {
                        "type": "boolean",
                        "default": false,
                        "description": "Whether invoice is required for this user. Note: If the operator has 'Always collect Invoice Details' enabled in their invoice integration settings, this field will always be true regardless of the request payload value."
                      },
                      "requireInvoiceLastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date. The date is automatically updated when the value of the \"requireInvoice\" field changes.",
                        "readOnly": true,
                        "nullable": true
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "requireInvoiceEnforcedBy": {
                        "type": "string",
                        "enum": [
                          "operator_setting",
                          "user_request"
                        ],
                        "description": "Indicates the source that determined the final requireInvoice value. Only present when operator setting overrides user request.",
                        "nullable": true
                      },
                      "originalRequestValue": {
                        "type": "boolean",
                        "description": "The originally requested requireInvoice value when operator override occurred. Only present when requireInvoiceEnforcedBy is 'operator_setting'.",
                        "nullable": true
                      },
                      "invoiceType": {
                        "type": "string",
                        "enum": [
                          "individual",
                          "company"
                        ],
                        "nullable": true
                      },
                      "individualName": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualPersonalId": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyName": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyRegNo": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxAdministrationOfficeName": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "region": {
                        "type": "string",
                        "nullable": true,
                        "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
                      },
                      "state": {
                        "description": "When the selected country is one of US, AU, CA, UM or RO",
                        "anyOf": [
                          {
                            "title": "US State",
                            "description": "When the country is US.",
                            "type": "string",
                            "enum": [
                              "AL",
                              "AK",
                              "AS",
                              "AZ",
                              "AR",
                              "CA",
                              "CO",
                              "CT",
                              "DE",
                              "DC",
                              "FM",
                              "FL",
                              "GA",
                              "GU",
                              "HI",
                              "ID",
                              "IL",
                              "IN",
                              "IA",
                              "KS",
                              "KY",
                              "LA",
                              "ME",
                              "MH",
                              "MD",
                              "MA",
                              "MI",
                              "MN",
                              "MS",
                              "MO",
                              "MT",
                              "NE",
                              "NV",
                              "NH",
                              "NJ",
                              "NM",
                              "NY",
                              "NC",
                              "ND",
                              "MP",
                              "OH",
                              "OK",
                              "OR",
                              "PW",
                              "PA",
                              "PR",
                              "RI",
                              "SC",
                              "SD",
                              "TN",
                              "TX",
                              "UT",
                              "VT",
                              "VI",
                              "VA",
                              "WA",
                              "WV",
                              "WI",
                              "WY"
                            ]
                          },
                          {
                            "title": "Australian State",
                            "description": "When the country is AU.",
                            "type": "string",
                            "enum": [
                              "NSW",
                              "VIC",
                              "QLD",
                              "WA",
                              "SA",
                              "TAS",
                              "ACT",
                              "NT",
                              "JBT",
                              "CX",
                              "NF",
                              "CC",
                              "AQ",
                              "CSI",
                              "ACI",
                              "HM"
                            ]
                          },
                          {
                            "title": "Canadian Province",
                            "description": "When the country is CA.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "BC",
                              "MB",
                              "NB",
                              "NL",
                              "NT",
                              "NS",
                              "NU",
                              "ON",
                              "PE",
                              "QC",
                              "SK",
                              "YT"
                            ]
                          },
                          {
                            "title": "US Minor Outlying Islands Territory",
                            "description": "When the country is UM.",
                            "type": "string",
                            "enum": [
                              "81",
                              "84",
                              "85",
                              "67",
                              "89",
                              "71",
                              "76",
                              "95",
                              "79"
                            ]
                          },
                          {
                            "title": "Romanian County",
                            "description": "When the country is RO.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "AR",
                              "AG",
                              "BC",
                              "BH",
                              "BN",
                              "BT",
                              "BV",
                              "BR",
                              "B",
                              "BZ",
                              "CL",
                              "CS",
                              "CT",
                              "CV",
                              "DB",
                              "DJ",
                              "GL",
                              "GR",
                              "GJ",
                              "HR",
                              "HD",
                              "IL",
                              "IS",
                              "IF",
                              "MM",
                              "MH",
                              "MS",
                              "NT",
                              "OT",
                              "PH",
                              "SM",
                              "SJ",
                              "SB",
                              "SV",
                              "TR",
                              "TM",
                              "TL",
                              "VS",
                              "VL",
                              "VN"
                            ]
                          }
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  }
                ]
              },
              "companyTaxId": {
                "type": "string"
              },
              "companyAddress": {
                "type": "string"
              },
              "companyCity": {
                "type": "string"
              },
              "companyPostalCode": {
                "type": "string"
              },
              "companyCountry": {
                "type": "string",
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW"
                ]
              },
              "companyReceiptsEnabled": {
                "type": "boolean",
                "description": "Shows whether this user has opted to use company details for receipts."
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userReadV1_1": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "operatorId"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "email": {
                "type": "string",
                "format": "email"
              },
              "emailVerified": {
                "type": "string",
                "description": "ISO 8601 formatted date",
                "readOnly": true,
                "nullable": true,
                "example": "2022-11-12 12:00:00"
              },
              "requirePasswordReset": {
                "type": "boolean",
                "description": "Sets a requirement for the user to set a new password when they next open the app. After a new password is set, this option resets automatically."
              },
              "firstName": {
                "type": "string",
                "nullable": true
              },
              "middleName": {
                "type": "string",
                "nullable": true
              },
              "lastName": {
                "type": "string",
                "nullable": true
              },
              "phone": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true
              },
              "state": {
                "type": "string",
                "nullable": true
              },
              "city": {
                "type": "string",
                "nullable": true
              },
              "postCode": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true
              },
              "vehicleNo": {
                "type": "string",
                "nullable": true
              },
              "personalId": {
                "type": "string"
              },
              "companyName": {
                "type": "string",
                "nullable": true
              },
              "locale": {
                "type": "string",
                "nullable": true,
                "example": "en-GB"
              },
              "balance": {
                "type": "number",
                "multipleOf": 0.001,
                "description": "The current amount in the balance of the user (in the base currency). Would not be returned in the response if the user is related to a Partner without \"addUserBalance\" permission"
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "description": "* `enabled` Enabled - the user is allowed to use the system\n* `disabled` Disabled - the user is NOT allowed to use the system\n"
              },
              "userGroupIds": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "externalId": {
                "type": "string",
                "nullable": true,
                "readOnly": true,
                "description": "Third party identifier of the user"
              },
              "subscriptionId": {
                "type": "integer",
                "nullable": true,
                "readOnly": true,
                "description": "user subscription id"
              },
              "options": {
                "type": "object",
                "properties": {
                  "sessionsAllowed": {
                    "type": "string",
                    "description": "Determine the number of sessions a user could start - single or multiple simultaneous sessions, or whether the user could start simultaneous sessions with several Id Tags.",
                    "enum": [
                      "single_session",
                      "multiple_simultaneous_sessions_per_idtag",
                      "simultaneous_use_of_idtags",
                      "multiple_simultaneous_sessions_remotely_and_idtags"
                    ]
                  }
                }
              },
              "password": {
                "type": "string",
                "readOnly": true,
                "nullable": true,
                "description": "Returns the hashed password. This property is optional and can be enabled by request.\n"
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "lastActivityAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "nullable": true,
                "description": "When the user was last active"
              },
              "lastActivitySource": {
                "type": "string",
                "readOnly": true,
                "nullable": true,
                "enum": [
                  "device_activity",
                  "device_logout",
                  "id_tag_authorization",
                  "transaction",
                  "registration"
                ],
                "description": "What triggered the last activity update"
              },
              "createdBy": {
                "type": "string",
                "readOnly": true,
                "description": "The return values are `admin:` , `partner:` - the value after the colon is the respective ID of the admin account or the partner. `token:` - the value after the colon is the admin token. `mobile_api` - means that the User registered themselves through the mobile app."
              },
              "receiveNewsAndPromotions": {
                "type": "boolean",
                "description": "Shows if the user has opted into receiving news and promotions."
              },
              "skipPreAuthorization": {
                "type": "boolean",
                "description": "When enabled, the user can start charging sessions without a pre-authorization hold on their payment method."
              },
              "skipUnpaidSessionCheck": {
                "type": "boolean",
                "description": "When enabled, this user can start new sessions even if they have unpaid sessions or unpaid post-paid subscription fees."
              },
              "partnerInvites": {
                "type": "array",
                "description": "It's a part of the response only if request is called with `include.partnerInvites` query parameter.",
                "readOnly": true,
                "nullable": true,
                "items": {
                  "type": "object",
                  "description": "Partner Invite",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "partnerId": {
                      "type": "integer"
                    },
                    "sendViaEmail": {
                      "type": "boolean"
                    },
                    "email": {
                      "type": "string",
                      "description": "Email used to identify and associate the invitee. May be null when the invite was created without an email.",
                      "format": "email",
                      "nullable": true
                    },
                    "language": {
                      "type": "string",
                      "description": "The language of the e-mail sent to the invitee. If none selected, the default end-users language will be used."
                    },
                    "acceptUrl": {
                      "type": "string",
                      "format": "url",
                      "readOnly": true,
                      "nullable": true
                    },
                    "options": {
                      "type": "object",
                      "properties": {
                        "allowCorporateAccountBilling": {
                          "type": "boolean",
                          "default": false
                        },
                        "limitCorporateAccountBillingToPartnerChargePoints": {
                          "type": "boolean",
                          "description": "Whether the assigned corporate billing policy restricts corporate billing to the partner's charge points.",
                          "default": false
                        },
                        "allowAccessToPrivateChargePoints": {
                          "type": "boolean",
                          "default": false
                        },
                        "corporateBillingLimit": {
                          "type": "number",
                          "format": "decimal",
                          "nullable": true,
                          "minimum": 0,
                          "description": "The individual corporate billing limit amount from the assigned corporate billing policy. Must be a positive decimal when set. When `null`, no individual limit is applied. Only applicable when `allowCorporateAccountBilling` is `true`."
                        }
                      }
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "pending",
                        "sent",
                        "accepted"
                      ],
                      "readOnly": true
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time",
                      "readOnly": true
                    },
                    "acceptedAt": {
                      "type": "string",
                      "format": "date-time",
                      "readOnly": true,
                      "nullable": true
                    },
                    "userId": {
                      "type": "integer",
                      "readOnly": true,
                      "nullable": true
                    },
                    "lastUpdatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO 8601 formatted date",
                      "readOnly": true
                    }
                  },
                  "required": [
                    "id",
                    "partnerId",
                    "status",
                    "createdAt"
                  ]
                }
              },
              "bankDetails": {
                "type": "object",
                "properties": {
                  "bankIban": {
                    "type": "string",
                    "nullable": true,
                    "description": "IBAN of the bank account."
                  },
                  "bankCode": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                  },
                  "bankAccountNumber": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank account number."
                  },
                  "bankAccountType": {
                    "type": "string",
                    "nullable": true,
                    "description": "Type of the bank account."
                  },
                  "bankBic": {
                    "type": "string",
                    "nullable": true,
                    "description": "BIC/SWIFT code of the bank."
                  }
                }
              },
              "externalAppData": {
                "example": {
                  "externalCustomerId": "uuid"
                },
                "description": "The externalAppData field is an object designed to hold additional data related to external integrations.\nThis object can contain the following keys, which are currently supported:\n\n- `externalCustomerId`: A string representing the customer ID of the user in an external payment provider integration. This ID is used to link the user's account within the system to their corresponding account in the external payment provider.\n\nIf no information is available, the externalAppData object will be null. It's a part of the response only if request is called with `include.externalAppData` query parameter.\n",
                "type": "object",
                "nullable": true,
                "additionalProperties": true
              },
              "invoiceDetails": {
                "description": "The user's invoice details for invoice generation. The response structure varies depending on the operator's invoice integration type.\nIt's a part of the response only if request is called with `include[]=invoiceDetails` query parameter.\nReturns `null` if the user has no invoice details or the operator has no invoice integration configured.\n",
                "readOnly": true,
                "type": "object",
                "nullable": true,
                "anyOf": [
                  {
                    "type": "object",
                    "title": "Built-in invoicing",
                    "description": "Built-in invoice processor",
                    "properties": {
                      "requireInvoice": {
                        "type": "boolean",
                        "default": false,
                        "description": "Whether invoice is required for this user. Note: If the operator has 'Always collect Invoice Details' enabled in their invoice integration settings, this field will always be true regardless of the request payload value."
                      },
                      "requireInvoiceLastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date. The date is automatically updated when the value of the \"requireInvoice\" field changes.",
                        "readOnly": true,
                        "nullable": true
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "requireInvoiceEnforcedBy": {
                        "type": "string",
                        "enum": [
                          "operator_setting",
                          "user_request"
                        ],
                        "description": "Indicates the source that determined the final requireInvoice value. Only present when operator setting overrides user request.",
                        "nullable": true
                      },
                      "originalRequestValue": {
                        "type": "boolean",
                        "description": "The originally requested requireInvoice value when operator override occurred. Only present when requireInvoiceEnforcedBy is 'operator_setting'.",
                        "nullable": true
                      },
                      "invoiceType": {
                        "type": "string",
                        "enum": [
                          "individual",
                          "company"
                        ],
                        "nullable": true
                      },
                      "individualName": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualPersonalId": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyName": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyRegNo": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxAdministrationOfficeName": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "region": {
                        "type": "string",
                        "nullable": true,
                        "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
                      },
                      "state": {
                        "description": "When the selected country is one of US, AU, CA, UM or RO",
                        "anyOf": [
                          {
                            "title": "US State",
                            "description": "When the country is US.",
                            "type": "string",
                            "enum": [
                              "AL",
                              "AK",
                              "AS",
                              "AZ",
                              "AR",
                              "CA",
                              "CO",
                              "CT",
                              "DE",
                              "DC",
                              "FM",
                              "FL",
                              "GA",
                              "GU",
                              "HI",
                              "ID",
                              "IL",
                              "IN",
                              "IA",
                              "KS",
                              "KY",
                              "LA",
                              "ME",
                              "MH",
                              "MD",
                              "MA",
                              "MI",
                              "MN",
                              "MS",
                              "MO",
                              "MT",
                              "NE",
                              "NV",
                              "NH",
                              "NJ",
                              "NM",
                              "NY",
                              "NC",
                              "ND",
                              "MP",
                              "OH",
                              "OK",
                              "OR",
                              "PW",
                              "PA",
                              "PR",
                              "RI",
                              "SC",
                              "SD",
                              "TN",
                              "TX",
                              "UT",
                              "VT",
                              "VI",
                              "VA",
                              "WA",
                              "WV",
                              "WI",
                              "WY"
                            ]
                          },
                          {
                            "title": "Australian State",
                            "description": "When the country is AU.",
                            "type": "string",
                            "enum": [
                              "NSW",
                              "VIC",
                              "QLD",
                              "WA",
                              "SA",
                              "TAS",
                              "ACT",
                              "NT",
                              "JBT",
                              "CX",
                              "NF",
                              "CC",
                              "AQ",
                              "CSI",
                              "ACI",
                              "HM"
                            ]
                          },
                          {
                            "title": "Canadian Province",
                            "description": "When the country is CA.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "BC",
                              "MB",
                              "NB",
                              "NL",
                              "NT",
                              "NS",
                              "NU",
                              "ON",
                              "PE",
                              "QC",
                              "SK",
                              "YT"
                            ]
                          },
                          {
                            "title": "US Minor Outlying Islands Territory",
                            "description": "When the country is UM.",
                            "type": "string",
                            "enum": [
                              "81",
                              "84",
                              "85",
                              "67",
                              "89",
                              "71",
                              "76",
                              "95",
                              "79"
                            ]
                          },
                          {
                            "title": "Romanian County",
                            "description": "When the country is RO.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "AR",
                              "AG",
                              "BC",
                              "BH",
                              "BN",
                              "BT",
                              "BV",
                              "BR",
                              "B",
                              "BZ",
                              "CL",
                              "CS",
                              "CT",
                              "CV",
                              "DB",
                              "DJ",
                              "GL",
                              "GR",
                              "GJ",
                              "HR",
                              "HD",
                              "IL",
                              "IS",
                              "IF",
                              "MM",
                              "MH",
                              "MS",
                              "NT",
                              "OT",
                              "PH",
                              "SM",
                              "SJ",
                              "SB",
                              "SV",
                              "TR",
                              "TM",
                              "TL",
                              "VS",
                              "VL",
                              "VN"
                            ]
                          }
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "required": [
                      "requireInvoice",
                      "invoiceType"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "title": "Cardcom Invoice Manager",
                    "description": "Invoice processor - Cardcom",
                    "properties": {
                      "invoiceRequired": {
                        "type": "boolean",
                        "default": false
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "clientType": {
                        "type": "string",
                        "enum": [
                          "individual",
                          "company"
                        ],
                        "nullable": true
                      },
                      "individual": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "nullable": true
                          },
                          "email": {
                            "type": "string",
                            "nullable": true
                          },
                          "mobilePhoneNumber": {
                            "type": "string",
                            "nullable": true
                          },
                          "taxId": {
                            "type": "string",
                            "nullable": true
                          },
                          "country": {
                            "type": "string",
                            "nullable": true,
                            "enum": [
                              "AF",
                              "AX",
                              "AL",
                              "DZ",
                              "AS",
                              "AD",
                              "AO",
                              "AI",
                              "AQ",
                              "AG",
                              "AR",
                              "AM",
                              "AW",
                              "AU",
                              "AT",
                              "AZ",
                              "BS",
                              "BH",
                              "BD",
                              "BB",
                              "BY",
                              "BE",
                              "BZ",
                              "BJ",
                              "BM",
                              "BT",
                              "BO",
                              "BQ",
                              "BA",
                              "BW",
                              "BV",
                              "BR",
                              "IO",
                              "BN",
                              "BG",
                              "BF",
                              "BI",
                              "KH",
                              "CM",
                              "CA",
                              "CV",
                              "KY",
                              "CF",
                              "TD",
                              "CL",
                              "CN",
                              "CX",
                              "CC",
                              "CO",
                              "KM",
                              "CG",
                              "CD",
                              "CK",
                              "CR",
                              "CI",
                              "HR",
                              "CU",
                              "CW",
                              "CY",
                              "CZ",
                              "DK",
                              "DJ",
                              "DM",
                              "DO",
                              "EC",
                              "EG",
                              "SV",
                              "GQ",
                              "ER",
                              "EE",
                              "ET",
                              "FK",
                              "FO",
                              "FJ",
                              "FI",
                              "FR",
                              "GF",
                              "PF",
                              "TF",
                              "GA",
                              "GM",
                              "GE",
                              "DE",
                              "GH",
                              "GI",
                              "GR",
                              "GL",
                              "GD",
                              "GP",
                              "GU",
                              "GT",
                              "GG",
                              "GN",
                              "GW",
                              "GY",
                              "HT",
                              "HM",
                              "VA",
                              "HN",
                              "HK",
                              "HU",
                              "IS",
                              "IN",
                              "ID",
                              "IR",
                              "IQ",
                              "IE",
                              "IM",
                              "IL",
                              "IT",
                              "JM",
                              "JP",
                              "JE",
                              "JO",
                              "KZ",
                              "KE",
                              "KI",
                              "KP",
                              "KR",
                              "XK",
                              "KW",
                              "KG",
                              "LA",
                              "LV",
                              "LB",
                              "LS",
                              "LR",
                              "LY",
                              "LI",
                              "LT",
                              "LU",
                              "MO",
                              "MK",
                              "MG",
                              "MW",
                              "MY",
                              "MV",
                              "ML",
                              "MT",
                              "MH",
                              "MQ",
                              "MR",
                              "MU",
                              "YT",
                              "MX",
                              "FM",
                              "MD",
                              "MC",
                              "MN",
                              "ME",
                              "MS",
                              "MA",
                              "MZ",
                              "MM",
                              "NA",
                              "NR",
                              "NP",
                              "NL",
                              "NC",
                              "NZ",
                              "NI",
                              "NE",
                              "NG",
                              "NU",
                              "NF",
                              "MP",
                              "NO",
                              "OM",
                              "PK",
                              "PW",
                              "PS",
                              "PA",
                              "PG",
                              "PY",
                              "PE",
                              "PH",
                              "PN",
                              "PL",
                              "PT",
                              "PR",
                              "QA",
                              "RE",
                              "RO",
                              "RU",
                              "RW",
                              "BL",
                              "SH",
                              "KN",
                              "LC",
                              "MF",
                              "PM",
                              "VC",
                              "WS",
                              "SM",
                              "ST",
                              "SA",
                              "SN",
                              "RS",
                              "SC",
                              "SL",
                              "SG",
                              "SX",
                              "SK",
                              "SI",
                              "SB",
                              "SO",
                              "ZA",
                              "GS",
                              "SS",
                              "ES",
                              "LK",
                              "SD",
                              "SR",
                              "SJ",
                              "SZ",
                              "SE",
                              "CH",
                              "SY",
                              "TW",
                              "TJ",
                              "TZ",
                              "TH",
                              "TL",
                              "TG",
                              "TK",
                              "TO",
                              "TT",
                              "TN",
                              "TR",
                              "TM",
                              "TC",
                              "TV",
                              "UG",
                              "UA",
                              "AE",
                              "GB",
                              "US",
                              "UM",
                              "UY",
                              "UZ",
                              "VU",
                              "VE",
                              "VN",
                              "VG",
                              "VI",
                              "WF",
                              "EH",
                              "YE",
                              "ZM",
                              "ZW"
                            ]
                          },
                          "city": {
                            "type": "string",
                            "nullable": true
                          },
                          "postcode": {
                            "type": "string",
                            "nullable": true
                          },
                          "address": {
                            "type": "string",
                            "nullable": true
                          }
                        }
                      },
                      "company": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "nullable": true
                          },
                          "email": {
                            "type": "string",
                            "nullable": true
                          },
                          "mobilePhoneNumber": {
                            "type": "string",
                            "nullable": true
                          },
                          "landlinePhoneNumber": {
                            "type": "string",
                            "nullable": true
                          },
                          "taxId": {
                            "type": "string",
                            "nullable": true
                          },
                          "country": {
                            "type": "string",
                            "nullable": true,
                            "enum": [
                              "AF",
                              "AX",
                              "AL",
                              "DZ",
                              "AS",
                              "AD",
                              "AO",
                              "AI",
                              "AQ",
                              "AG",
                              "AR",
                              "AM",
                              "AW",
                              "AU",
                              "AT",
                              "AZ",
                              "BS",
                              "BH",
                              "BD",
                              "BB",
                              "BY",
                              "BE",
                              "BZ",
                              "BJ",
                              "BM",
                              "BT",
                              "BO",
                              "BQ",
                              "BA",
                              "BW",
                              "BV",
                              "BR",
                              "IO",
                              "BN",
                              "BG",
                              "BF",
                              "BI",
                              "KH",
                              "CM",
                              "CA",
                              "CV",
                              "KY",
                              "CF",
                              "TD",
                              "CL",
                              "CN",
                              "CX",
                              "CC",
                              "CO",
                              "KM",
                              "CG",
                              "CD",
                              "CK",
                              "CR",
                              "CI",
                              "HR",
                              "CU",
                              "CW",
                              "CY",
                              "CZ",
                              "DK",
                              "DJ",
                              "DM",
                              "DO",
                              "EC",
                              "EG",
                              "SV",
                              "GQ",
                              "ER",
                              "EE",
                              "ET",
                              "FK",
                              "FO",
                              "FJ",
                              "FI",
                              "FR",
                              "GF",
                              "PF",
                              "TF",
                              "GA",
                              "GM",
                              "GE",
                              "DE",
                              "GH",
                              "GI",
                              "GR",
                              "GL",
                              "GD",
                              "GP",
                              "GU",
                              "GT",
                              "GG",
                              "GN",
                              "GW",
                              "GY",
                              "HT",
                              "HM",
                              "VA",
                              "HN",
                              "HK",
                              "HU",
                              "IS",
                              "IN",
                              "ID",
                              "IR",
                              "IQ",
                              "IE",
                              "IM",
                              "IL",
                              "IT",
                              "JM",
                              "JP",
                              "JE",
                              "JO",
                              "KZ",
                              "KE",
                              "KI",
                              "KP",
                              "KR",
                              "XK",
                              "KW",
                              "KG",
                              "LA",
                              "LV",
                              "LB",
                              "LS",
                              "LR",
                              "LY",
                              "LI",
                              "LT",
                              "LU",
                              "MO",
                              "MK",
                              "MG",
                              "MW",
                              "MY",
                              "MV",
                              "ML",
                              "MT",
                              "MH",
                              "MQ",
                              "MR",
                              "MU",
                              "YT",
                              "MX",
                              "FM",
                              "MD",
                              "MC",
                              "MN",
                              "ME",
                              "MS",
                              "MA",
                              "MZ",
                              "MM",
                              "NA",
                              "NR",
                              "NP",
                              "NL",
                              "NC",
                              "NZ",
                              "NI",
                              "NE",
                              "NG",
                              "NU",
                              "NF",
                              "MP",
                              "NO",
                              "OM",
                              "PK",
                              "PW",
                              "PS",
                              "PA",
                              "PG",
                              "PY",
                              "PE",
                              "PH",
                              "PN",
                              "PL",
                              "PT",
                              "PR",
                              "QA",
                              "RE",
                              "RO",
                              "RU",
                              "RW",
                              "BL",
                              "SH",
                              "KN",
                              "LC",
                              "MF",
                              "PM",
                              "VC",
                              "WS",
                              "SM",
                              "ST",
                              "SA",
                              "SN",
                              "RS",
                              "SC",
                              "SL",
                              "SG",
                              "SX",
                              "SK",
                              "SI",
                              "SB",
                              "SO",
                              "ZA",
                              "GS",
                              "SS",
                              "ES",
                              "LK",
                              "SD",
                              "SR",
                              "SJ",
                              "SZ",
                              "SE",
                              "CH",
                              "SY",
                              "TW",
                              "TJ",
                              "TZ",
                              "TH",
                              "TL",
                              "TG",
                              "TK",
                              "TO",
                              "TT",
                              "TN",
                              "TR",
                              "TM",
                              "TC",
                              "TV",
                              "UG",
                              "UA",
                              "AE",
                              "GB",
                              "US",
                              "UM",
                              "UY",
                              "UZ",
                              "VU",
                              "VE",
                              "VN",
                              "VG",
                              "VI",
                              "WF",
                              "EH",
                              "YE",
                              "ZM",
                              "ZW"
                            ]
                          },
                          "city": {
                            "type": "string",
                            "nullable": true
                          },
                          "postcode": {
                            "type": "string",
                            "nullable": true
                          },
                          "address": {
                            "type": "string",
                            "nullable": true
                          }
                        }
                      }
                    },
                    "required": [
                      "invoiceRequired",
                      "clientType",
                      "individual",
                      "company"
                    ]
                  },
                  {
                    "type": "object",
                    "title": "SoftOne Invoice Manager",
                    "description": "Invoice processor - SoftOne",
                    "properties": {
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "firstName": {
                        "type": "string",
                        "nullable": true
                      },
                      "lastName": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postcode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Ecpay Invoice Manager",
                    "description": "Invoice processor - Ecpay",
                    "properties": {
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "invoiceType": {
                        "type": "string",
                        "enum": [
                          "EInvoice",
                          "Company",
                          "Donation"
                        ]
                      },
                      "carrierType": {
                        "type": "string",
                        "enum": [
                          "Mobile",
                          "Citizen",
                          "GreenWorld"
                        ],
                        "nullable": true
                      },
                      "loveCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "mobileBarCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "citizenId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyId": {
                        "type": "string",
                        "nullable": true
                      },
                      "name": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postcode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Avalara e-invoicing",
                    "description": "Avalara e-invoicing processor.\n\nCarries the same fields as the platform's native invoice integration, plus the two Italian SDI buyer\nidentifiers. Those two are only present when the operator's Avalara integration has an Italian mandate\nand the corresponding field is enabled, and they only carry a value for company customers.\n\nWhen both identifiers are collected and enabled, an Italian company (`invoiceType` is `company` and\n`country` is `IT`) must supply at least one of `recipientCode` and `recipientCertifiedEmail` on write.\nThis either-or requirement is conditional on the invoice type and the country, so it cannot be\nexpressed per field in this schema.\n",
                    "required": [
                      "requireInvoice",
                      "invoiceType"
                    ],
                    "properties": {
                      "recipientCode": {
                        "type": "string",
                        "minLength": 7,
                        "maxLength": 7,
                        "pattern": "^[A-Za-z0-9]{7}$",
                        "description": "Italian SDI recipient code of the buyer. Exactly seven alphanumeric characters, stored uppercased.\nOmitted for individual customers and for company customers that have not supplied it.\n",
                        "example": "ABC1234"
                      },
                      "recipientCertifiedEmail": {
                        "type": "string",
                        "format": "email",
                        "description": "Certified electronic mail (PEC) address of the buyer. Omitted for individual customers and for\ncompany customers that have not supplied it.\n",
                        "example": "buyer@pec.example.com"
                      },
                      "requireInvoice": {
                        "type": "boolean",
                        "default": false,
                        "description": "Whether invoice is required for this user. Note: If the operator has 'Always collect Invoice Details' enabled in their invoice integration settings, this field will always be true regardless of the request payload value."
                      },
                      "requireInvoiceLastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date. The date is automatically updated when the value of the \"requireInvoice\" field changes.",
                        "readOnly": true,
                        "nullable": true
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "requireInvoiceEnforcedBy": {
                        "type": "string",
                        "enum": [
                          "operator_setting",
                          "user_request"
                        ],
                        "description": "Indicates the source that determined the final requireInvoice value. Only present when operator setting overrides user request.",
                        "nullable": true
                      },
                      "originalRequestValue": {
                        "type": "boolean",
                        "description": "The originally requested requireInvoice value when operator override occurred. Only present when requireInvoiceEnforcedBy is 'operator_setting'.",
                        "nullable": true
                      },
                      "invoiceType": {
                        "type": "string",
                        "enum": [
                          "individual",
                          "company"
                        ],
                        "nullable": true
                      },
                      "individualName": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualPersonalId": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyName": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyRegNo": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxAdministrationOfficeName": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "region": {
                        "type": "string",
                        "nullable": true,
                        "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
                      },
                      "state": {
                        "description": "When the selected country is one of US, AU, CA, UM or RO",
                        "anyOf": [
                          {
                            "title": "US State",
                            "description": "When the country is US.",
                            "type": "string",
                            "enum": [
                              "AL",
                              "AK",
                              "AS",
                              "AZ",
                              "AR",
                              "CA",
                              "CO",
                              "CT",
                              "DE",
                              "DC",
                              "FM",
                              "FL",
                              "GA",
                              "GU",
                              "HI",
                              "ID",
                              "IL",
                              "IN",
                              "IA",
                              "KS",
                              "KY",
                              "LA",
                              "ME",
                              "MH",
                              "MD",
                              "MA",
                              "MI",
                              "MN",
                              "MS",
                              "MO",
                              "MT",
                              "NE",
                              "NV",
                              "NH",
                              "NJ",
                              "NM",
                              "NY",
                              "NC",
                              "ND",
                              "MP",
                              "OH",
                              "OK",
                              "OR",
                              "PW",
                              "PA",
                              "PR",
                              "RI",
                              "SC",
                              "SD",
                              "TN",
                              "TX",
                              "UT",
                              "VT",
                              "VI",
                              "VA",
                              "WA",
                              "WV",
                              "WI",
                              "WY"
                            ]
                          },
                          {
                            "title": "Australian State",
                            "description": "When the country is AU.",
                            "type": "string",
                            "enum": [
                              "NSW",
                              "VIC",
                              "QLD",
                              "WA",
                              "SA",
                              "TAS",
                              "ACT",
                              "NT",
                              "JBT",
                              "CX",
                              "NF",
                              "CC",
                              "AQ",
                              "CSI",
                              "ACI",
                              "HM"
                            ]
                          },
                          {
                            "title": "Canadian Province",
                            "description": "When the country is CA.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "BC",
                              "MB",
                              "NB",
                              "NL",
                              "NT",
                              "NS",
                              "NU",
                              "ON",
                              "PE",
                              "QC",
                              "SK",
                              "YT"
                            ]
                          },
                          {
                            "title": "US Minor Outlying Islands Territory",
                            "description": "When the country is UM.",
                            "type": "string",
                            "enum": [
                              "81",
                              "84",
                              "85",
                              "67",
                              "89",
                              "71",
                              "76",
                              "95",
                              "79"
                            ]
                          },
                          {
                            "title": "Romanian County",
                            "description": "When the country is RO.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "AR",
                              "AG",
                              "BC",
                              "BH",
                              "BN",
                              "BT",
                              "BV",
                              "BR",
                              "B",
                              "BZ",
                              "CL",
                              "CS",
                              "CT",
                              "CV",
                              "DB",
                              "DJ",
                              "GL",
                              "GR",
                              "GJ",
                              "HR",
                              "HD",
                              "IL",
                              "IS",
                              "IF",
                              "MM",
                              "MH",
                              "MS",
                              "NT",
                              "OT",
                              "PH",
                              "SM",
                              "SJ",
                              "SB",
                              "SV",
                              "TR",
                              "TM",
                              "TL",
                              "VS",
                              "VL",
                              "VN"
                            ]
                          }
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  }
                ]
              },
              "companyTaxId": {
                "type": "string"
              },
              "companyAddress": {
                "type": "string"
              },
              "companyCity": {
                "type": "string"
              },
              "companyPostalCode": {
                "type": "string"
              },
              "companyCountry": {
                "type": "string",
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW"
                ]
              },
              "companyReceiptsEnabled": {
                "type": "boolean",
                "description": "Shows whether this user has opted to use company details for receipts."
              },
              "amountDue": {
                "type": "number",
                "format": "decimal",
                "description": "The total amount that the user owes by the current moment."
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userDeleteV1_1": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "409": {
      "schema": {
        "type": "object",
        "required": [
          "message",
          "reason"
        ],
        "properties": {
          "message": {
            "type": "string",
            "description": "Human-readable explanation of why the deletion is blocked."
          },
          "reason": {
            "type": "string",
            "description": "Machine-readable code describing why the deletion is blocked.\n\nAllowed values:\n- `active_session` - The user has an ongoing or unknown-status charging session.\n- `unpaid_session` - The user has a finished session that is not yet paid.\n- `billing_in_progress` - The user has a finished session whose billing is still in progress.\n- `payment_in_progress` - The user has a payment or payment method setup in progress.\n- `payment_method_cooldown` - One of the user's payment methods is in a removal cooldown period.\n- `unsettled_subscription_obligations` - The user has unsettled subscription obligations.\n- `unbilled_subscription_usage` - The user has an active subscription with unbilled usage.\n",
            "enum": [
              "active_session",
              "unpaid_session",
              "billing_in_progress",
              "payment_in_progress",
              "payment_method_cooldown",
              "unsettled_subscription_obligations",
              "unbilled_subscription_usage"
            ]
          },
          "retryAt": {
            "type": "string",
            "format": "date-time",
            "description": "When set, the earliest time at which the deletion can be retried. Present only for a payment method removal cooldown; omitted otherwise."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userUpdateV1_1": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "operatorId"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "email": {
                "type": "string",
                "format": "email"
              },
              "emailVerified": {
                "type": "string",
                "description": "ISO 8601 formatted date",
                "readOnly": true,
                "nullable": true,
                "example": "2022-11-12 12:00:00"
              },
              "requirePasswordReset": {
                "type": "boolean",
                "description": "Sets a requirement for the user to set a new password when they next open the app. After a new password is set, this option resets automatically."
              },
              "firstName": {
                "type": "string",
                "nullable": true
              },
              "middleName": {
                "type": "string",
                "nullable": true
              },
              "lastName": {
                "type": "string",
                "nullable": true
              },
              "phone": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true
              },
              "state": {
                "type": "string",
                "nullable": true
              },
              "city": {
                "type": "string",
                "nullable": true
              },
              "postCode": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true
              },
              "vehicleNo": {
                "type": "string",
                "nullable": true
              },
              "personalId": {
                "type": "string"
              },
              "companyName": {
                "type": "string",
                "nullable": true
              },
              "locale": {
                "type": "string",
                "nullable": true,
                "example": "en-GB"
              },
              "balance": {
                "type": "number",
                "multipleOf": 0.001,
                "description": "The current amount in the balance of the user (in the base currency). Would not be returned in the response if the user is related to a Partner without \"addUserBalance\" permission"
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "description": "* `enabled` Enabled - the user is allowed to use the system\n* `disabled` Disabled - the user is NOT allowed to use the system\n"
              },
              "userGroupIds": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "externalId": {
                "type": "string",
                "nullable": true,
                "readOnly": true,
                "description": "Third party identifier of the user"
              },
              "subscriptionId": {
                "type": "integer",
                "nullable": true,
                "readOnly": true,
                "description": "user subscription id"
              },
              "options": {
                "type": "object",
                "properties": {
                  "sessionsAllowed": {
                    "type": "string",
                    "description": "Determine the number of sessions a user could start - single or multiple simultaneous sessions, or whether the user could start simultaneous sessions with several Id Tags.",
                    "enum": [
                      "single_session",
                      "multiple_simultaneous_sessions_per_idtag",
                      "simultaneous_use_of_idtags",
                      "multiple_simultaneous_sessions_remotely_and_idtags"
                    ]
                  }
                }
              },
              "password": {
                "type": "string",
                "readOnly": true,
                "nullable": true,
                "description": "Returns the hashed password. This property is optional and can be enabled by request.\n"
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "lastActivityAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "nullable": true,
                "description": "When the user was last active"
              },
              "lastActivitySource": {
                "type": "string",
                "readOnly": true,
                "nullable": true,
                "enum": [
                  "device_activity",
                  "device_logout",
                  "id_tag_authorization",
                  "transaction",
                  "registration"
                ],
                "description": "What triggered the last activity update"
              },
              "createdBy": {
                "type": "string",
                "readOnly": true,
                "description": "The return values are `admin:` , `partner:` - the value after the colon is the respective ID of the admin account or the partner. `token:` - the value after the colon is the admin token. `mobile_api` - means that the User registered themselves through the mobile app."
              },
              "receiveNewsAndPromotions": {
                "type": "boolean",
                "description": "Shows if the user has opted into receiving news and promotions."
              },
              "skipPreAuthorization": {
                "type": "boolean",
                "description": "When enabled, the user can start charging sessions without a pre-authorization hold on their payment method."
              },
              "skipUnpaidSessionCheck": {
                "type": "boolean",
                "description": "When enabled, this user can start new sessions even if they have unpaid sessions or unpaid post-paid subscription fees."
              },
              "partnerInvites": {
                "type": "array",
                "description": "It's a part of the response only if request is called with `include.partnerInvites` query parameter.",
                "readOnly": true,
                "nullable": true,
                "items": {
                  "type": "object",
                  "description": "Partner Invite",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "readOnly": true
                    },
                    "partnerId": {
                      "type": "integer"
                    },
                    "sendViaEmail": {
                      "type": "boolean"
                    },
                    "email": {
                      "type": "string",
                      "description": "Email used to identify and associate the invitee. May be null when the invite was created without an email.",
                      "format": "email",
                      "nullable": true
                    },
                    "language": {
                      "type": "string",
                      "description": "The language of the e-mail sent to the invitee. If none selected, the default end-users language will be used."
                    },
                    "acceptUrl": {
                      "type": "string",
                      "format": "url",
                      "readOnly": true,
                      "nullable": true
                    },
                    "options": {
                      "type": "object",
                      "properties": {
                        "allowCorporateAccountBilling": {
                          "type": "boolean",
                          "default": false
                        },
                        "limitCorporateAccountBillingToPartnerChargePoints": {
                          "type": "boolean",
                          "description": "Whether the assigned corporate billing policy restricts corporate billing to the partner's charge points.",
                          "default": false
                        },
                        "allowAccessToPrivateChargePoints": {
                          "type": "boolean",
                          "default": false
                        },
                        "corporateBillingLimit": {
                          "type": "number",
                          "format": "decimal",
                          "nullable": true,
                          "minimum": 0,
                          "description": "The individual corporate billing limit amount from the assigned corporate billing policy. Must be a positive decimal when set. When `null`, no individual limit is applied. Only applicable when `allowCorporateAccountBilling` is `true`."
                        }
                      }
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "pending",
                        "sent",
                        "accepted"
                      ],
                      "readOnly": true
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time",
                      "readOnly": true
                    },
                    "acceptedAt": {
                      "type": "string",
                      "format": "date-time",
                      "readOnly": true,
                      "nullable": true
                    },
                    "userId": {
                      "type": "integer",
                      "readOnly": true,
                      "nullable": true
                    },
                    "lastUpdatedAt": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO 8601 formatted date",
                      "readOnly": true
                    }
                  },
                  "required": [
                    "id",
                    "partnerId",
                    "status",
                    "createdAt"
                  ]
                }
              },
              "bankDetails": {
                "type": "object",
                "properties": {
                  "bankIban": {
                    "type": "string",
                    "nullable": true,
                    "description": "IBAN of the bank account."
                  },
                  "bankCode": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank code assigned by a central bank, a bank supervisory body or a Bankers Association in the country."
                  },
                  "bankAccountNumber": {
                    "type": "string",
                    "nullable": true,
                    "description": "Bank account number."
                  },
                  "bankAccountType": {
                    "type": "string",
                    "nullable": true,
                    "description": "Type of the bank account."
                  },
                  "bankBic": {
                    "type": "string",
                    "nullable": true,
                    "description": "BIC/SWIFT code of the bank."
                  }
                }
              },
              "externalAppData": {
                "example": {
                  "externalCustomerId": "uuid"
                },
                "description": "The externalAppData field is an object designed to hold additional data related to external integrations.\nThis object can contain the following keys, which are currently supported:\n\n- `externalCustomerId`: A string representing the customer ID of the user in an external payment provider integration. This ID is used to link the user's account within the system to their corresponding account in the external payment provider.\n\nIf no information is available, the externalAppData object will be null. It's a part of the response only if request is called with `include.externalAppData` query parameter.\n",
                "type": "object",
                "nullable": true,
                "additionalProperties": true
              },
              "invoiceDetails": {
                "description": "The user's invoice details for invoice generation. The response structure varies depending on the operator's invoice integration type.\nIt's a part of the response only if request is called with `include[]=invoiceDetails` query parameter.\nReturns `null` if the user has no invoice details or the operator has no invoice integration configured.\n",
                "readOnly": true,
                "type": "object",
                "nullable": true,
                "anyOf": [
                  {
                    "type": "object",
                    "title": "Built-in invoicing",
                    "description": "Built-in invoice processor",
                    "properties": {
                      "requireInvoice": {
                        "type": "boolean",
                        "default": false,
                        "description": "Whether invoice is required for this user. Note: If the operator has 'Always collect Invoice Details' enabled in their invoice integration settings, this field will always be true regardless of the request payload value."
                      },
                      "requireInvoiceLastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date. The date is automatically updated when the value of the \"requireInvoice\" field changes.",
                        "readOnly": true,
                        "nullable": true
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "requireInvoiceEnforcedBy": {
                        "type": "string",
                        "enum": [
                          "operator_setting",
                          "user_request"
                        ],
                        "description": "Indicates the source that determined the final requireInvoice value. Only present when operator setting overrides user request.",
                        "nullable": true
                      },
                      "originalRequestValue": {
                        "type": "boolean",
                        "description": "The originally requested requireInvoice value when operator override occurred. Only present when requireInvoiceEnforcedBy is 'operator_setting'.",
                        "nullable": true
                      },
                      "invoiceType": {
                        "type": "string",
                        "enum": [
                          "individual",
                          "company"
                        ],
                        "nullable": true
                      },
                      "individualName": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualPersonalId": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyName": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyRegNo": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxAdministrationOfficeName": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "region": {
                        "type": "string",
                        "nullable": true,
                        "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
                      },
                      "state": {
                        "description": "When the selected country is one of US, AU, CA, UM or RO",
                        "anyOf": [
                          {
                            "title": "US State",
                            "description": "When the country is US.",
                            "type": "string",
                            "enum": [
                              "AL",
                              "AK",
                              "AS",
                              "AZ",
                              "AR",
                              "CA",
                              "CO",
                              "CT",
                              "DE",
                              "DC",
                              "FM",
                              "FL",
                              "GA",
                              "GU",
                              "HI",
                              "ID",
                              "IL",
                              "IN",
                              "IA",
                              "KS",
                              "KY",
                              "LA",
                              "ME",
                              "MH",
                              "MD",
                              "MA",
                              "MI",
                              "MN",
                              "MS",
                              "MO",
                              "MT",
                              "NE",
                              "NV",
                              "NH",
                              "NJ",
                              "NM",
                              "NY",
                              "NC",
                              "ND",
                              "MP",
                              "OH",
                              "OK",
                              "OR",
                              "PW",
                              "PA",
                              "PR",
                              "RI",
                              "SC",
                              "SD",
                              "TN",
                              "TX",
                              "UT",
                              "VT",
                              "VI",
                              "VA",
                              "WA",
                              "WV",
                              "WI",
                              "WY"
                            ]
                          },
                          {
                            "title": "Australian State",
                            "description": "When the country is AU.",
                            "type": "string",
                            "enum": [
                              "NSW",
                              "VIC",
                              "QLD",
                              "WA",
                              "SA",
                              "TAS",
                              "ACT",
                              "NT",
                              "JBT",
                              "CX",
                              "NF",
                              "CC",
                              "AQ",
                              "CSI",
                              "ACI",
                              "HM"
                            ]
                          },
                          {
                            "title": "Canadian Province",
                            "description": "When the country is CA.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "BC",
                              "MB",
                              "NB",
                              "NL",
                              "NT",
                              "NS",
                              "NU",
                              "ON",
                              "PE",
                              "QC",
                              "SK",
                              "YT"
                            ]
                          },
                          {
                            "title": "US Minor Outlying Islands Territory",
                            "description": "When the country is UM.",
                            "type": "string",
                            "enum": [
                              "81",
                              "84",
                              "85",
                              "67",
                              "89",
                              "71",
                              "76",
                              "95",
                              "79"
                            ]
                          },
                          {
                            "title": "Romanian County",
                            "description": "When the country is RO.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "AR",
                              "AG",
                              "BC",
                              "BH",
                              "BN",
                              "BT",
                              "BV",
                              "BR",
                              "B",
                              "BZ",
                              "CL",
                              "CS",
                              "CT",
                              "CV",
                              "DB",
                              "DJ",
                              "GL",
                              "GR",
                              "GJ",
                              "HR",
                              "HD",
                              "IL",
                              "IS",
                              "IF",
                              "MM",
                              "MH",
                              "MS",
                              "NT",
                              "OT",
                              "PH",
                              "SM",
                              "SJ",
                              "SB",
                              "SV",
                              "TR",
                              "TM",
                              "TL",
                              "VS",
                              "VL",
                              "VN"
                            ]
                          }
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "required": [
                      "requireInvoice",
                      "invoiceType"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "title": "Cardcom Invoice Manager",
                    "description": "Invoice processor - Cardcom",
                    "properties": {
                      "invoiceRequired": {
                        "type": "boolean",
                        "default": false
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "clientType": {
                        "type": "string",
                        "enum": [
                          "individual",
                          "company"
                        ],
                        "nullable": true
                      },
                      "individual": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "nullable": true
                          },
                          "email": {
                            "type": "string",
                            "nullable": true
                          },
                          "mobilePhoneNumber": {
                            "type": "string",
                            "nullable": true
                          },
                          "taxId": {
                            "type": "string",
                            "nullable": true
                          },
                          "country": {
                            "type": "string",
                            "nullable": true,
                            "enum": [
                              "AF",
                              "AX",
                              "AL",
                              "DZ",
                              "AS",
                              "AD",
                              "AO",
                              "AI",
                              "AQ",
                              "AG",
                              "AR",
                              "AM",
                              "AW",
                              "AU",
                              "AT",
                              "AZ",
                              "BS",
                              "BH",
                              "BD",
                              "BB",
                              "BY",
                              "BE",
                              "BZ",
                              "BJ",
                              "BM",
                              "BT",
                              "BO",
                              "BQ",
                              "BA",
                              "BW",
                              "BV",
                              "BR",
                              "IO",
                              "BN",
                              "BG",
                              "BF",
                              "BI",
                              "KH",
                              "CM",
                              "CA",
                              "CV",
                              "KY",
                              "CF",
                              "TD",
                              "CL",
                              "CN",
                              "CX",
                              "CC",
                              "CO",
                              "KM",
                              "CG",
                              "CD",
                              "CK",
                              "CR",
                              "CI",
                              "HR",
                              "CU",
                              "CW",
                              "CY",
                              "CZ",
                              "DK",
                              "DJ",
                              "DM",
                              "DO",
                              "EC",
                              "EG",
                              "SV",
                              "GQ",
                              "ER",
                              "EE",
                              "ET",
                              "FK",
                              "FO",
                              "FJ",
                              "FI",
                              "FR",
                              "GF",
                              "PF",
                              "TF",
                              "GA",
                              "GM",
                              "GE",
                              "DE",
                              "GH",
                              "GI",
                              "GR",
                              "GL",
                              "GD",
                              "GP",
                              "GU",
                              "GT",
                              "GG",
                              "GN",
                              "GW",
                              "GY",
                              "HT",
                              "HM",
                              "VA",
                              "HN",
                              "HK",
                              "HU",
                              "IS",
                              "IN",
                              "ID",
                              "IR",
                              "IQ",
                              "IE",
                              "IM",
                              "IL",
                              "IT",
                              "JM",
                              "JP",
                              "JE",
                              "JO",
                              "KZ",
                              "KE",
                              "KI",
                              "KP",
                              "KR",
                              "XK",
                              "KW",
                              "KG",
                              "LA",
                              "LV",
                              "LB",
                              "LS",
                              "LR",
                              "LY",
                              "LI",
                              "LT",
                              "LU",
                              "MO",
                              "MK",
                              "MG",
                              "MW",
                              "MY",
                              "MV",
                              "ML",
                              "MT",
                              "MH",
                              "MQ",
                              "MR",
                              "MU",
                              "YT",
                              "MX",
                              "FM",
                              "MD",
                              "MC",
                              "MN",
                              "ME",
                              "MS",
                              "MA",
                              "MZ",
                              "MM",
                              "NA",
                              "NR",
                              "NP",
                              "NL",
                              "NC",
                              "NZ",
                              "NI",
                              "NE",
                              "NG",
                              "NU",
                              "NF",
                              "MP",
                              "NO",
                              "OM",
                              "PK",
                              "PW",
                              "PS",
                              "PA",
                              "PG",
                              "PY",
                              "PE",
                              "PH",
                              "PN",
                              "PL",
                              "PT",
                              "PR",
                              "QA",
                              "RE",
                              "RO",
                              "RU",
                              "RW",
                              "BL",
                              "SH",
                              "KN",
                              "LC",
                              "MF",
                              "PM",
                              "VC",
                              "WS",
                              "SM",
                              "ST",
                              "SA",
                              "SN",
                              "RS",
                              "SC",
                              "SL",
                              "SG",
                              "SX",
                              "SK",
                              "SI",
                              "SB",
                              "SO",
                              "ZA",
                              "GS",
                              "SS",
                              "ES",
                              "LK",
                              "SD",
                              "SR",
                              "SJ",
                              "SZ",
                              "SE",
                              "CH",
                              "SY",
                              "TW",
                              "TJ",
                              "TZ",
                              "TH",
                              "TL",
                              "TG",
                              "TK",
                              "TO",
                              "TT",
                              "TN",
                              "TR",
                              "TM",
                              "TC",
                              "TV",
                              "UG",
                              "UA",
                              "AE",
                              "GB",
                              "US",
                              "UM",
                              "UY",
                              "UZ",
                              "VU",
                              "VE",
                              "VN",
                              "VG",
                              "VI",
                              "WF",
                              "EH",
                              "YE",
                              "ZM",
                              "ZW"
                            ]
                          },
                          "city": {
                            "type": "string",
                            "nullable": true
                          },
                          "postcode": {
                            "type": "string",
                            "nullable": true
                          },
                          "address": {
                            "type": "string",
                            "nullable": true
                          }
                        }
                      },
                      "company": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "nullable": true
                          },
                          "email": {
                            "type": "string",
                            "nullable": true
                          },
                          "mobilePhoneNumber": {
                            "type": "string",
                            "nullable": true
                          },
                          "landlinePhoneNumber": {
                            "type": "string",
                            "nullable": true
                          },
                          "taxId": {
                            "type": "string",
                            "nullable": true
                          },
                          "country": {
                            "type": "string",
                            "nullable": true,
                            "enum": [
                              "AF",
                              "AX",
                              "AL",
                              "DZ",
                              "AS",
                              "AD",
                              "AO",
                              "AI",
                              "AQ",
                              "AG",
                              "AR",
                              "AM",
                              "AW",
                              "AU",
                              "AT",
                              "AZ",
                              "BS",
                              "BH",
                              "BD",
                              "BB",
                              "BY",
                              "BE",
                              "BZ",
                              "BJ",
                              "BM",
                              "BT",
                              "BO",
                              "BQ",
                              "BA",
                              "BW",
                              "BV",
                              "BR",
                              "IO",
                              "BN",
                              "BG",
                              "BF",
                              "BI",
                              "KH",
                              "CM",
                              "CA",
                              "CV",
                              "KY",
                              "CF",
                              "TD",
                              "CL",
                              "CN",
                              "CX",
                              "CC",
                              "CO",
                              "KM",
                              "CG",
                              "CD",
                              "CK",
                              "CR",
                              "CI",
                              "HR",
                              "CU",
                              "CW",
                              "CY",
                              "CZ",
                              "DK",
                              "DJ",
                              "DM",
                              "DO",
                              "EC",
                              "EG",
                              "SV",
                              "GQ",
                              "ER",
                              "EE",
                              "ET",
                              "FK",
                              "FO",
                              "FJ",
                              "FI",
                              "FR",
                              "GF",
                              "PF",
                              "TF",
                              "GA",
                              "GM",
                              "GE",
                              "DE",
                              "GH",
                              "GI",
                              "GR",
                              "GL",
                              "GD",
                              "GP",
                              "GU",
                              "GT",
                              "GG",
                              "GN",
                              "GW",
                              "GY",
                              "HT",
                              "HM",
                              "VA",
                              "HN",
                              "HK",
                              "HU",
                              "IS",
                              "IN",
                              "ID",
                              "IR",
                              "IQ",
                              "IE",
                              "IM",
                              "IL",
                              "IT",
                              "JM",
                              "JP",
                              "JE",
                              "JO",
                              "KZ",
                              "KE",
                              "KI",
                              "KP",
                              "KR",
                              "XK",
                              "KW",
                              "KG",
                              "LA",
                              "LV",
                              "LB",
                              "LS",
                              "LR",
                              "LY",
                              "LI",
                              "LT",
                              "LU",
                              "MO",
                              "MK",
                              "MG",
                              "MW",
                              "MY",
                              "MV",
                              "ML",
                              "MT",
                              "MH",
                              "MQ",
                              "MR",
                              "MU",
                              "YT",
                              "MX",
                              "FM",
                              "MD",
                              "MC",
                              "MN",
                              "ME",
                              "MS",
                              "MA",
                              "MZ",
                              "MM",
                              "NA",
                              "NR",
                              "NP",
                              "NL",
                              "NC",
                              "NZ",
                              "NI",
                              "NE",
                              "NG",
                              "NU",
                              "NF",
                              "MP",
                              "NO",
                              "OM",
                              "PK",
                              "PW",
                              "PS",
                              "PA",
                              "PG",
                              "PY",
                              "PE",
                              "PH",
                              "PN",
                              "PL",
                              "PT",
                              "PR",
                              "QA",
                              "RE",
                              "RO",
                              "RU",
                              "RW",
                              "BL",
                              "SH",
                              "KN",
                              "LC",
                              "MF",
                              "PM",
                              "VC",
                              "WS",
                              "SM",
                              "ST",
                              "SA",
                              "SN",
                              "RS",
                              "SC",
                              "SL",
                              "SG",
                              "SX",
                              "SK",
                              "SI",
                              "SB",
                              "SO",
                              "ZA",
                              "GS",
                              "SS",
                              "ES",
                              "LK",
                              "SD",
                              "SR",
                              "SJ",
                              "SZ",
                              "SE",
                              "CH",
                              "SY",
                              "TW",
                              "TJ",
                              "TZ",
                              "TH",
                              "TL",
                              "TG",
                              "TK",
                              "TO",
                              "TT",
                              "TN",
                              "TR",
                              "TM",
                              "TC",
                              "TV",
                              "UG",
                              "UA",
                              "AE",
                              "GB",
                              "US",
                              "UM",
                              "UY",
                              "UZ",
                              "VU",
                              "VE",
                              "VN",
                              "VG",
                              "VI",
                              "WF",
                              "EH",
                              "YE",
                              "ZM",
                              "ZW"
                            ]
                          },
                          "city": {
                            "type": "string",
                            "nullable": true
                          },
                          "postcode": {
                            "type": "string",
                            "nullable": true
                          },
                          "address": {
                            "type": "string",
                            "nullable": true
                          }
                        }
                      }
                    },
                    "required": [
                      "invoiceRequired",
                      "clientType",
                      "individual",
                      "company"
                    ]
                  },
                  {
                    "type": "object",
                    "title": "SoftOne Invoice Manager",
                    "description": "Invoice processor - SoftOne",
                    "properties": {
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "firstName": {
                        "type": "string",
                        "nullable": true
                      },
                      "lastName": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postcode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Ecpay Invoice Manager",
                    "description": "Invoice processor - Ecpay",
                    "properties": {
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "invoiceType": {
                        "type": "string",
                        "enum": [
                          "EInvoice",
                          "Company",
                          "Donation"
                        ]
                      },
                      "carrierType": {
                        "type": "string",
                        "enum": [
                          "Mobile",
                          "Citizen",
                          "GreenWorld"
                        ],
                        "nullable": true
                      },
                      "loveCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "mobileBarCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "citizenId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyId": {
                        "type": "string",
                        "nullable": true
                      },
                      "name": {
                        "type": "string",
                        "nullable": true
                      },
                      "email": {
                        "type": "string",
                        "nullable": true
                      },
                      "phone": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postcode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Avalara e-invoicing",
                    "description": "Avalara e-invoicing processor.\n\nCarries the same fields as the platform's native invoice integration, plus the two Italian SDI buyer\nidentifiers. Those two are only present when the operator's Avalara integration has an Italian mandate\nand the corresponding field is enabled, and they only carry a value for company customers.\n\nWhen both identifiers are collected and enabled, an Italian company (`invoiceType` is `company` and\n`country` is `IT`) must supply at least one of `recipientCode` and `recipientCertifiedEmail` on write.\nThis either-or requirement is conditional on the invoice type and the country, so it cannot be\nexpressed per field in this schema.\n",
                    "required": [
                      "requireInvoice",
                      "invoiceType"
                    ],
                    "properties": {
                      "recipientCode": {
                        "type": "string",
                        "minLength": 7,
                        "maxLength": 7,
                        "pattern": "^[A-Za-z0-9]{7}$",
                        "description": "Italian SDI recipient code of the buyer. Exactly seven alphanumeric characters, stored uppercased.\nOmitted for individual customers and for company customers that have not supplied it.\n",
                        "example": "ABC1234"
                      },
                      "recipientCertifiedEmail": {
                        "type": "string",
                        "format": "email",
                        "description": "Certified electronic mail (PEC) address of the buyer. Omitted for individual customers and for\ncompany customers that have not supplied it.\n",
                        "example": "buyer@pec.example.com"
                      },
                      "requireInvoice": {
                        "type": "boolean",
                        "default": false,
                        "description": "Whether invoice is required for this user. Note: If the operator has 'Always collect Invoice Details' enabled in their invoice integration settings, this field will always be true regardless of the request payload value."
                      },
                      "requireInvoiceLastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date. The date is automatically updated when the value of the \"requireInvoice\" field changes.",
                        "readOnly": true,
                        "nullable": true
                      },
                      "lastUpdatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "ISO 8601 formatted date",
                        "readOnly": true
                      },
                      "requireInvoiceEnforcedBy": {
                        "type": "string",
                        "enum": [
                          "operator_setting",
                          "user_request"
                        ],
                        "description": "Indicates the source that determined the final requireInvoice value. Only present when operator setting overrides user request.",
                        "nullable": true
                      },
                      "originalRequestValue": {
                        "type": "boolean",
                        "description": "The originally requested requireInvoice value when operator override occurred. Only present when requireInvoiceEnforcedBy is 'operator_setting'.",
                        "nullable": true
                      },
                      "invoiceType": {
                        "type": "string",
                        "enum": [
                          "individual",
                          "company"
                        ],
                        "nullable": true
                      },
                      "individualName": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualPersonalId": {
                        "type": "string",
                        "nullable": true
                      },
                      "individualTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyName": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyRegNo": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxId": {
                        "type": "string",
                        "nullable": true
                      },
                      "companyTaxAdministrationOfficeName": {
                        "type": "string",
                        "nullable": true
                      },
                      "country": {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          "AF",
                          "AX",
                          "AL",
                          "DZ",
                          "AS",
                          "AD",
                          "AO",
                          "AI",
                          "AQ",
                          "AG",
                          "AR",
                          "AM",
                          "AW",
                          "AU",
                          "AT",
                          "AZ",
                          "BS",
                          "BH",
                          "BD",
                          "BB",
                          "BY",
                          "BE",
                          "BZ",
                          "BJ",
                          "BM",
                          "BT",
                          "BO",
                          "BQ",
                          "BA",
                          "BW",
                          "BV",
                          "BR",
                          "IO",
                          "BN",
                          "BG",
                          "BF",
                          "BI",
                          "KH",
                          "CM",
                          "CA",
                          "CV",
                          "KY",
                          "CF",
                          "TD",
                          "CL",
                          "CN",
                          "CX",
                          "CC",
                          "CO",
                          "KM",
                          "CG",
                          "CD",
                          "CK",
                          "CR",
                          "CI",
                          "HR",
                          "CU",
                          "CW",
                          "CY",
                          "CZ",
                          "DK",
                          "DJ",
                          "DM",
                          "DO",
                          "EC",
                          "EG",
                          "SV",
                          "GQ",
                          "ER",
                          "EE",
                          "ET",
                          "FK",
                          "FO",
                          "FJ",
                          "FI",
                          "FR",
                          "GF",
                          "PF",
                          "TF",
                          "GA",
                          "GM",
                          "GE",
                          "DE",
                          "GH",
                          "GI",
                          "GR",
                          "GL",
                          "GD",
                          "GP",
                          "GU",
                          "GT",
                          "GG",
                          "GN",
                          "GW",
                          "GY",
                          "HT",
                          "HM",
                          "VA",
                          "HN",
                          "HK",
                          "HU",
                          "IS",
                          "IN",
                          "ID",
                          "IR",
                          "IQ",
                          "IE",
                          "IM",
                          "IL",
                          "IT",
                          "JM",
                          "JP",
                          "JE",
                          "JO",
                          "KZ",
                          "KE",
                          "KI",
                          "KP",
                          "KR",
                          "XK",
                          "KW",
                          "KG",
                          "LA",
                          "LV",
                          "LB",
                          "LS",
                          "LR",
                          "LY",
                          "LI",
                          "LT",
                          "LU",
                          "MO",
                          "MK",
                          "MG",
                          "MW",
                          "MY",
                          "MV",
                          "ML",
                          "MT",
                          "MH",
                          "MQ",
                          "MR",
                          "MU",
                          "YT",
                          "MX",
                          "FM",
                          "MD",
                          "MC",
                          "MN",
                          "ME",
                          "MS",
                          "MA",
                          "MZ",
                          "MM",
                          "NA",
                          "NR",
                          "NP",
                          "NL",
                          "NC",
                          "NZ",
                          "NI",
                          "NE",
                          "NG",
                          "NU",
                          "NF",
                          "MP",
                          "NO",
                          "OM",
                          "PK",
                          "PW",
                          "PS",
                          "PA",
                          "PG",
                          "PY",
                          "PE",
                          "PH",
                          "PN",
                          "PL",
                          "PT",
                          "PR",
                          "QA",
                          "RE",
                          "RO",
                          "RU",
                          "RW",
                          "BL",
                          "SH",
                          "KN",
                          "LC",
                          "MF",
                          "PM",
                          "VC",
                          "WS",
                          "SM",
                          "ST",
                          "SA",
                          "SN",
                          "RS",
                          "SC",
                          "SL",
                          "SG",
                          "SX",
                          "SK",
                          "SI",
                          "SB",
                          "SO",
                          "ZA",
                          "GS",
                          "SS",
                          "ES",
                          "LK",
                          "SD",
                          "SR",
                          "SJ",
                          "SZ",
                          "SE",
                          "CH",
                          "SY",
                          "TW",
                          "TJ",
                          "TZ",
                          "TH",
                          "TL",
                          "TG",
                          "TK",
                          "TO",
                          "TT",
                          "TN",
                          "TR",
                          "TM",
                          "TC",
                          "TV",
                          "UG",
                          "UA",
                          "AE",
                          "GB",
                          "US",
                          "UM",
                          "UY",
                          "UZ",
                          "VU",
                          "VE",
                          "VN",
                          "VG",
                          "VI",
                          "WF",
                          "EH",
                          "YE",
                          "ZM",
                          "ZW"
                        ]
                      },
                      "region": {
                        "type": "string",
                        "nullable": true,
                        "description": "When country is not in US, AU, CA, UM or RO, you can provide the region"
                      },
                      "state": {
                        "description": "When the selected country is one of US, AU, CA, UM or RO",
                        "anyOf": [
                          {
                            "title": "US State",
                            "description": "When the country is US.",
                            "type": "string",
                            "enum": [
                              "AL",
                              "AK",
                              "AS",
                              "AZ",
                              "AR",
                              "CA",
                              "CO",
                              "CT",
                              "DE",
                              "DC",
                              "FM",
                              "FL",
                              "GA",
                              "GU",
                              "HI",
                              "ID",
                              "IL",
                              "IN",
                              "IA",
                              "KS",
                              "KY",
                              "LA",
                              "ME",
                              "MH",
                              "MD",
                              "MA",
                              "MI",
                              "MN",
                              "MS",
                              "MO",
                              "MT",
                              "NE",
                              "NV",
                              "NH",
                              "NJ",
                              "NM",
                              "NY",
                              "NC",
                              "ND",
                              "MP",
                              "OH",
                              "OK",
                              "OR",
                              "PW",
                              "PA",
                              "PR",
                              "RI",
                              "SC",
                              "SD",
                              "TN",
                              "TX",
                              "UT",
                              "VT",
                              "VI",
                              "VA",
                              "WA",
                              "WV",
                              "WI",
                              "WY"
                            ]
                          },
                          {
                            "title": "Australian State",
                            "description": "When the country is AU.",
                            "type": "string",
                            "enum": [
                              "NSW",
                              "VIC",
                              "QLD",
                              "WA",
                              "SA",
                              "TAS",
                              "ACT",
                              "NT",
                              "JBT",
                              "CX",
                              "NF",
                              "CC",
                              "AQ",
                              "CSI",
                              "ACI",
                              "HM"
                            ]
                          },
                          {
                            "title": "Canadian Province",
                            "description": "When the country is CA.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "BC",
                              "MB",
                              "NB",
                              "NL",
                              "NT",
                              "NS",
                              "NU",
                              "ON",
                              "PE",
                              "QC",
                              "SK",
                              "YT"
                            ]
                          },
                          {
                            "title": "US Minor Outlying Islands Territory",
                            "description": "When the country is UM.",
                            "type": "string",
                            "enum": [
                              "81",
                              "84",
                              "85",
                              "67",
                              "89",
                              "71",
                              "76",
                              "95",
                              "79"
                            ]
                          },
                          {
                            "title": "Romanian County",
                            "description": "When the country is RO.",
                            "type": "string",
                            "enum": [
                              "AB",
                              "AR",
                              "AG",
                              "BC",
                              "BH",
                              "BN",
                              "BT",
                              "BV",
                              "BR",
                              "B",
                              "BZ",
                              "CL",
                              "CS",
                              "CT",
                              "CV",
                              "DB",
                              "DJ",
                              "GL",
                              "GR",
                              "GJ",
                              "HR",
                              "HD",
                              "IL",
                              "IS",
                              "IF",
                              "MM",
                              "MH",
                              "MS",
                              "NT",
                              "OT",
                              "PH",
                              "SM",
                              "SJ",
                              "SB",
                              "SV",
                              "TR",
                              "TM",
                              "TL",
                              "VS",
                              "VL",
                              "VN"
                            ]
                          }
                        ]
                      },
                      "city": {
                        "type": "string",
                        "nullable": true
                      },
                      "postCode": {
                        "type": "string",
                        "nullable": true
                      },
                      "address": {
                        "type": "string",
                        "nullable": true
                      }
                    }
                  }
                ]
              },
              "companyTaxId": {
                "type": "string"
              },
              "companyAddress": {
                "type": "string"
              },
              "companyCity": {
                "type": "string"
              },
              "companyPostalCode": {
                "type": "string"
              },
              "companyCountry": {
                "type": "string",
                "enum": [
                  "AF",
                  "AX",
                  "AL",
                  "DZ",
                  "AS",
                  "AD",
                  "AO",
                  "AI",
                  "AQ",
                  "AG",
                  "AR",
                  "AM",
                  "AW",
                  "AU",
                  "AT",
                  "AZ",
                  "BS",
                  "BH",
                  "BD",
                  "BB",
                  "BY",
                  "BE",
                  "BZ",
                  "BJ",
                  "BM",
                  "BT",
                  "BO",
                  "BQ",
                  "BA",
                  "BW",
                  "BV",
                  "BR",
                  "IO",
                  "BN",
                  "BG",
                  "BF",
                  "BI",
                  "KH",
                  "CM",
                  "CA",
                  "CV",
                  "KY",
                  "CF",
                  "TD",
                  "CL",
                  "CN",
                  "CX",
                  "CC",
                  "CO",
                  "KM",
                  "CG",
                  "CD",
                  "CK",
                  "CR",
                  "CI",
                  "HR",
                  "CU",
                  "CW",
                  "CY",
                  "CZ",
                  "DK",
                  "DJ",
                  "DM",
                  "DO",
                  "EC",
                  "EG",
                  "SV",
                  "GQ",
                  "ER",
                  "EE",
                  "ET",
                  "FK",
                  "FO",
                  "FJ",
                  "FI",
                  "FR",
                  "GF",
                  "PF",
                  "TF",
                  "GA",
                  "GM",
                  "GE",
                  "DE",
                  "GH",
                  "GI",
                  "GR",
                  "GL",
                  "GD",
                  "GP",
                  "GU",
                  "GT",
                  "GG",
                  "GN",
                  "GW",
                  "GY",
                  "HT",
                  "HM",
                  "VA",
                  "HN",
                  "HK",
                  "HU",
                  "IS",
                  "IN",
                  "ID",
                  "IR",
                  "IQ",
                  "IE",
                  "IM",
                  "IL",
                  "IT",
                  "JM",
                  "JP",
                  "JE",
                  "JO",
                  "KZ",
                  "KE",
                  "KI",
                  "KP",
                  "KR",
                  "XK",
                  "KW",
                  "KG",
                  "LA",
                  "LV",
                  "LB",
                  "LS",
                  "LR",
                  "LY",
                  "LI",
                  "LT",
                  "LU",
                  "MO",
                  "MK",
                  "MG",
                  "MW",
                  "MY",
                  "MV",
                  "ML",
                  "MT",
                  "MH",
                  "MQ",
                  "MR",
                  "MU",
                  "YT",
                  "MX",
                  "FM",
                  "MD",
                  "MC",
                  "MN",
                  "ME",
                  "MS",
                  "MA",
                  "MZ",
                  "MM",
                  "NA",
                  "NR",
                  "NP",
                  "NL",
                  "NC",
                  "NZ",
                  "NI",
                  "NE",
                  "NG",
                  "NU",
                  "NF",
                  "MP",
                  "NO",
                  "OM",
                  "PK",
                  "PW",
                  "PS",
                  "PA",
                  "PG",
                  "PY",
                  "PE",
                  "PH",
                  "PN",
                  "PL",
                  "PT",
                  "PR",
                  "QA",
                  "RE",
                  "RO",
                  "RU",
                  "RW",
                  "BL",
                  "SH",
                  "KN",
                  "LC",
                  "MF",
                  "PM",
                  "VC",
                  "WS",
                  "SM",
                  "ST",
                  "SA",
                  "SN",
                  "RS",
                  "SC",
                  "SL",
                  "SG",
                  "SX",
                  "SK",
                  "SI",
                  "SB",
                  "SO",
                  "ZA",
                  "GS",
                  "SS",
                  "ES",
                  "LK",
                  "SD",
                  "SR",
                  "SJ",
                  "SZ",
                  "SE",
                  "CH",
                  "SY",
                  "TW",
                  "TJ",
                  "TZ",
                  "TH",
                  "TL",
                  "TG",
                  "TK",
                  "TO",
                  "TT",
                  "TN",
                  "TR",
                  "TM",
                  "TC",
                  "TV",
                  "UG",
                  "UA",
                  "AE",
                  "GB",
                  "US",
                  "UM",
                  "UY",
                  "UZ",
                  "VU",
                  "VE",
                  "VN",
                  "VG",
                  "VI",
                  "WF",
                  "EH",
                  "YE",
                  "ZM",
                  "ZW"
                ]
              },
              "companyReceiptsEnabled": {
                "type": "boolean",
                "description": "Shows whether this user has opted to use company details for receipts."
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userNotesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "summary",
                "pinned",
                "createdAt",
                "updatedAt"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Unique identifier for the note",
                  "example": 123
                },
                "summary": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "Short summary or title of the note",
                  "example": "Important maintenance note"
                },
                "details": {
                  "type": "string",
                  "maxLength": 2000,
                  "description": "Detailed content of the note. Omitted when empty.",
                  "example": "This charge point requires monthly inspection due to high usage."
                },
                "pinned": {
                  "type": "boolean",
                  "description": "Whether the note is pinned (appears first in listings)",
                  "example": true
                },
                "createdByAdminId": {
                  "type": "integer",
                  "description": "ID of the admin who created the note. Omitted when unavailable.",
                  "example": 1
                },
                "updatedByAdminId": {
                  "type": "integer",
                  "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                  "example": 2
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO-8601 timestamp when the note was created",
                  "example": "2025-12-16T10:00:00Z"
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO-8601 timestamp when the note was last updated",
                  "example": "2025-12-16T12:00:00Z"
                }
              }
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userNoteCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "pinned",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier for the note",
                "example": 123
              },
              "summary": {
                "type": "string",
                "maxLength": 255,
                "description": "Short summary or title of the note",
                "example": "Important maintenance note"
              },
              "details": {
                "type": "string",
                "maxLength": 2000,
                "description": "Detailed content of the note. Omitted when empty.",
                "example": "This charge point requires monthly inspection due to high usage."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the note is pinned (appears first in listings)",
                "example": true
              },
              "createdByAdminId": {
                "type": "integer",
                "description": "ID of the admin who created the note. Omitted when unavailable.",
                "example": 1
              },
              "updatedByAdminId": {
                "type": "integer",
                "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                "example": 2
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was created",
                "example": "2025-12-16T10:00:00Z"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was last updated",
                "example": "2025-12-16T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userNoteShow": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "pinned",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier for the note",
                "example": 123
              },
              "summary": {
                "type": "string",
                "maxLength": 255,
                "description": "Short summary or title of the note",
                "example": "Important maintenance note"
              },
              "details": {
                "type": "string",
                "maxLength": 2000,
                "description": "Detailed content of the note. Omitted when empty.",
                "example": "This charge point requires monthly inspection due to high usage."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the note is pinned (appears first in listings)",
                "example": true
              },
              "createdByAdminId": {
                "type": "integer",
                "description": "ID of the admin who created the note. Omitted when unavailable.",
                "example": 1
              },
              "updatedByAdminId": {
                "type": "integer",
                "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                "example": 2
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was created",
                "example": "2025-12-16T10:00:00Z"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was last updated",
                "example": "2025-12-16T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userNoteDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "userNoteUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "summary",
              "pinned",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Unique identifier for the note",
                "example": 123
              },
              "summary": {
                "type": "string",
                "maxLength": 255,
                "description": "Short summary or title of the note",
                "example": "Important maintenance note"
              },
              "details": {
                "type": "string",
                "maxLength": 2000,
                "description": "Detailed content of the note. Omitted when empty.",
                "example": "This charge point requires monthly inspection due to high usage."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the note is pinned (appears first in listings)",
                "example": true
              },
              "createdByAdminId": {
                "type": "integer",
                "description": "ID of the admin who created the note. Omitted when unavailable.",
                "example": 1
              },
              "updatedByAdminId": {
                "type": "integer",
                "description": "ID of the admin who last updated the note. Omitted when unavailable.",
                "example": 2
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was created",
                "example": "2025-12-16T10:00:00Z"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO-8601 timestamp when the note was last updated",
                "example": "2025-12-16T12:00:00Z"
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "listUtilities": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "name": {
                  "type": "string"
                },
                "chargePointsCount": {
                  "type": "integer"
                },
                "electricityRatesCount": {
                  "type": "integer"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "updatedAt": {
                  "type": "string",
                  "format": "date-time"
                }
              },
              "required": [
                "id",
                "name",
                "chargePointsCount",
                "electricityRatesCount",
                "createdAt",
                "lastUpdatedAt"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "createUtility": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string"
              },
              "chargePointsCount": {
                "type": "integer"
              },
              "electricityRatesCount": {
                "type": "integer"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "id",
              "name",
              "chargePointsCount",
              "electricityRatesCount",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "getUtility": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string"
              },
              "chargePointsCount": {
                "type": "integer"
              },
              "electricityRatesCount": {
                "type": "integer"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "id",
              "name",
              "chargePointsCount",
              "electricityRatesCount",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "updateUtility": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string"
              },
              "chargePointsCount": {
                "type": "integer"
              },
              "electricityRatesCount": {
                "type": "integer"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "id",
              "name",
              "chargePointsCount",
              "electricityRatesCount",
              "createdAt",
              "lastUpdatedAt"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "deleteUtility": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "vehiclesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "operatorId",
                "label",
                "createdAt",
                "updatedAt"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Vehicle identifier.",
                  "example": 42
                },
                "operatorId": {
                  "type": "integer",
                  "description": "The operator the vehicle belongs to.",
                  "example": 1
                },
                "partnerId": {
                  "type": "integer",
                  "description": "Partner the vehicle belongs to.",
                  "example": 12
                },
                "label": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "Display name for the vehicle.",
                  "example": "Fleet car #4"
                },
                "licensePlate": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "License plate of the vehicle.",
                  "example": "CA1234XY"
                },
                "vin": {
                  "type": "string",
                  "minLength": 17,
                  "maxLength": 17,
                  "pattern": "^[A-HJ-NPR-Z0-9]{17}$",
                  "description": "Vehicle Identification Number (ISO 3779).",
                  "example": "1HGBH41JXMN109186"
                },
                "pcId": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "Provisioning certificate ID from the vehicle's ISO 15118 Plug & Charge system. The platform uses this value to automatically associate the vehicle with an EMAID contract certificate when the issued certificate has the same `pcId`.",
                  "example": "DE8ABC1234567890"
                },
                "usageType": {
                  "type": "string",
                  "enum": [
                    "private",
                    "company"
                  ],
                  "description": "How the vehicle is used.\n  * `private` - Private vehicle\n  * `company` - Company or fleet vehicle\n"
                },
                "createdAt": {
                  "description": "ISO 8601 formatted date",
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                },
                "updatedAt": {
                  "description": "ISO 8601 formatted date",
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                }
              },
              "description": "A vehicle in the operator's fleet."
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    }
  },
  "vehicleCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "operatorId",
              "label",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Vehicle identifier.",
                "example": 42
              },
              "operatorId": {
                "type": "integer",
                "description": "The operator the vehicle belongs to.",
                "example": 1
              },
              "partnerId": {
                "type": "integer",
                "description": "Partner the vehicle belongs to.",
                "example": 12
              },
              "label": {
                "type": "string",
                "maxLength": 255,
                "description": "Display name for the vehicle.",
                "example": "Fleet car #4"
              },
              "licensePlate": {
                "type": "string",
                "maxLength": 255,
                "description": "License plate of the vehicle.",
                "example": "CA1234XY"
              },
              "vin": {
                "type": "string",
                "minLength": 17,
                "maxLength": 17,
                "pattern": "^[A-HJ-NPR-Z0-9]{17}$",
                "description": "Vehicle Identification Number (ISO 3779).",
                "example": "1HGBH41JXMN109186"
              },
              "pcId": {
                "type": "string",
                "maxLength": 255,
                "description": "Provisioning certificate ID from the vehicle's ISO 15118 Plug & Charge system. The platform uses this value to automatically associate the vehicle with an EMAID contract certificate when the issued certificate has the same `pcId`.",
                "example": "DE8ABC1234567890"
              },
              "usageType": {
                "type": "string",
                "enum": [
                  "private",
                  "company"
                ],
                "description": "How the vehicle is used.\n  * `private` - Private vehicle\n  * `company` - Company or fleet vehicle\n"
              },
              "createdAt": {
                "description": "ISO 8601 formatted date",
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "updatedAt": {
                "description": "ISO 8601 formatted date",
                "type": "string",
                "format": "date-time",
                "readOnly": true
              }
            },
            "description": "A vehicle in the operator's fleet."
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "vehicleTelemetryReadingsListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "vehicleId",
                "submittedAt",
                "createdAt",
                "source"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Telemetry reading identifier.",
                  "example": 4711
                },
                "vehicleId": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "Vehicle identifier."
                },
                "odometerKm": {
                  "type": "number",
                  "description": "Odometer value in kilometres. Omitted when the reading carries no odometer value.",
                  "example": 12345.678
                },
                "submittedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "When the reading was taken.",
                  "example": "2026-01-15T10:00:00+00:00"
                },
                "createdAt": {
                  "description": "ISO 8601 formatted date",
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                },
                "source": {
                  "type": "string",
                  "enum": [
                    "api",
                    "app"
                  ],
                  "description": "The channel a telemetry reading was submitted through. Set automatically by the platform; callers cannot override it.\n\nValues:\n- `api`: Submitted through the Public API.\n- `app`: Submitted through the mobile app.\n"
                },
                "submittedByUserId": {
                  "type": "integer",
                  "description": "The user who submitted the reading. Omitted when the reading has no user association.",
                  "example": 88
                }
              },
              "description": "A telemetry reading for a vehicle."
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "vehicleRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "operatorId",
              "label",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Vehicle identifier.",
                "example": 42
              },
              "operatorId": {
                "type": "integer",
                "description": "The operator the vehicle belongs to.",
                "example": 1
              },
              "partnerId": {
                "type": "integer",
                "description": "Partner the vehicle belongs to.",
                "example": 12
              },
              "label": {
                "type": "string",
                "maxLength": 255,
                "description": "Display name for the vehicle.",
                "example": "Fleet car #4"
              },
              "licensePlate": {
                "type": "string",
                "maxLength": 255,
                "description": "License plate of the vehicle.",
                "example": "CA1234XY"
              },
              "vin": {
                "type": "string",
                "minLength": 17,
                "maxLength": 17,
                "pattern": "^[A-HJ-NPR-Z0-9]{17}$",
                "description": "Vehicle Identification Number (ISO 3779).",
                "example": "1HGBH41JXMN109186"
              },
              "pcId": {
                "type": "string",
                "maxLength": 255,
                "description": "Provisioning certificate ID from the vehicle's ISO 15118 Plug & Charge system. The platform uses this value to automatically associate the vehicle with an EMAID contract certificate when the issued certificate has the same `pcId`.",
                "example": "DE8ABC1234567890"
              },
              "usageType": {
                "type": "string",
                "enum": [
                  "private",
                  "company"
                ],
                "description": "How the vehicle is used.\n  * `private` - Private vehicle\n  * `company` - Company or fleet vehicle\n"
              },
              "createdAt": {
                "description": "ISO 8601 formatted date",
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "updatedAt": {
                "description": "ISO 8601 formatted date",
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "userIds": {
                "type": "array",
                "items": {
                  "type": "integer"
                },
                "description": "IDs of users assigned to this vehicle. Returned only when the request includes `include[]=userIds`."
              },
              "telemetry": {
                "type": "object",
                "required": [
                  "lastOdometerKm",
                  "lastOdometerAt"
                ],
                "properties": {
                  "lastOdometerKm": {
                    "type": "number",
                    "nullable": true,
                    "description": "Odometer value, in kilometres, of the most recent reading that carries an odometer value. `null` when no such reading exists.",
                    "example": 12345.678
                  },
                  "lastOdometerAt": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true,
                    "description": "Submission time of the most recent reading that carries an odometer value. `null` when no such reading exists.",
                    "example": "2026-01-15T10:00:00+00:00"
                  }
                },
                "description": "Latest odometer summary for the vehicle. Present only when vehicle telemetry is enabled for the operator."
              }
            },
            "description": "A vehicle in the operator's fleet."
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "vehicleDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "vehicleUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "operatorId",
              "label",
              "createdAt",
              "updatedAt"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Vehicle identifier.",
                "example": 42
              },
              "operatorId": {
                "type": "integer",
                "description": "The operator the vehicle belongs to.",
                "example": 1
              },
              "partnerId": {
                "type": "integer",
                "description": "Partner the vehicle belongs to.",
                "example": 12
              },
              "label": {
                "type": "string",
                "maxLength": 255,
                "description": "Display name for the vehicle.",
                "example": "Fleet car #4"
              },
              "licensePlate": {
                "type": "string",
                "maxLength": 255,
                "description": "License plate of the vehicle.",
                "example": "CA1234XY"
              },
              "vin": {
                "type": "string",
                "minLength": 17,
                "maxLength": 17,
                "pattern": "^[A-HJ-NPR-Z0-9]{17}$",
                "description": "Vehicle Identification Number (ISO 3779).",
                "example": "1HGBH41JXMN109186"
              },
              "pcId": {
                "type": "string",
                "maxLength": 255,
                "description": "Provisioning certificate ID from the vehicle's ISO 15118 Plug & Charge system. The platform uses this value to automatically associate the vehicle with an EMAID contract certificate when the issued certificate has the same `pcId`.",
                "example": "DE8ABC1234567890"
              },
              "usageType": {
                "type": "string",
                "enum": [
                  "private",
                  "company"
                ],
                "description": "How the vehicle is used.\n  * `private` - Private vehicle\n  * `company` - Company or fleet vehicle\n"
              },
              "createdAt": {
                "description": "ISO 8601 formatted date",
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "updatedAt": {
                "description": "ISO 8601 formatted date",
                "type": "string",
                "format": "date-time",
                "readOnly": true
              }
            },
            "description": "A vehicle in the operator's fleet."
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "vehicleUsersListing": {
    "200": {
      "schema": {
        "type": "object",
        "required": [
          "userIds"
        ],
        "properties": {
          "userIds": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "IDs of users assigned to the vehicle."
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "vehicleUsersAttach": {
    "200": {
      "schema": {
        "type": "object",
        "required": [
          "userIds"
        ],
        "properties": {
          "userIds": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "IDs of users assigned to the vehicle."
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "vehicleUsersReplace": {
    "200": {
      "schema": {
        "type": "object",
        "required": [
          "userIds"
        ],
        "properties": {
          "userIds": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "IDs of users assigned to the vehicle."
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "vehicleUsersDetach": {
    "200": {
      "schema": {
        "type": "object",
        "required": [
          "userIds"
        ],
        "properties": {
          "userIds": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "IDs of users assigned to the vehicle."
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "vehicleTelemetryReadingsByVehicleListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "vehicleId",
                "submittedAt",
                "createdAt",
                "source"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Telemetry reading identifier.",
                  "example": 4711
                },
                "vehicleId": {
                  "type": "integer",
                  "readOnly": true,
                  "description": "Vehicle identifier."
                },
                "odometerKm": {
                  "type": "number",
                  "description": "Odometer value in kilometres. Omitted when the reading carries no odometer value.",
                  "example": 12345.678
                },
                "submittedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "When the reading was taken.",
                  "example": "2026-01-15T10:00:00+00:00"
                },
                "createdAt": {
                  "description": "ISO 8601 formatted date",
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                },
                "source": {
                  "type": "string",
                  "enum": [
                    "api",
                    "app"
                  ],
                  "description": "The channel a telemetry reading was submitted through. Set automatically by the platform; callers cannot override it.\n\nValues:\n- `api`: Submitted through the Public API.\n- `app`: Submitted through the mobile app.\n"
                },
                "submittedByUserId": {
                  "type": "integer",
                  "description": "The user who submitted the reading. Omitted when the reading has no user association.",
                  "example": 88
                }
              },
              "description": "A telemetry reading for a vehicle."
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The base route of the endpoint (unpaginated)"
              },
              "per_page": {
                "type": "integer",
                "description": "The max number of items in each page"
              },
              "next_cursor": {
                "type": "string",
                "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                "nullable": true
              },
              "prev_cursor": {
                "type": "string",
                "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "vehicleTelemetryReadingCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "vehicleId",
              "submittedAt",
              "createdAt",
              "source"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "description": "Telemetry reading identifier.",
                "example": 4711
              },
              "vehicleId": {
                "type": "integer",
                "readOnly": true,
                "description": "Vehicle identifier."
              },
              "odometerKm": {
                "type": "number",
                "description": "Odometer value in kilometres. Omitted when the reading carries no odometer value.",
                "example": 12345.678
              },
              "submittedAt": {
                "type": "string",
                "format": "date-time",
                "description": "When the reading was taken.",
                "example": "2026-01-15T10:00:00+00:00"
              },
              "createdAt": {
                "description": "ISO 8601 formatted date",
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "source": {
                "type": "string",
                "enum": [
                  "api",
                  "app"
                ],
                "description": "The channel a telemetry reading was submitted through. Set automatically by the platform; callers cannot override it.\n\nValues:\n- `api`: Submitted through the Public API.\n- `app`: Submitted through the mobile app.\n"
              },
              "submittedByUserId": {
                "type": "integer",
                "description": "The user who submitted the reading. Omitted when the reading has no user association.",
                "example": 88
              }
            },
            "description": "A telemetry reading for a vehicle."
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "vehicleTelemetryReadingDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "vendorErrorCodesListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "readOnly": true
                },
                "vendorId": {
                  "type": "string",
                  "description": "Unique identifier of the Vendor, reported from the Charge point"
                },
                "errorCode": {
                  "type": "string",
                  "description": "The code reported from the charge point when the hardwareStatus is faulted"
                },
                "errorCodeDescription": {
                  "type": "string",
                  "description": "Description of the error provided by the vendor",
                  "nullable": true
                },
                "errorCodeCustomerAction": {
                  "type": "string",
                  "description": "Recommended actions by the customer when this error occurs",
                  "nullable": true
                }
              },
              "required": [
                "vendorId",
                "errorCode"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "vendorErrorCodeCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "vendorId": {
                "type": "string",
                "description": "Unique identifier of the Vendor, reported from the Charge point"
              },
              "errorCode": {
                "type": "string",
                "description": "The code reported from the charge point when the hardwareStatus is faulted"
              },
              "errorCodeDescription": {
                "type": "string",
                "description": "Description of the error provided by the vendor",
                "nullable": true
              },
              "errorCodeCustomerAction": {
                "type": "string",
                "description": "Recommended actions by the customer when this error occurs",
                "nullable": true
              }
            },
            "required": [
              "vendorId",
              "errorCode"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "vendorErrorCodeRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "vendorId": {
                "type": "string",
                "description": "Unique identifier of the Vendor, reported from the Charge point"
              },
              "errorCode": {
                "type": "string",
                "description": "The code reported from the charge point when the hardwareStatus is faulted"
              },
              "errorCodeDescription": {
                "type": "string",
                "description": "Description of the error provided by the vendor",
                "nullable": true
              },
              "errorCodeCustomerAction": {
                "type": "string",
                "description": "Recommended actions by the customer when this error occurs",
                "nullable": true
              }
            },
            "required": [
              "vendorId",
              "errorCode"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "vendorErrorCodeDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "vendorErrorCodeUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "readOnly": true
              },
              "vendorId": {
                "type": "string",
                "description": "Unique identifier of the Vendor, reported from the Charge point"
              },
              "errorCode": {
                "type": "string",
                "description": "The code reported from the charge point when the hardwareStatus is faulted"
              },
              "errorCodeDescription": {
                "type": "string",
                "description": "Description of the error provided by the vendor",
                "nullable": true
              },
              "errorCodeCustomerAction": {
                "type": "string",
                "description": "Recommended actions by the customer when this error occurs",
                "nullable": true
              }
            },
            "required": [
              "vendorId",
              "errorCode"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "vouchersListingDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "code": {
                  "type": "string"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "voucher",
                    "manual_top_up",
                    "auto_top_up",
                    "top_up_by_operator",
                    "api_top_up",
                    "promo_code",
                    "subscribe_to_plan"
                  ]
                },
                "promoCode": {
                  "type": "string",
                  "description": "If the type is `promo_code` here would be given the value of this promo code.",
                  "nullable": true
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "enabled",
                    "disabled"
                  ]
                },
                "expireDate": {
                  "type": "string",
                  "format": "date",
                  "nullable": true,
                  "description": "RFC 3339 formatted date"
                },
                "redeemedAt": {
                  "type": "string",
                  "nullable": true,
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "redeemedByUserId": {
                  "type": "integer",
                  "nullable": true
                },
                "amount": {
                  "type": "number",
                  "format": "float"
                },
                "currency": {
                  "type": "string",
                  "description": "The ISO 4217 3-letter code of the currency"
                },
                "description": {
                  "type": "string",
                  "nullable": true
                },
                "transactionId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The ID of the transaction with which the voucher was purchased."
                },
                "createdByAdminId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The ID of the Admin who has created the voucher."
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "code",
                "amount",
                "createdAt",
                "type",
                "currency"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "voucherCreateDeprecated": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "code": {
                "type": "string"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "voucher",
                  "manual_top_up",
                  "auto_top_up",
                  "top_up_by_operator",
                  "api_top_up",
                  "promo_code",
                  "subscribe_to_plan"
                ]
              },
              "promoCode": {
                "type": "string",
                "description": "If the type is `promo_code` here would be given the value of this promo code.",
                "nullable": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "expireDate": {
                "type": "string",
                "format": "date",
                "nullable": true,
                "description": "RFC 3339 formatted date"
              },
              "redeemedAt": {
                "type": "string",
                "nullable": true,
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "redeemedByUserId": {
                "type": "integer",
                "nullable": true
              },
              "amount": {
                "type": "number",
                "format": "float"
              },
              "currency": {
                "type": "string",
                "description": "The ISO 4217 3-letter code of the currency"
              },
              "description": {
                "type": "string",
                "nullable": true
              },
              "transactionId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the transaction with which the voucher was purchased."
              },
              "createdByAdminId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the Admin who has created the voucher."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "code",
              "amount",
              "createdAt",
              "type",
              "currency"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "voucherReadDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "code": {
                "type": "string"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "voucher",
                  "manual_top_up",
                  "auto_top_up",
                  "top_up_by_operator",
                  "api_top_up",
                  "promo_code",
                  "subscribe_to_plan"
                ]
              },
              "promoCode": {
                "type": "string",
                "description": "If the type is `promo_code` here would be given the value of this promo code.",
                "nullable": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "expireDate": {
                "type": "string",
                "format": "date",
                "nullable": true,
                "description": "RFC 3339 formatted date"
              },
              "redeemedAt": {
                "type": "string",
                "nullable": true,
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "redeemedByUserId": {
                "type": "integer",
                "nullable": true
              },
              "amount": {
                "type": "number",
                "format": "float"
              },
              "currency": {
                "type": "string",
                "description": "The ISO 4217 3-letter code of the currency"
              },
              "description": {
                "type": "string",
                "nullable": true
              },
              "transactionId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the transaction with which the voucher was purchased."
              },
              "createdByAdminId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the Admin who has created the voucher."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "code",
              "amount",
              "createdAt",
              "type",
              "currency"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "voucherDeleteDeprecated": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "voucherUpdateDeprecated": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "code": {
                "type": "string"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "voucher",
                  "manual_top_up",
                  "auto_top_up",
                  "top_up_by_operator",
                  "api_top_up",
                  "promo_code",
                  "subscribe_to_plan"
                ]
              },
              "promoCode": {
                "type": "string",
                "description": "If the type is `promo_code` here would be given the value of this promo code.",
                "nullable": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "expireDate": {
                "type": "string",
                "format": "date",
                "nullable": true,
                "description": "RFC 3339 formatted date"
              },
              "redeemedAt": {
                "type": "string",
                "nullable": true,
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "redeemedByUserId": {
                "type": "integer",
                "nullable": true
              },
              "amount": {
                "type": "number",
                "format": "float"
              },
              "currency": {
                "type": "string",
                "description": "The ISO 4217 3-letter code of the currency"
              },
              "description": {
                "type": "string",
                "nullable": true
              },
              "transactionId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the transaction with which the voucher was purchased."
              },
              "createdByAdminId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the Admin who has created the voucher."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              }
            },
            "required": [
              "id",
              "code",
              "amount",
              "createdAt",
              "type",
              "currency"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "vouchersListing": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "operatorId": {
                  "type": "integer",
                  "description": "The ID of the operator this resource belongs to",
                  "example": 1
                },
                "code": {
                  "type": "string"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "voucher",
                    "manual_top_up",
                    "auto_top_up",
                    "top_up_by_operator",
                    "api_top_up",
                    "promo_code",
                    "subscribe_to_plan"
                  ]
                },
                "purpose": {
                  "description": "Indicates the tax treatment of the voucher under EU regulation 2016/1065.\n- **single**: Single-purpose voucher (SPV) — taxed at purchase and limited to sessions matching its original tax rate.\n- **multi**: Multi-purpose voucher (MPV) — taxed when spent and can pay for sessions with any tax rate.\n\nThe `multi` value only appears on vouchers created while the `balance-with-multipurpose-vouchers` feature flag is enabled.\n",
                  "type": "string",
                  "enum": [
                    "single",
                    "multi"
                  ],
                  "example": "single"
                },
                "promoCode": {
                  "type": "string",
                  "description": "If the type is `promo_code` here would be given the value of this promo code.",
                  "nullable": true
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "enabled",
                    "disabled"
                  ]
                },
                "expireDate": {
                  "type": "string",
                  "format": "date",
                  "nullable": true,
                  "description": "RFC 3339 formatted date. Defines the date on which the voucher expires. The field can be calculated based on the `redeemedAt` timestamp and the `validityPeriod` field if the `validityPeriod` is set and the `expireDate` is not."
                },
                "validityPeriod": {
                  "type": "string",
                  "nullable": true,
                  "description": "Defines the validity period for the voucher. When a user redeems the voucher, this period is added to the `redeemedAt` timestamp to calculate the voucher's `expireDate`. This field is only used when `expireDate` is not already set - if `expireDate` has a value, this period is ignored and the defined `expireDate` is used instead.",
                  "enum": [
                    "2 days",
                    "1 week",
                    "2 weeks",
                    "1 month",
                    "3 months",
                    "6 months",
                    "1 year",
                    "2 years",
                    "3 years",
                    "5 years"
                  ]
                },
                "assignBeforeDate": {
                  "type": "string",
                  "format": "date",
                  "nullable": true,
                  "description": "The date before which the voucher should be assigned to user in order to be valid. RFC 3339 formatted date"
                },
                "redeemedAt": {
                  "type": "string",
                  "nullable": true,
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "redeemedByUserId": {
                  "type": "integer",
                  "nullable": true
                },
                "amount": {
                  "type": "number",
                  "format": "float"
                },
                "currencyCode": {
                  "type": "string",
                  "description": "The ISO 4217 3-letter code of the currency"
                },
                "description": {
                  "type": "string",
                  "nullable": true
                },
                "transactionId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The ID of the transaction with which the voucher was purchased."
                },
                "createdByAdminId": {
                  "type": "integer",
                  "nullable": true,
                  "description": "The ID of the Admin who has created the voucher."
                },
                "lastUpdatedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 formatted date",
                  "readOnly": true
                },
                "remainingAmount": {
                  "type": "number",
                  "format": "float"
                },
                "title": {
                  "description": "The title of the voucher.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locale": {
                        "type": "string",
                        "description": "valid locale"
                      },
                      "translation": {
                        "type": "string"
                      }
                    }
                  }
                }
              },
              "required": [
                "id",
                "operatorId",
                "code",
                "amount",
                "createdAt",
                "type",
                "purpose",
                "currencyCode",
                "remainingAmount"
              ]
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "description": "The URL to fetch the first page",
                "nullable": true
              },
              "last": {
                "type": "string",
                "description": "The URL to fetch the last page",
                "nullable": true
              },
              "prev": {
                "type": "string",
                "description": "The URL to fetch the previous page",
                "nullable": true
              },
              "next": {
                "type": "string",
                "description": "The URL to fetch the next page. Use this link always in order to utilize the cursor pagination",
                "nullable": true
              }
            }
          },
          "meta": {
            "anyOf": [
              {
                "title": "Basic Pagination (DEPRECATED)",
                "type": "object",
                "deprecated": true,
                "description": "**DEPRECATED - Sunset date: Sun, 01 Jun 2026**\n\nIn case of basic pagination (using the `page` parameter), the meta object will contain the following properties.\n\n**This pagination type is deprecated and will be removed on Sun, 01 Jun 2026.**\n\nPlease migrate to cursor pagination for better performance and consistency. Cursor pagination provides:\n- Consistent performance regardless of dataset size\n- Reliable pagination even with concurrent data changes\n- Simpler navigation using cursor tokens\n\nSee the cursor parameter documentation for migration guidance.\n",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "The number of the current page being fetched"
                  },
                  "from": {
                    "type": "integer",
                    "description": "The first of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "The number of the past page"
                  },
                  "links": {
                    "type": "array",
                    "description": "Array of link objects pointing to the previous/current/next pages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string",
                          "nullable": true,
                          "description": "The URL to the previous/current/next page or null if such page does not exist"
                        },
                        "label": {
                          "type": "string",
                          "description": "The name of the page that the links should be pointing to"
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Is the link active, it will be true only when there is an URL"
                        }
                      }
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "to": {
                    "type": "integer",
                    "description": "The last of the fetched item's position in the total list",
                    "nullable": true
                  },
                  "total": {
                    "type": "integer",
                    "description": "The total number of items in the list"
                  }
                }
              },
              {
                "title": "Cursor Pagination",
                "type": "object",
                "description": "In case of cursor pagination, the meta object will contain the following properties",
                "properties": {
                  "path": {
                    "type": "string",
                    "description": "The base route of the endpoint (unpaginated)"
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "The max number of items in each page"
                  },
                  "next_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the next page. Do not use this directly. It will be populated by using the previous response's links.next.",
                    "nullable": true
                  },
                  "prev_cursor": {
                    "type": "string",
                    "description": "The cursor to fetch the previous page. Do not use this directly. It will be populated by using the previous response's links.prev.",
                    "nullable": true
                  }
                }
              }
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "voucherCreate": {
    "201": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "code": {
                "type": "string"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "voucher",
                  "manual_top_up",
                  "auto_top_up",
                  "top_up_by_operator",
                  "api_top_up",
                  "promo_code",
                  "subscribe_to_plan"
                ]
              },
              "purpose": {
                "description": "Indicates the tax treatment of the voucher under EU regulation 2016/1065.\n- **single**: Single-purpose voucher (SPV) — taxed at purchase and limited to sessions matching its original tax rate.\n- **multi**: Multi-purpose voucher (MPV) — taxed when spent and can pay for sessions with any tax rate.\n\nThe `multi` value only appears on vouchers created while the `balance-with-multipurpose-vouchers` feature flag is enabled.\n",
                "type": "string",
                "enum": [
                  "single",
                  "multi"
                ],
                "example": "single"
              },
              "promoCode": {
                "type": "string",
                "description": "If the type is `promo_code` here would be given the value of this promo code.",
                "nullable": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "expireDate": {
                "type": "string",
                "format": "date",
                "nullable": true,
                "description": "RFC 3339 formatted date. Defines the date on which the voucher expires. The field can be calculated based on the `redeemedAt` timestamp and the `validityPeriod` field if the `validityPeriod` is set and the `expireDate` is not."
              },
              "validityPeriod": {
                "type": "string",
                "nullable": true,
                "description": "Defines the validity period for the voucher. When a user redeems the voucher, this period is added to the `redeemedAt` timestamp to calculate the voucher's `expireDate`. This field is only used when `expireDate` is not already set - if `expireDate` has a value, this period is ignored and the defined `expireDate` is used instead.",
                "enum": [
                  "2 days",
                  "1 week",
                  "2 weeks",
                  "1 month",
                  "3 months",
                  "6 months",
                  "1 year",
                  "2 years",
                  "3 years",
                  "5 years"
                ]
              },
              "assignBeforeDate": {
                "type": "string",
                "format": "date",
                "nullable": true,
                "description": "The date before which the voucher should be assigned to user in order to be valid. RFC 3339 formatted date"
              },
              "redeemedAt": {
                "type": "string",
                "nullable": true,
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "redeemedByUserId": {
                "type": "integer",
                "nullable": true
              },
              "amount": {
                "type": "number",
                "format": "float"
              },
              "currencyCode": {
                "type": "string",
                "description": "The ISO 4217 3-letter code of the currency"
              },
              "description": {
                "type": "string",
                "nullable": true
              },
              "transactionId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the transaction with which the voucher was purchased."
              },
              "createdByAdminId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the Admin who has created the voucher."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "remainingAmount": {
                "type": "number",
                "format": "float"
              },
              "title": {
                "description": "The title of the voucher.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              }
            },
            "required": [
              "id",
              "operatorId",
              "code",
              "amount",
              "createdAt",
              "type",
              "purpose",
              "currencyCode",
              "remainingAmount"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "voucherRead": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "code": {
                "type": "string"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "voucher",
                  "manual_top_up",
                  "auto_top_up",
                  "top_up_by_operator",
                  "api_top_up",
                  "promo_code",
                  "subscribe_to_plan"
                ]
              },
              "purpose": {
                "description": "Indicates the tax treatment of the voucher under EU regulation 2016/1065.\n- **single**: Single-purpose voucher (SPV) — taxed at purchase and limited to sessions matching its original tax rate.\n- **multi**: Multi-purpose voucher (MPV) — taxed when spent and can pay for sessions with any tax rate.\n\nThe `multi` value only appears on vouchers created while the `balance-with-multipurpose-vouchers` feature flag is enabled.\n",
                "type": "string",
                "enum": [
                  "single",
                  "multi"
                ],
                "example": "single"
              },
              "promoCode": {
                "type": "string",
                "description": "If the type is `promo_code` here would be given the value of this promo code.",
                "nullable": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "expireDate": {
                "type": "string",
                "format": "date",
                "nullable": true,
                "description": "RFC 3339 formatted date. Defines the date on which the voucher expires. The field can be calculated based on the `redeemedAt` timestamp and the `validityPeriod` field if the `validityPeriod` is set and the `expireDate` is not."
              },
              "validityPeriod": {
                "type": "string",
                "nullable": true,
                "description": "Defines the validity period for the voucher. When a user redeems the voucher, this period is added to the `redeemedAt` timestamp to calculate the voucher's `expireDate`. This field is only used when `expireDate` is not already set - if `expireDate` has a value, this period is ignored and the defined `expireDate` is used instead.",
                "enum": [
                  "2 days",
                  "1 week",
                  "2 weeks",
                  "1 month",
                  "3 months",
                  "6 months",
                  "1 year",
                  "2 years",
                  "3 years",
                  "5 years"
                ]
              },
              "assignBeforeDate": {
                "type": "string",
                "format": "date",
                "nullable": true,
                "description": "The date before which the voucher should be assigned to user in order to be valid. RFC 3339 formatted date"
              },
              "redeemedAt": {
                "type": "string",
                "nullable": true,
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "redeemedByUserId": {
                "type": "integer",
                "nullable": true
              },
              "amount": {
                "type": "number",
                "format": "float"
              },
              "currencyCode": {
                "type": "string",
                "description": "The ISO 4217 3-letter code of the currency"
              },
              "description": {
                "type": "string",
                "nullable": true
              },
              "transactionId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the transaction with which the voucher was purchased."
              },
              "createdByAdminId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the Admin who has created the voucher."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "remainingAmount": {
                "type": "number",
                "format": "float"
              },
              "title": {
                "description": "The title of the voucher.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              }
            },
            "required": [
              "id",
              "operatorId",
              "code",
              "amount",
              "createdAt",
              "type",
              "purpose",
              "currencyCode",
              "remainingAmount"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "404": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "voucherDelete": {
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "voucherUpdate": {
    "200": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "operatorId": {
                "type": "integer",
                "description": "The ID of the operator this resource belongs to",
                "example": 1
              },
              "code": {
                "type": "string"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "voucher",
                  "manual_top_up",
                  "auto_top_up",
                  "top_up_by_operator",
                  "api_top_up",
                  "promo_code",
                  "subscribe_to_plan"
                ]
              },
              "purpose": {
                "description": "Indicates the tax treatment of the voucher under EU regulation 2016/1065.\n- **single**: Single-purpose voucher (SPV) — taxed at purchase and limited to sessions matching its original tax rate.\n- **multi**: Multi-purpose voucher (MPV) — taxed when spent and can pay for sessions with any tax rate.\n\nThe `multi` value only appears on vouchers created while the `balance-with-multipurpose-vouchers` feature flag is enabled.\n",
                "type": "string",
                "enum": [
                  "single",
                  "multi"
                ],
                "example": "single"
              },
              "promoCode": {
                "type": "string",
                "description": "If the type is `promo_code` here would be given the value of this promo code.",
                "nullable": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ]
              },
              "expireDate": {
                "type": "string",
                "format": "date",
                "nullable": true,
                "description": "RFC 3339 formatted date. Defines the date on which the voucher expires. The field can be calculated based on the `redeemedAt` timestamp and the `validityPeriod` field if the `validityPeriod` is set and the `expireDate` is not."
              },
              "validityPeriod": {
                "type": "string",
                "nullable": true,
                "description": "Defines the validity period for the voucher. When a user redeems the voucher, this period is added to the `redeemedAt` timestamp to calculate the voucher's `expireDate`. This field is only used when `expireDate` is not already set - if `expireDate` has a value, this period is ignored and the defined `expireDate` is used instead.",
                "enum": [
                  "2 days",
                  "1 week",
                  "2 weeks",
                  "1 month",
                  "3 months",
                  "6 months",
                  "1 year",
                  "2 years",
                  "3 years",
                  "5 years"
                ]
              },
              "assignBeforeDate": {
                "type": "string",
                "format": "date",
                "nullable": true,
                "description": "The date before which the voucher should be assigned to user in order to be valid. RFC 3339 formatted date"
              },
              "redeemedAt": {
                "type": "string",
                "nullable": true,
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "redeemedByUserId": {
                "type": "integer",
                "nullable": true
              },
              "amount": {
                "type": "number",
                "format": "float"
              },
              "currencyCode": {
                "type": "string",
                "description": "The ISO 4217 3-letter code of the currency"
              },
              "description": {
                "type": "string",
                "nullable": true
              },
              "transactionId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the transaction with which the voucher was purchased."
              },
              "createdByAdminId": {
                "type": "integer",
                "nullable": true,
                "description": "The ID of the Admin who has created the voucher."
              },
              "lastUpdatedAt": {
                "type": "string",
                "format": "date-time",
                "description": "ISO 8601 formatted date",
                "readOnly": true
              },
              "remainingAmount": {
                "type": "number",
                "format": "float"
              },
              "title": {
                "description": "The title of the voucher.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "valid locale"
                    },
                    "translation": {
                      "type": "string"
                    }
                  }
                }
              }
            },
            "required": [
              "id",
              "operatorId",
              "code",
              "amount",
              "createdAt",
              "type",
              "purpose",
              "currencyCode",
              "remainingAmount"
            ]
          }
        }
      }
    },
    "401": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    },
    "403": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "default": "This action is unauthorized."
          }
        }
      }
    },
    "422": {
      "schema": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "429": {
      "schema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      }
    }
  }
}